-- read each .tutd file in the /scripts directory and execute it with the tutd interpreter import Test.HUnit import TutorialD.Interpreter.Import.TutorialD import System.Directory import Data.List (isSuffixOf) import System.Exit testList :: IO Test testList = do let scriptsDir = "scripts/" dirFiles <- getDirectoryContents scriptsDir let scriptList = map (scriptsDir ++) $ filter (".tutd" `isSuffixOf`) dirFiles pure (TestList $ map testScript scriptList) main :: IO () main = do tests <- testList tcounts <- runTestTT tests if errors tcounts + failures tcounts > 0 then exitFailure else exitSuccess testScript :: FilePath -> Test testScript tutdFile = TestCase $ do eImport <- importTutorialD tutdFile case eImport of Left err -> assertFailure ("tutd import failure in " ++ tutdFile ++ ": " ++ show err) Right _ -> pure ()