To run the tests and benchmarks, you will need the test data, which you can clone from one of the following locations:
-
Mercurial master repository: bitbucket.org/bos/text-test-data
-
Git mirror repository: github.com/bos/text-test-data
You should clone that repository into the tests
subdirectory (your
clone must be named text-test-data
locally), then run make -C tests/text-test-data
to uncompress the test files. Many tests and
benchmarks will fail if the test files are missing.
The functional tests are located in the tests
subdirectory. An overview of
what's in that directory:
Makefile Has targets for common tasks
Tests Source files of the testing code
scripts Various utility scripts
text-tests.cabal Cabal file that compiles all benchmarks
The text-tests.cabal
builds:
- A copy of the text library, sharing the source code, but exposing all internal modules, for testing purposes
- The different test suites
To compile, run all tests, and generate a coverage report, simply use make
.
The benchmarks are located in the benchmarks
subdirectory. An overview of
what's in that directory:
Makefile Has targets for common tasks
haskell Source files of the haskell benchmarks
python Python implementations of some benchmarks
ruby Ruby implementations of some benchmarks
text-benchmarks.cabal Cabal file which compiles all benchmarks
To compile the benchmarks, navigate to the benchmarks
subdirectory and run
cabal configure && cabal build
. Then, you can run the benchmarks using:
./dist/build/text-benchmarks/text-benchmarks
However, since there's quite a lot of benchmarks, you usually don't want to
run them all. Instead, use the -l
flag to get a list of benchmarks:
./dist/build/text-benchmarks/text-benchmarks
And run the ones you want to inspect. If you want to configure the benchmarks
further, the exact parameters can be changed in Benchmarks.hs
.