futhark
Safe HaskellNone
LanguageGHC2021

Futhark.Test.Spec

Description

Definition and parsing of a test specification.

Synopsis

Documentation

testSpecFromProgram :: FilePath -> IO (Either String ProgramTest) Source #

Read the test specification from the given Futhark program.

testSpecFromProgramOrDie :: FilePath -> IO ProgramTest Source #

Like testSpecFromProgram, but exits the process on error.

testSpecsFromPaths :: [FilePath] -> IO (Either String [(FilePath, ProgramTest)]) Source #

Read test specifications from the given paths, which can be a files or directories containing .fut files and further directories.

testSpecsFromPathsOrDie :: [FilePath] -> IO [(FilePath, ProgramTest)] Source #

Like testSpecsFromPaths, but kills the process on errors.

testSpecFromFile :: FilePath -> IO (Either String ProgramTest) Source #

Read a test specification from a file. Expects only a single block, and no comment prefixes.

testSpecFromFileOrDie :: FilePath -> IO ProgramTest Source #

Like testSpecFromFile, but kills the process on errors.

data ProgramTest Source #

Description of a test to be carried out on a Futhark program. The Futhark program is stored separately.

Instances

Instances details
Show ProgramTest Source # 
Instance details

Defined in Futhark.Test.Spec

data StructureTest Source #

A structure test specifies a compilation pipeline, as well as metrics for the program coming out the other end.

Instances

Instances details
Show StructureTest Source # 
Instance details

Defined in Futhark.Test.Spec

data StructurePipeline Source #

How a program can be transformed.

Instances

Instances details
Show StructurePipeline Source # 
Instance details

Defined in Futhark.Test.Spec

data WarningTest Source #

A warning test requires that a warning matching the regular expression is produced. The program must also compile succesfully.

Constructors

ExpectedWarning Text Regex 

Instances

Instances details
Show WarningTest Source # 
Instance details

Defined in Futhark.Test.Spec

data TestAction Source #

How to test a program.

Instances

Instances details
Show TestAction Source # 
Instance details

Defined in Futhark.Test.Spec

data ExpectedError Source #

The error expected for a negative test.

Constructors

AnyError 
ThisError Text Regex 

Instances

Instances details
Show ExpectedError Source # 
Instance details

Defined in Futhark.Test.Spec

data InputOutputs Source #

Input and output pairs for some entry point(s).

Constructors

InputOutputs 

Instances

Instances details
Show InputOutputs Source # 
Instance details

Defined in Futhark.Test.Spec

newtype PropertyCase Source #

Constructors

PropertyCase 

Instances

Instances details
Show PropertyCase Source # 
Instance details

Defined in Futhark.Test.Spec

data TestRun Source #

A condition for execution, input, and expected result.

Instances

Instances details
Show TestRun Source # 
Instance details

Defined in Futhark.Test.Spec

data ExpectedResult values Source #

How a test case is expected to terminate.

Constructors

Succeeds (Maybe values)

Execution suceeds, with or without expected result values.

RunTimeFailure ExpectedError

Execution fails with this error.

Instances

Instances details
Show values => Show (ExpectedResult values) Source # 
Instance details

Defined in Futhark.Test.Spec

Methods

showsPrec :: Int -> ExpectedResult values -> ShowS #

show :: ExpectedResult values -> String #

showList :: [ExpectedResult values] -> ShowS #

data Success Source #

The result expected from a succesful execution.

Constructors

SuccessValues Values

These values are expected.

SuccessGenerateValues

Compute expected values from executing a known-good reference implementation.

Instances

Instances details
Show Success Source # 
Instance details

Defined in Futhark.Test.Spec

data Values Source #

Several values - either literally, or by reference to a file, or to be generated on demand. All paths are relative to test program.

Constructors

Values [Value] 
InFile FilePath 
GenValues [GenValue] 
ScriptValues UncheckedExp

A Futhark expression, evaluated by the interpreter in the context of the program, with calls to entry points run on the compiled program.

ScriptFile FilePath

A file containing such an expression.

Instances

Instances details
Show Values Source # 
Instance details

Defined in Futhark.Test.Spec

data GenValue Source #

How to generate a single random value.

Constructors

GenValue ValueType

Generate a value of the given rank and primitive type. Scalars are considered 0-ary arrays.

GenPrim Value

A fixed non-randomised primitive value.

Instances

Instances details
Show GenValue Source # 
Instance details

Defined in Futhark.Test.Spec

genValueType :: GenValue -> Text Source #

A prettyprinted representation of type of value produced by a GenValue.

parseEmbeddedExp :: Parser () -> Parser UncheckedExp Source #

Parse a Futhark expression embedded in a comment block, consisting of the text consumed by the given parser. We slice out that text and hand it to the Futhark parser. This is somewhat clumsy because the Futhark parser is not written with parser combinators.