dune/test
Etienne Millon dcf3f0713b Make -p honor test stanzas
Previously, this option would consider that test stanzas do not have any
package set.

Closes #1231

Signed-off-by: Etienne Millon <me@emillon.org>
2018-09-07 11:29:35 +02:00
..
blackbox-tests Make -p honor test stanzas 2018-09-07 11:29:35 +02:00
common Remove most useless parentheses from the syntax (#915) 2018-06-27 16:38:05 +01:00
unit-tests Add ~loc to of_string_exn 2018-08-28 13:30:40 +03:00
README.md Fix typos in source code 2018-07-10 13:05:58 +01:00
bulk-update.sh Make the default build profile be dev 2018-06-28 11:23:10 +01:00
dune Rename private libraries and add a test to make sure we don't publicize too much (#1111) 2018-08-09 10:03:06 +01:00

README.md

This file describe how the jbuilder test suite is organized.

Unit testing

The unit-tests directory contains unit tests, written in expectation style. The test logic is implemented in unit-tests/expect_test.mll and the various tests are in .mlt files.

The way they work is quite simple; each .mlt file is a succession of toplevel phrases followed by the output reported by the OCaml toplevel enclosed in an [%%expect] extension point. For instance:

6 * 7;;
[%%expect{|
- : int = 42
|}]

Blackbox testing

The blackbox-tests contains blackbox tests. I.e. we are testing the fully built jbuilder executable on various example projects.

The tests are written in cram style. The logic is implemented in blackbox-tests/cram.mll. It only implements a minimal subset of cram testing. In particular the shell environment is currently not preserved between commands, so you cannot define a variable and use it.

Test cases are in blackbox-tests/test-cases. Each sub-directory is a full blown jbuilder project. Each sub-directory contains a run.t file, which represents a few invocations of jbuilder along with the expected output.

Here is a sample .t file:

This is a comment

  $ echo 'Hello, world!'
  Hello, world!

  $ cat plop
  cat: plop: No such file or directory
  [1]

The [1] represent the exit code of the command. It is printed when it
is non-zero