diff options
Diffstat (limited to 'rules/test/RULES')
-rw-r--r-- | rules/test/RULES | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/rules/test/RULES b/rules/test/RULES new file mode 100644 index 0000000..b8d8116 --- /dev/null +++ b/rules/test/RULES @@ -0,0 +1,57 @@ +{ "suite": + { "doc": + [ "Form a compound target out of many test targets." + , "" + , "More precisely, take the runfiles of the given \"deps\", take their" + , "disjoint union and stage the result. Also propagate relevant" + , "providers." + ] + , "tainted": ["test"] + , "target_fields": ["deps"] + , "string_fields": ["stage"] + , "field_doc": + { "deps": ["The targets that suite is composed of."] + , "stage": + [ "The logical location this test suite is to be placed." + , "Individual entries will be joined with \"/\"." + ] + } + , "artifacts_doc": + [ "The disjoint union of the runfiles of the \"deps\" targets" + , "staged as the location given by \"stage\"." + ] + , "runfiles_doc": ["Same as artifacts."] + , "imports": + { "runfiles": ["", "field_runfiles"] + , "list_provider": ["", "field_list_provider"] + } + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "deps"] + , ["runfiles", {"type": "CALL_EXPRESSION", "name": "runfiles"}] + , [ "stage" + , { "type": "join" + , "separator": "/" + , "$1": {"type": "FIELD", "name": "stage"} + } + ] + , [ "staged results" + , { "type": "to_subdir" + , "subdir": {"type": "var", "name": "stage"} + , "$1": {"type": "var", "name": "runfiles"} + } + ] + , ["provider", "lint"] + , ["lint", {"type": "CALL_EXPRESSION", "name": "list_provider"}] + , ["lint", {"type": "nub_right", "$1": {"type": "var", "name": "lint"}}] + ] + , "body": + { "type": "RESULT" + , "artifacts": {"type": "var", "name": "staged results"} + , "runfiles": {"type": "var", "name": "staged results"} + , "provides": {"type": "env", "vars": ["lint"]} + } + } + } +} |