on 62_python_dbapi help sign in
project-m36/test/scripts.hs
26 lines 856 B history raw
1-- read each .tutd file in the /scripts directory and execute it with the tutd interpreter
2import Test.HUnit
3import TutorialD.Interpreter.Import.TutorialD
4import System.Directory
5import Data.List (isSuffixOf)
6import System.Exit
8testList :: IO Test
9testList = do
10 let scriptsDir = "scripts/"
11 dirFiles <- getDirectoryContents scriptsDir
12 let scriptList = map (scriptsDir ++) $ filter (".tutd" `isSuffixOf`) dirFiles
13 pure (TestList $ map testScript scriptList)
15main :: IO ()
16main = do
17 tests <- testList
18 tcounts <- runTestTT tests
19 if errors tcounts + failures tcounts > 0 then exitFailure else exitSuccess
21testScript :: FilePath -> Test
22testScript tutdFile = TestCase $ do
23 eImport <- importTutorialD tutdFile
24 case eImport of
25 Left err -> assertFailure ("tutd import failure in " ++ tutdFile ++ ": " ++ show err)
26 Right _ -> pure ()