This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,72 @@
Cram supports different kinds of tests.
For any kind of test to work, the following has to be put in dune-project:
$ cat > dune-project << EOF
> (lang dune 2.7)
> (cram enable)
> EOF
Tests can be in a single file.
$ mkdir file
$ cat > file/file.t << EOF
> $ echo File test
> EOF
$ dune runtest file
File "file/file.t", line 1, characters 0-0:
Error: Files _build/default/file/file.t and
_build/default/file/file.t.corrected differ.
[1]
$ dune promote file/file.t
Promoting _build/default/file/file.t.corrected to file/file.t.
$ cat file/file.t
$ echo File test
File test
$ dune runtest file
They can be in a test directory. In this case, a run.t file must be present. All
other files are visible within the test.
$ mkdir -p dir/dir.t
$ echo "Contents of file a" > dir/dir.t/a
$ cat > dir/dir.t/run.t << EOF
> $ echo Dir test
> $ cat a
> EOF
$ dune runtest dir
File "dir/dir.t/run.t", line 1, characters 0-0:
Error: Files _build/default/dir/dir.t/run.t and
_build/default/dir/dir.t/run.t.corrected differ.
[1]
$ dune promote dir/dir.t/run.t
Promoting _build/default/dir/dir.t/run.t.corrected to dir/dir.t/run.t.
$ cat dir/dir.t/run.t
$ echo Dir test
Dir test
$ cat a
Contents of file a
$ dune runtest dir
If there is no run.t file, an error message is displayed.
$ mkdir -p dir-no-run/dir.t
$ echo "Contents of file a" > dir-no-run/dir.t/a
$ dune runtest dir-no-run
File "dir-no-run/dir.t", line 1, characters 0-0:
Error: Cram test directory dir-no-run/dir.t does not contain a run.t file.
[1]
However, if the directory is empty, this check is skipped. (git can leave such
empty directories)
$ mkdir -p dir-empty/dir.t
$ dune runtest dir-empty