Skip to content

Commit 58d9ec1

Browse files
committed
[WIP] Add eval plugin info cmd tests
1 parent 5728eff commit 58d9ec1

11 files changed

+133
-0
lines changed

plugins/hls-eval-plugin/test/Main.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ tests =
107107
]
108108
, goldenWithEval "Works with NoImplicitPrelude" "TNoImplicitPrelude" "hs"
109109
, goldenWithEval "Variable 'it' works" "TIt" "hs"
110+
goldenWithEval ":info reports type, constructors and instances" "TInfo" "hs"
111+
, goldenWithEval ":info reports type, constructors and instances for multiple types" "TInfoMany" "hs"
112+
, goldenWithEval ":info! reports type, constructors and unfiltered instances" "TInfoBang" "hs"
113+
, goldenWithEval ":info! reports type, constructors and unfiltered instances for multiple types" "TInfoBangMany" "hs"
114+
, goldenWithEval ":i behaves exactly the same as :info" "TI_Info" "hs"
110115
]
111116

112117
goldenWithEval :: TestName -> FilePath -> FilePath -> TestTree
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module TI_Info where
2+
3+
-- >>> :i Bool
4+
-- type Bool :: *
5+
-- data Bool = False | True
6+
-- -- Defined in ‘GHC.Types’
7+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
8+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
9+
-- instance Read Bool -- Defined in ‘GHC.Read’
10+
-- instance Show Bool -- Defined in ‘GHC.Show’
11+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
12+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module TI_Info where
2+
3+
-- >>> :i Bool
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module TInfo where
2+
3+
-- >>> :info Bool
4+
-- type Bool :: *
5+
-- data Bool = False | True
6+
-- -- Defined in ‘GHC.Types’
7+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
8+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
9+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
10+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
11+
-- instance Read Bool -- Defined in ‘GHC.Read’
12+
-- instance Show Bool -- Defined in ‘GHC.Show’
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module TInfo where
2+
3+
-- >>> :info Bool
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
module TInfoBang where
2+
3+
-- >>> :info! Bool
4+
-- type Bool :: *
5+
-- data Bool = False | True
6+
-- -- Defined in ‘GHC.Types’
7+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
8+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
9+
-- instance Read Bool -- Defined in ‘GHC.Read’
10+
-- instance Show Bool -- Defined in ‘GHC.Show’
11+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
12+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
13+
-- instance Ix Bool -- Defined in ‘GHC.Ix’
14+
-- instance Generic Bool -- Defined in ‘GHC.Generics’
15+
-- instance SingI 'True -- Defined in ‘GHC.Generics’
16+
-- instance SingI 'False -- Defined in ‘GHC.Generics’
17+
-- instance SingKind Bool -- Defined in ‘GHC.Generics’
18+
-- type instance Rep Bool
19+
-- = D1
20+
-- ('MetaData "Bool" "GHC.Types" "ghc-prim" 'False)
21+
-- (C1 ('MetaCons "False" 'PrefixI 'False) U1
22+
-- :+: C1 ('MetaCons "True" 'PrefixI 'False) U1)
23+
-- -- Defined in ‘GHC.Generics’
24+
-- type instance DemoteRep Bool = Bool -- Defined in ‘GHC.Generics’
25+
-- data instance Sing a where
26+
-- STrue :: Sing 'True
27+
-- SFalse :: Sing 'False
28+
-- -- Defined in ‘GHC.Generics’
29+
30+
31+
-- >>> :info! Bool
32+
-- type Bool :: *
33+
-- data Bool = False | True
34+
-- -- Defined in ‘GHC.Types’
35+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
36+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
37+
-- instance Read Bool -- Defined in ‘GHC.Read’
38+
-- instance Show Bool -- Defined in ‘GHC.Show’
39+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
40+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module TInfoBang where
2+
3+
-- >>> :info! Bool
4+
5+
6+
-- >>> :info! Bool
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module TInfoBangMany where
2+
3+
-- >>> :info! Bool Ordering
4+
-- type Bool :: *
5+
-- data Bool = False | True
6+
-- -- Defined in ‘GHC.Types’
7+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
8+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
9+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
10+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
11+
-- instance Read Bool -- Defined in ‘GHC.Read’
12+
-- instance Show Bool -- Defined in ‘GHC.Show’
13+
-- type Ordering :: *
14+
-- data Ordering = LT | EQ | GT
15+
-- -- Defined in ‘GHC.Types’
16+
-- instance Bounded Ordering -- Defined in ‘GHC.Enum’
17+
-- instance Enum Ordering -- Defined in ‘GHC.Enum’
18+
-- instance Eq Ordering -- Defined in ‘GHC.Classes’
19+
-- instance Monoid Ordering -- Defined in ‘GHC.Base’
20+
-- instance Ord Ordering -- Defined in ‘GHC.Classes’
21+
-- instance Read Ordering -- Defined in ‘GHC.Read’
22+
-- instance Semigroup Ordering -- Defined in ‘GHC.Base’
23+
-- instance Show Ordering -- Defined in ‘GHC.Show’
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module TInfoBangMany where
2+
3+
-- >>> :info! Bool Ordering
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module TInfoMany where
2+
3+
-- >>> :info Bool Ordering
4+
-- type Bool :: *
5+
-- data Bool = False | True
6+
-- -- Defined in ‘GHC.Types’
7+
-- instance Enum Bool -- Defined in ‘GHC.Enum’
8+
-- instance Show Bool -- Defined in ‘GHC.Show’
9+
-- instance Eq Bool -- Defined in ‘GHC.Classes’
10+
-- instance Ord Bool -- Defined in ‘GHC.Classes’
11+
-- instance Read Bool -- Defined in ‘GHC.Read’
12+
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
13+
-- type Ordering :: *
14+
-- data Ordering = LT | EQ | GT
15+
-- -- Defined in ‘GHC.Types’
16+
-- instance Enum Ordering -- Defined in ‘GHC.Enum’
17+
-- instance Show Ordering -- Defined in ‘GHC.Show’
18+
-- instance Eq Ordering -- Defined in ‘GHC.Classes’
19+
-- instance Monoid Ordering -- Defined in ‘GHC.Base’
20+
-- instance Ord Ordering -- Defined in ‘GHC.Classes’
21+
-- instance Semigroup Ordering -- Defined in ‘GHC.Base’
22+
-- instance Read Ordering -- Defined in ‘GHC.Read’
23+
-- instance Bounded Ordering -- Defined in ‘GHC.Enum’
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module TInfoMany where
2+
3+
-- >>> :info Bool Ordering

0 commit comments

Comments
 (0)