Safe Haskell | None |
---|---|
Language | Haskell2010 |
- testFiles :: (Eq a, Show a) => FilePath -> (FilePath -> Bool) -> (String -> Either a String) -> SpecWith ()
- testFilesIO :: FilePath -> (FilePath -> Bool) -> (String -> IO String) -> SpecWith ()
- testFilesErr :: (Show b, Eq b) => FilePath -> (FilePath -> Bool) -> (String -> Either String b) -> SpecWith ()
- testFilesPredicate :: (Show a, Eq a) => FilePath -> (FilePath -> Bool) -> (String -> a) -> (a -> Bool) -> SpecWith ()
- extension :: FilePath -> Maybe Text
- hasExtension :: Text -> FilePath -> Bool
Documentation
:: (Eq a, Show a) | |
=> FilePath | Base directory |
-> (FilePath -> Bool) | Filter on file extensions |
-> (String -> Either a String) | Function to process a file |
-> SpecWith () |
Helper function to generate a spec. The spec runs on the given directory,
filtering by the given function. It then compares their output to the text of
the file with .out
as the new extension.
As an example, consider the directory structure
test/data ├── file.hs └── file.out
If we have a function called formatFile
and we run
testFiles "test/data" (hasExtension "hs") formatFile
This would read test/data/file.hs
, format the file if it can, and compare
the output to the contents of test/data/file.out
.
testFilesIO :: FilePath -> (FilePath -> Bool) -> (String -> IO String) -> SpecWith () Source #
A version of the above where the return value can be any IO
.
testFilesErr :: (Show b, Eq b) => FilePath -> (FilePath -> Bool) -> (String -> Either String b) -> SpecWith () Source #
This function simply tests that each file returns a Left
value and that
the error message contained therein matches the contents of the appropriate
file.
:: (Show a, Eq a) | |
=> FilePath | Directory containing test data |
-> (FilePath -> Bool) | Filter on file extensions |
-> (String -> a) | Function to process the string |
-> (a -> Bool) | Predicate to check the result |
-> SpecWith () |
This function checks that each file returns a value satisfying the predicate.