dejafu/Tests.hs
2014-12-23 15:20:11 +00:00

19 lines
643 B
Haskell

module Main (main) where
import Tests.Cases
import Tests.Utils
import System.Exit (exitFailure, exitSuccess)
main :: IO ()
main = do
results <- mapM (runTest True) testCases
if and results then exitSuccess else exitFailure
runTest :: Bool -> Test -> IO Bool
runTest verbose (Test {name = name, result = result}) = do
res <- result
case res of
Pass -> (if verbose then putStrLn ("\27[32m[pass]\27[0m " ++ name) else return ()) >> return True
Fail str -> putStrLn ("\27[31m[fail]\27[0m " ++ name ++ ": " ++ str) >> return False
Error str -> putStrLn ("\27[35m[error]\27[0m " ++ name ++ ": " ++ str) >> return False