git @ Cat's Eye Technologies Falderal / 5681e23
Update README. catseye 13 years ago
1 changed file(s) with 29 addition(s) and 25 deletion(s). Raw diff Collapse all Expand all
00 Falderal
11 ========
22
3 Falderal is a framework for writing, running, and formatting "doctest"-like
4 literate test suites for Haskell functions. It is particularly suited for
5 testing and documenting functions which interpret or compile programming
6 languages -- especially esoteric ones.
3 Falderal is a file format for literate test suites. It is particularly
4 suited for testing and documenting functions which interpret or compile
5 programming languages. The dumbed-down sound-bite version: "doctests for
6 DSLs". `Test.Falderal` is the reference implementation, in Haskell, of
7 tools for formatting and running tests written in Falderal.
78
8 Here's the situation:
9 Here's the scenario:
910
10 * You have a Haskell program, formatted in literate Haskell.
11 * You have some Haskell functions which take Strings to Strings.
12 * You have some unit tests for those functions that you want to present in
13 a nicely readable fashion, possibly included right in the literate Haskell
14 source.
11 * You have a file format, or a language (perhaps a programming language)
12 and some rules for processing it (interpreting it, compiling it, etc.)
13 * You have functions written (currently) in Haskell which implement these
14 rules.
15 * You have some tests for those rules (e.g. program A always produces
16 output B) that you want to present in a nicely readable fashion,
17 possibly included right in your literate programming source file.
1518
1619 If this describes you, then Falderal might help. The particular need I had
1720 that encouraged me to write it is having implemented several esoteric
2124 History
2225 -------
2326
24 The current released version of Falderal is 0.2. It introduced the following
27 The current released version of Falderal is 0.3. It introduced the following
28 features:
29
30 * The definition of a Falderal Literate Test Format, distinct from the
31 reference implementation of tools for it in Haskell (`Test.Falderal`).
32 * The ability to format a Falderal file to different formats, including
33 Markdown and Haskell.
34 * Running tests is now a matter of formatting a Falderal file as a Haskell
35 module and running the function `testModule` in that module.
36
37 The previous released version of Falderal is 0.2. It introduced the following
2538 features:
2639
2740 * Added a test harness for Falderal itself, in the form of a simple shell
3649 * Fixed a bug where exception text which extended over multiple lines
3750 could not be expected correctly.
3851
39 The previous released version of Falderal is 0.1. It introduced the following
40 features:
41
42 * Provision of a framework for writing and running literate tests which may
43 be embedded in literate Haskell source code.
44 * Testing Haskell functions of type String -> String. A test specifies input
45 to the function, and may expect a particular output, or that a particular
46 exception is thrown.
47 * Through simple adapters, testing functions of other types such as
48 (Show a) => String -> a.
49
50 The current version under development is 0.3. It will likely mark the
51 start of a transition away from being specific to Haskell, and thus will
52 involve a few very significant changes.
52 The current version under development is 0.4. It will likely expand upon the
53 potential language-independence that was introduced here by including
54 formatters for other languages, such as Python functions and shell commands.
55 It will likely also attempt to make the usage simpler, possibly by providing
56 an executable front-end, possibly also by being a Cabal package.
5357
5458 The API should not be expected to be stable through the 0.x series.
5559