never executed always true always false
1 module Conjure.TypeCheckAll ( tests ) where
2
3 -- conjure
4 import Conjure.Prelude
5 import Conjure.Language.NameGen ( runNameGen )
6 import Conjure.Language.Pretty
7 import Conjure.Language.Type ( TypeCheckerMode(..) )
8 import Conjure.UI.IO
9 import Conjure.UI.TypeCheck
10 import Conjure.UserError ( runUserErrorT )
11
12 -- tasty
13 import Test.Tasty ( TestTree, testGroup )
14 import Test.Tasty.HUnit ( testCase, assertFailure )
15
16
17 tests ::
18 (?typeCheckerMode :: TypeCheckerMode) =>
19 IO TestTree
20 tests = do
21 let baseDir = "tests/exhaustive"
22 files <- getAllFilesWithSuffix ".essence" baseDir
23 let testCases = map testSingle files
24 return (testGroup "type-checking" testCases)
25
26 testSingle ::
27 (?typeCheckerMode :: TypeCheckerMode) =>
28 FilePath -> TestTree
29 testSingle fp = testCase (map (\ ch -> if ch == '/' then '.' else ch) fp) $ do
30 model <- readModelFromFile fp
31 result <- runUserErrorT $ ignoreLogs $ runNameGen () $ typeCheckModel_StandAlone model
32 case result of
33 Left errs -> assertFailure $ renderNormal $ vcat errs
34 Right _ -> return ()