{-# LANGUAGE Safe #-}
module Types.IntegrationTest (
ExpectedResult(..),
IntegrationTest(..),
IntegrationTestHeader(..),
OutputPattern(..),
OutputScope(..),
getExcludePattern,
getRequirePattern,
isExpectCompileError,
isExpectRuntimeError,
isExpectRuntimeSuccess,
) where
import Types.TypeCategory
import Types.DefinedCategory
import Types.Procedure (Expression)
data IntegrationTestHeader c =
IntegrationTestHeader {
ithContext :: [c],
ithTestName :: String,
ithResult :: ExpectedResult c
}
data IntegrationTest c =
IntegrationTest {
itHeader :: IntegrationTestHeader c,
itCategory :: [AnyCategory c],
itDefinition :: [DefinedCategory c]
}
data ExpectedResult c =
ExpectCompileError {
eceContext :: [c],
eceRequirePattern :: [OutputPattern],
eceExcludePattern :: [OutputPattern]
} |
ExpectRuntimeError {
ereContext :: [c],
ereExpression :: Expression c,
ereRequirePattern :: [OutputPattern],
ereExcludePattern :: [OutputPattern]
} |
ExpectRuntimeSuccess {
ersContext :: [c],
ersExpression :: Expression c,
ersRequirePattern :: [OutputPattern],
ersExcludePattern :: [OutputPattern]
}
data OutputPattern =
OutputPattern {
opScope :: OutputScope,
opPattern :: String
}
deriving (Eq,Ord,Show)
data OutputScope = OutputAny | OutputCompiler | OutputStderr | OutputStdout deriving (Eq,Ord,Show)
isExpectCompileError :: ExpectedResult c -> Bool
isExpectCompileError (ExpectCompileError _ _ _) = True
isExpectCompileError _ = False
isExpectRuntimeError :: ExpectedResult c -> Bool
isExpectRuntimeError (ExpectRuntimeError _ _ _ _) = True
isExpectRuntimeError _ = False
isExpectRuntimeSuccess :: ExpectedResult c -> Bool
isExpectRuntimeSuccess (ExpectRuntimeSuccess _ _ _ _) = True
isExpectRuntimeSuccess _ = False
getRequirePattern :: ExpectedResult c -> [OutputPattern]
getRequirePattern (ExpectCompileError _ rs _) = rs
getRequirePattern (ExpectRuntimeError _ _ rs _) = rs
getRequirePattern (ExpectRuntimeSuccess _ _ rs _) = rs
getExcludePattern :: ExpectedResult c -> [OutputPattern]
getExcludePattern (ExpectCompileError _ _ es) = es
getExcludePattern (ExpectRuntimeError _ _ _ es) = es
getExcludePattern (ExpectRuntimeSuccess _ _ _ es) = es