import Test.HUnit import Data.Logic.ATP.DefCNF (testDefCNF) import Data.Logic.ATP.DP (testDP) import Data.Logic.ATP.FOL (testFOL) import Data.Logic.ATP.Herbrand (testHerbrand) import Data.Logic.ATP.Lib (testLib) import Data.Logic.ATP.Prop (testProp) import Data.Logic.ATP.PropExamples (testPropExamples) import Data.Logic.ATP.Skolem (testSkolem) import Data.Logic.ATP.ParserTests (testParser) import Data.Logic.ATP.Unif (testUnif) import Data.Logic.ATP.Tableaux (testTableaux) import Data.Logic.ATP.Resolution (testResolution) import Data.Logic.ATP.Prolog (testProlog) import Data.Logic.ATP.Meson (testMeson) import Data.Logic.ATP.Equal (testEqual) import Extra (testExtra) import System.Exit (exitWith, ExitCode(ExitSuccess, ExitFailure)) main :: IO Counts main = runTestTT (TestList [TestLabel "Lib" testLib, TestLabel "Prop" testProp, TestLabel "PropExamples" testPropExamples, TestLabel "DefCNF" testDefCNF, TestLabel "DP" testDP, TestLabel "FOL" testFOL, TestLabel "Skolem" testSkolem, TestLabel "Parser" testParser, TestLabel "Herbrand" testHerbrand, TestLabel "Unif" testUnif, TestLabel "Tableaux" testTableaux, TestLabel "Resolution" testResolution, TestLabel "Prolog" testProlog, TestLabel "Meson" testMeson, TestLabel "Equal" testEqual, TestLabel "Extra" testExtra ]) >>= doCounts where doCounts counts' = exitWith (if errors counts' /= 0 || failures counts' /= 0 then ExitFailure 1 else ExitSuccess)