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 can clone either repository into the tests
subdirectory using
cd tests/
make text-test-data # to clone from mercurial, OR
make VCS=git text-test-data # to clone from git
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
Or if you have a recent enough cabal
, you can build and run the
benchmarks via
cabal new-run exe:text-benchmarks -- --help
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
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
.