summaryrefslogtreecommitdiff
path: root/tests/test_rules/README.md
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-12-09 15:24:55 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2022-12-12 14:46:19 +0100
commit886c7b680928276d7f925d30fc206ca27d9a97d1 (patch)
tree4471690974cc15caad524274c88fff830bf2c127 /tests/test_rules/README.md
parent6e10ee13df0b83511d7fe94bb755ac53f993c0ec (diff)
downloadrules-cc-886c7b680928276d7f925d30fc206ca27d9a97d1.tar.gz
Add tests and readme
Diffstat (limited to 'tests/test_rules/README.md')
-rw-r--r--tests/test_rules/README.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test_rules/README.md b/tests/test_rules/README.md
new file mode 100644
index 0000000..8ed8f91
--- /dev/null
+++ b/tests/test_rules/README.md
@@ -0,0 +1,25 @@
+# Test Rules
+
+This is a test rule that supports building and installing multiple targets with
+a given set of rules. For each target, it can be specified whether building it
+should fail or succeed. After processing all targets, additional assertions
+(list of shell commands) can be run.
+
+## Setup
+
+The test rules expect to find the following two bindings:
+ - `[["@", "test-rules", "", "tree"]]`, which contains a single tree artifact
+ with the rules to test.
+ - `[["@", "test-just", "", ""]]`, which contains a single executable artifact
+ that is the JustBuild binary to use for the tests.
+
+## Rule `["test_rules", "test_case"]`
+
+Define a test case for rule tests.
+
+| Field | Description |
+| ----- | ----------- |
+| `"name"` | Name of the test (multiple entries are joined). |
+| `"targets"` | Target names to build and install. Each target name is prefixed by `"+"` or `"-"`, indicating if the build should fail or not. Targets that build successfully will be installed to a directory named identical to the target name (without the prefix). |
+| `"asserts"` | List of commands to execute after all targets were processed. To access artifacts from installed targets, use the corresponding target name as prefix dir (e.g., target `"+foo"` installs to `"./foo/"`). |
+| `"data"` | The directory that contains the project with the targets to test. |