From 745b353b107993ea4b81131182469b3565acb010 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Wed, 14 Aug 2024 17:19:10 +0200 Subject: Add ["test", "suite"] ... collecting test results similar to the way "install" rules are typically used; however in such a way that the provider "lint" is forwarded. --- rules/test/RULES | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 rules/test/RULES (limited to 'rules') diff --git a/rules/test/RULES b/rules/test/RULES new file mode 100644 index 00000000..9fb11e3b --- /dev/null +++ b/rules/test/RULES @@ -0,0 +1,45 @@ +{ "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"] + , "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"]} + } + } + } +} -- cgit v1.2.3