Skip to content

Commit

Permalink
[WIP] Add eval plugin info cmd tests
Browse files Browse the repository at this point in the history
  • Loading branch information
akrmn committed Jun 20, 2021
1 parent 366ce59 commit 3b0a945
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 0 deletions.
5 changes: 5 additions & 0 deletions plugins/hls-eval-plugin/test/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ tests =
]
, goldenWithEval "Works with NoImplicitPrelude" "TNoImplicitPrelude" "hs"
, goldenWithEval "Variable 'it' works" "TIt" "hs"
, goldenWithEval ":info reports type, constructors and instances" "TInfo" "hs"
, goldenWithEval ":info reports type, constructors and instances for multiple types" "TInfoMany" "hs"
, goldenWithEval ":info! reports type, constructors and unfiltered instances" "TInfoBang" "hs"
, goldenWithEval ":info! reports type, constructors and unfiltered instances for multiple types" "TInfoBangMany" "hs"
, goldenWithEval ":i behaves exactly the same as :info" "TI_Info" "hs"
]

goldenWithEval :: TestName -> FilePath -> FilePath -> TestTree
Expand Down
12 changes: 12 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TI_Info.expected.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module TI_Info where

-- >>> :i Bool
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Show Bool -- Defined in ‘GHC.Show’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
3 changes: 3 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TI_Info.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module TI_Info where

-- >>> :i Bool
12 changes: 12 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfo.expected.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module TInfo where

-- >>> :info Bool
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Show Bool -- Defined in ‘GHC.Show’
3 changes: 3 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfo.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module TInfo where

-- >>> :info Bool
40 changes: 40 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoBang.expected.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module TInfoBang where

-- >>> :info! Bool
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Show Bool -- Defined in ‘GHC.Show’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
-- instance Ix Bool -- Defined in ‘GHC.Ix’
-- instance Generic Bool -- Defined in ‘GHC.Generics’
-- instance SingI 'True -- Defined in ‘GHC.Generics’
-- instance SingI 'False -- Defined in ‘GHC.Generics’
-- instance SingKind Bool -- Defined in ‘GHC.Generics’
-- type instance Rep Bool
-- = D1
-- ('MetaData "Bool" "GHC.Types" "ghc-prim" 'False)
-- (C1 ('MetaCons "False" 'PrefixI 'False) U1
-- :+: C1 ('MetaCons "True" 'PrefixI 'False) U1)
-- -- Defined in ‘GHC.Generics’
-- type instance DemoteRep Bool = Bool -- Defined in ‘GHC.Generics’
-- data instance Sing a where
-- STrue :: Sing 'True
-- SFalse :: Sing 'False
-- -- Defined in ‘GHC.Generics’


-- >>> :info! Bool
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Show Bool -- Defined in ‘GHC.Show’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
6 changes: 6 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoBang.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module TInfoBang where

-- >>> :info! Bool


-- >>> :info! Bool
23 changes: 23 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoBangMany.expected.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module TInfoBangMany where

-- >>> :info! Bool Ordering
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Show Bool -- Defined in ‘GHC.Show’
-- type Ordering :: *
-- data Ordering = LT | EQ | GT
-- -- Defined in ‘GHC.Types’
-- instance Bounded Ordering -- Defined in ‘GHC.Enum’
-- instance Enum Ordering -- Defined in ‘GHC.Enum’
-- instance Eq Ordering -- Defined in ‘GHC.Classes’
-- instance Monoid Ordering -- Defined in ‘GHC.Base’
-- instance Ord Ordering -- Defined in ‘GHC.Classes’
-- instance Read Ordering -- Defined in ‘GHC.Read’
-- instance Semigroup Ordering -- Defined in ‘GHC.Base’
-- instance Show Ordering -- Defined in ‘GHC.Show’
3 changes: 3 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoBangMany.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module TInfoBangMany where

-- >>> :info! Bool Ordering
23 changes: 23 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoMany.expected.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module TInfoMany where

-- >>> :info Bool Ordering
-- type Bool :: *
-- data Bool = False | True
-- -- Defined in ‘GHC.Types’
-- instance Enum Bool -- Defined in ‘GHC.Enum’
-- instance Show Bool -- Defined in ‘GHC.Show’
-- instance Eq Bool -- Defined in ‘GHC.Classes’
-- instance Ord Bool -- Defined in ‘GHC.Classes’
-- instance Read Bool -- Defined in ‘GHC.Read’
-- instance Bounded Bool -- Defined in ‘GHC.Enum’
-- type Ordering :: *
-- data Ordering = LT | EQ | GT
-- -- Defined in ‘GHC.Types’
-- instance Enum Ordering -- Defined in ‘GHC.Enum’
-- instance Show Ordering -- Defined in ‘GHC.Show’
-- instance Eq Ordering -- Defined in ‘GHC.Classes’
-- instance Monoid Ordering -- Defined in ‘GHC.Base’
-- instance Ord Ordering -- Defined in ‘GHC.Classes’
-- instance Semigroup Ordering -- Defined in ‘GHC.Base’
-- instance Read Ordering -- Defined in ‘GHC.Read’
-- instance Bounded Ordering -- Defined in ‘GHC.Enum’
3 changes: 3 additions & 0 deletions plugins/hls-eval-plugin/test/testdata/TInfoMany.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module TInfoMany where

-- >>> :info Bool Ordering

0 comments on commit 3b0a945

Please sign in to comment.