module Main ( main ) where import Control.Monad ( when ) import System.Exit ( exitFailure ) import HyLo.Test ( TestResult(OK), UnitTest, ModuleName, stopOnError, testSuite ) import qualified HyLo.Signature ( unit_tests ) import qualified HyLo.Signature.Simple ( unit_tests ) import qualified HyLo.Formula ( unit_tests ) import qualified HyLo.Model ( unit_tests ) import qualified HyLo.Model.Herbrand ( unit_tests ) all_tests :: [(ModuleName, UnitTest)] all_tests = [ ("HyLo.Signature", HyLo.Signature.unit_tests), ("HyLo.Signature.Simple", HyLo.Signature.Simple.unit_tests), ("HyLo.Formula", HyLo.Formula.unit_tests), ("HyLo.Model", HyLo.Model.unit_tests), ("HyLo.Model.Herbrand", HyLo.Model.Herbrand.unit_tests) ] main :: IO () main = do rs <- stopOnError testSuite all_tests when (not $ all (== OK) rs) $ do putStrLn "Some tests did not pass!" exitFailure