MuCheck-0.3.0.0: src/Test/MuCheck/TestAdapter.hs
{-# LANGUAGE DeriveDataTypeable #-}
-- | Module for adapting test framekworks
module Test.MuCheck.TestAdapter where
import qualified Language.Haskell.Interpreter as I
import Data.Typeable
-- | Wrapper for interpreter output
data Summarizable a => InterpreterOutput a = Io {_io :: Either I.InterpreterError a, _ioLog::String}
-- | Holding mutant information
type Mutant = String
-- | Holding test information
type TestStr = String
-- | Summary of test run
newtype Summary = Summary String
deriving (Show, Typeable)
-- | Interface to be implemented by a test framework
class Typeable s => Summarizable s where
-- | Summary of test suite on a single mutant
testSummary :: Mutant -> TestStr -> InterpreterOutput s -> Summary
-- | Was the test run a success
isSuccess :: s -> Bool
-- | Was the test run a failure
isFailure :: s -> Bool
isFailure = not . isSuccess
-- | Was the test run neither (gaveup/timedout)
isOther :: s -> Bool
isOther x = not (isSuccess x) && not (isFailure x)