summaryrefslogtreecommitdiff
path: root/shell/test/EXPRESSIONS
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2022-02-23 15:02:50 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2022-02-23 15:02:50 +0100
commit741ef53eab173e10a6e935319ee1af1acdd37273 (patch)
tree61c5d1d20cac5b52c43dbf858e1c64feff56a814 /shell/test/EXPRESSIONS
parent6f1bff70d3757268275fca937ff93d1a6475c3f1 (diff)
downloadrules-cc-741ef53eab173e10a6e935319ee1af1acdd37273.tar.gz
Add shell/test rule
... allowing to run simple tests given by a shell script.
Diffstat (limited to 'shell/test/EXPRESSIONS')
-rw-r--r--shell/test/EXPRESSIONS116
1 files changed, 116 insertions, 0 deletions
diff --git a/shell/test/EXPRESSIONS b/shell/test/EXPRESSIONS
new file mode 100644
index 0000000..429cd47
--- /dev/null
+++ b/shell/test/EXPRESSIONS
@@ -0,0 +1,116 @@
+{ "test-result":
+ { "vars": ["name", "test.sh"]
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ [ "runner"
+ , { "type": "map_union"
+ , "$1":
+ { "type": "foreach"
+ , "var": "runner"
+ , "range": {"type": "FIELD", "name": "runner"}
+ , "body":
+ { "type": "map_union"
+ , "$1":
+ { "type": "foreach"
+ , "var": "runner"
+ , "range":
+ { "type": "values"
+ , "$1":
+ { "type": "DEP_ARTIFACTS"
+ , "dep": {"type": "var", "name": "runner"}
+ }
+ }
+ , "body":
+ { "type": "singleton_map"
+ , "key": "runner"
+ , "value": {"type": "var", "name": "runner"}
+ }
+ }
+ }
+ }
+ }
+ ]
+ , [ "deps"
+ , { "type": "TREE"
+ , "$1":
+ { "type": "disjoint_map_union"
+ , "msg": "Field 'deps' has to stage in a conflict free way"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ { "type": "foreach"
+ , "var": "dep"
+ , "range": {"type": "FIELD", "name": "deps"}
+ , "body":
+ { "type": "DEP_RUNFILES"
+ , "dep": {"type": "var", "name": "dep"}
+ }
+ }
+ , { "type": "foreach"
+ , "var": "dep"
+ , "range": {"type": "FIELD", "name": "deps"}
+ , "body":
+ { "type": "DEP_ARTIFACTS"
+ , "dep": {"type": "var", "name": "dep"}
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ , [ "test-results"
+ , { "type": "ACTION"
+ , "outs":
+ { "type": "++"
+ , "$1":
+ [ ["result", "stdout", "stderr", "time-start", "time-stop"]
+ , { "type": "foreach"
+ , "var": "filename"
+ , "range": {"type": "FIELD", "name": "keep"}
+ , "body":
+ { "type": "join"
+ , "$1": ["work/", {"type": "var", "name": "filename"}]
+ }
+ }
+ ]
+ }
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ { "type": "singleton_map"
+ , "key": "work"
+ , "value": {"type": "var", "name": "deps"}
+ }
+ , {"type": "var", "name": "runner"}
+ , {"type": "var", "name": "test.sh"}
+ ]
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1": [["./runner"], {"type": "FIELD", "name": "keep"}]
+ }
+ , "may_fail": ["test"]
+ , "fail_message":
+ { "type": "join"
+ , "$1": ["shell test ", {"type": "var", "name": "name"}, " failed"]
+ }
+ }
+ ]
+ , [ "runfiles"
+ , { "type": "singleton_map"
+ , "key": {"type": "var", "name": "name"}
+ , "value":
+ {"type": "TREE", "$1": {"type": "var", "name": "test-results"}}
+ }
+ ]
+ ]
+ , "body":
+ { "type": "RESULT"
+ , "artifacts": {"type": "var", "name": "test-results"}
+ , "runfiles": {"type": "var", "name": "runfiles"}
+ }
+ }
+ }
+}