{-# LANGUAGE ScopedTypeVariables #-} module Main where import qualified System.Exit as Exit import Test.HUnit import Test.QuickCheck import qualified Operations.ChunkParallel import qualified Operations.ReadCsv import qualified Operations.TypedExtraction import qualified Properties.Csv tests :: Test tests = TestList ( Operations.ReadCsv.tests <> Operations.TypedExtraction.tests <> Operations.ChunkParallel.tests ) isSuccessful :: Result -> Bool isSuccessful (Success{}) = True isSuccessful _ = False main :: IO () main = do result <- runTestTT tests if failures result > 0 || errors result > 0 then Exit.exitFailure else do propsRes <- mapM (quickCheckWithResult stdArgs) Properties.Csv.tests if not (all isSuccessful propsRes) then Exit.exitFailure else Exit.exitSuccess