HTF-0.12.2.0: The Haskell Test Framework

Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.Framework.TestInterface

Description

This module defines the API for HTF plugins.

Synopsis

Documentation

type Assertion = IO () Source

An assertion is just an IO action. Internally, the body of any test in HTF is of type Assertion. If a test specification of a certain plugin has a type different from Assertion, the plugin's preprocessor pass must inject wrapper code to convert the test specification into an assertion.

Assertions may use failHTF to signal a TestResult different from Pass. If the assertion finishes successfully, the tests passes implicitly.

Please note: the assertion must not swallow any exceptions! Otherwise, timeouts and other things might not work as expected.

data TestResult Source

The summary result of a test.

Constructors

Pass 
Pending 
Fail 
Error 

data FullTestResult Source

The full result of a test, as used by HTF plugins.

Constructors

FullTestResult 

Fields

ftr_location :: Maybe Location

The location of a possible failure

ftr_callingLocations :: [(Maybe String, Location)]

The "stack" to the location of a possible failure

ftr_message :: Maybe ColorString

An error message

ftr_result :: Maybe TestResult

The outcome of the test, Nothing means timeout

failHTF :: MonadBaseControl IO m => FullTestResult -> m a Source

Terminate a HTF test, usually to signal a failure. The result of the test is given in the FullTestResult argument.

subAssertHTF :: MonadBaseControl IO m => Location -> Maybe String -> m a -> m a Source

Opens a new assertion stack frame to allow for sensible location information.

mkFullTestResult :: TestResult -> Maybe String -> FullTestResult Source

Auxiliary function for contructing a FullTestResult.