This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
50
unikernel/duniverse/dune_/test/README.md
Normal file
50
unikernel/duniverse/dune_/test/README.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
This file describes how the dune 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:
|
||||
|
||||
```ocaml
|
||||
6 * 7;;
|
||||
[%%expect{|
|
||||
- : int = 42
|
||||
|}]
|
||||
```
|
||||
|
||||
# Blackbox testing
|
||||
|
||||
The `blackbox-tests` contains blackbox tests. I.e. we are testing the
|
||||
fully built `dune` executable on various example projects.
|
||||
|
||||
The tests are written in [cram](https://bitheap.org/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 dune project. Each sub-directory contains a `run.t`
|
||||
file, which represents a few invocations of dune 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
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue