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 ()