Verified Commit 57d19298 authored by Camil Staps's avatar Camil Staps 🚀

Rename to test-properties

parent d0e36fd7
Pipeline #12116 passed with stage
in 1 minute and 3 seconds
Clean System Files/
cleantest
makecleantest
testproperties
build:
image: "camilstaps/clean:nightly"
before_script:
- install_clean_nightly.sh base lib-platform lib-gast lib-tcpip lib-argenv
- apt-get update -qq
- apt-get install -y -qq build-essential subversion
script:
- make
variables:
GIT_SUBMODULE_STRATEGY: recursive
BIN:=cleantest makecleantest
BIN:=testproperties
CLM:=clm
CLMFLAGS:=-nr -nt -h 100m -nortsopts\
-IL ArgEnv\
......
# clean-test [![pipeline status](https://gitlab.science.ru.nl/clean-and-itasks/clean-test/badges/master/pipeline.svg)](https://gitlab.science.ru.nl/clean-and-itasks/clean-test/commits/master)
# clean-test-properties [![pipeline status](https://gitlab.science.ru.nl/clean-and-itasks/clean-test-properties/badges/master/pipeline.svg)](https://gitlab.science.ru.nl/clean-and-itasks/clean-test-properties/commits/master)
This projects hosts tools that can be used to test Clean programs.
The available tools are:
- `cleantest` which can run test programs
- `makecleantest` which can generate test programs from dcl modules
## cleantest
This tool can run other test programs and combine the results.
The tool was conceived in
This tool can generate test programs using [Gast][]'s `exposeProperties` (see
above) from dcl modules. The tool was conceived in
[clean-platform#17](https://gitlab.science.ru.nl/clean-and-itasks/clean-platform/issues/19).
It is assumed that the other programs adhere to the interface described in
`Testing.TestEvents`. For [Gast][] tests, this can be done easily with the
`exposeProperties` function. For example:
```clean
Start w = exposeProperties [OutputTestEvents] [Tests 500000]
[ EP prop_one
, EP prop_two
, EP prop_three
]
w
```
Here, `prop_one`, `prop_two` and `prop_three` are Gast properties (not
necessarily of the same type). `exposeProperties` generates a command-line
interface. `cleantest` can run this kind of test programs (and others) by
adding their executables with the `-r` flag, e.g.:
```bash
cleantest -r testModuleA -r testModuleB
```
The tool has several command-line options; check `cleantest --help` for
up-to-date details.
## makecleantest
This tool can generate test programs using [Gast][]'s `exposeProperties` (see
above) from dcl modules. The properties to test are described in [CleanDoc][]
blocks: comments above function types. This works as follows:
The properties to test are described in [CleanDoc][] blocks: comments above
function types. This works as follows:
- On the module documentation block, add a `@property-bootstrap` field. This
field should contain the 'header' of the generated test program: required
......@@ -67,7 +31,7 @@ blocks: comments above function types. This works as follows:
requires `import StdList` in the `@property-bootstrap` of the module.
It is possible to use multiple lines for the implementation of the property.
`makecleantest` will guess the right indentation level.
`testproperties` will guess the right indentation level.
- When parameters in `@property` fields contain type variables, the programmer
is required to suggest types to instantiate these variables with when
......
module makecleantest
module testproperties
import _SystemArray
import StdBool
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment