summaryrefslogtreecommitdiff
path: root/CC/test/RULES
diff options
context:
space:
mode:
Diffstat (limited to 'CC/test/RULES')
-rw-r--r--CC/test/RULES311
1 files changed, 0 insertions, 311 deletions
diff --git a/CC/test/RULES b/CC/test/RULES
deleted file mode 100644
index 3821339..0000000
--- a/CC/test/RULES
+++ /dev/null
@@ -1,311 +0,0 @@
-{ "test":
- { "doc": ["A test written in C++"]
- , "tainted": ["test"]
- , "target_fields": ["srcs", "private-hdrs", "private-deps", "data"]
- , "string_fields":
- [ "name"
- , "args"
- , "stage"
- , "pure C"
- , "private-defines"
- , "private-cflags"
- , "private-ldflags"
- ]
- , "config_vars":
- [ "ARCH"
- , "HOST_ARCH"
- , "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ENV"
- , "TEST_ENV"
- , "CC_TEST_LAUNCHER"
- ]
- , "implicit":
- {"defaults": [["./", "..", "defaults"]], "runner": ["test_runner.py"]}
- , "field_doc":
- { "name":
- [ "The name of the test"
- , ""
- , "Used to name the test binary as well as for staging the test result"
- ]
- , "args": ["Command line arguments for the test binary"]
- , "srcs": ["The sources of the test binary"]
- , "private-hdrs":
- [ "Any additional header files that need to be present when compiling"
- , "the test binary."
- ]
- , "private-defines":
- [ "List of defines set for source files local to this target."
- , "Each list entry will be prepended by \"-D\"."
- ]
- , "private-cflags":
- ["List of compile flags set for source files local to this target."]
- , "private-ldflags":
- [ "Additional linker flags for linking external libraries (not built"
- , "by this tool, typically system libraries)."
- ]
- , "stage":
- [ "The logical location of all header and source files."
- , "Individual directory components are joined with \"/\"."
- ]
- , "data": ["Any files the test binary needs access to when running"]
- }
- , "config_doc":
- { "CC": ["The name of the C compiler to be used."]
- , "CXX": ["The name of the C++ compiler to be used."]
- , "CFLAGS":
- [ "The flags for CC to be used instead of the default ones"
- , "taken from the [\"CC\", \"defaults\"] target"
- ]
- , "CXXFLAGS":
- [ "The flags for CXX to be used instead of the default ones"
- , "taken from the [\"CC\", \"defaults\"] target"
- ]
- , "ADD_CFLAGS":
- [ "The flags to add to the default ones for CC"
- , "taken from the [\"CC\", \"defaults\"] target"
- ]
- , "ADD_CXXFLAGS":
- [ "The flags to add to the default ones for CXX"
- , "taken from the [\"CC\", \"defaults\"] target"
- ]
- , "ENV": ["The environment for any action generated."]
- , "TEST_ENV": ["The environment for executing the test runner."]
- , "CC_TEST_LAUNCHER":
- [ "List of strings representing the launcher that is prepend to the"
- , "command line for running the test binary."
- ]
- }
- , "artifacts_doc":
- [ "result: the result of this test (\"PASS\" or \"FAIL\"); useful for"
- , " generating test reports."
- , "stdout/stderr: Any output the invocation of the test binary produced on"
- , " the respective file descriptor"
- , "time-start/time-stop: The time (decimally coded) in seconds since the"
- , " epoch when the test invocation started and ended."
- ]
- , "runfiles_doc":
- [ "A tree consisting of the artifacts staged at the name of the test."
- , "As the built-in \"install\" rule only takes the runfiles of its"
- , "\"private-deps\" argument, this gives an easy way of defining test"
- , "suites."
- ]
- , "imports":
- { "artifacts": ["./", "../..", "field_artifacts"]
- , "runfiles": ["./", "../..", "field_runfiles"]
- , "compile-deps": ["./", "..", "compile-deps"]
- , "compile-args-deps": ["./", "..", "compile-args-deps"]
- , "link-deps": ["./", "..", "link-deps"]
- , "link-args-deps": ["./", "..", "link-args-deps"]
- , "binary": ["./", "..", "bin artifact"]
- , "host transition": ["transitions", "for host"]
- }
- , "config_transitions":
- { "defaults": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "private-deps": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "data": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "name"
- , { "type": "assert_non_empty"
- , "msg": "A non-empty name has to be provided for binaries"
- , "$1": {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
- }
- ]
- , ["pure C", {"type": "FIELD", "name": "pure C"}]
- , [ "stage"
- , { "type": "join"
- , "separator": "/"
- , "$1": {"type": "FIELD", "name": "stage"}
- }
- ]
- , [ "srcs"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "stage"}
- , "$1":
- { "type": "let*"
- , "bindings": [["fieldname", "srcs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"}
- }
- }
- ]
- , [ "private-hdrs"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "stage"}
- , "$1":
- { "type": "let*"
- , "bindings": [["fieldname", "private-hdrs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"}
- }
- }
- ]
- , ["host-trans", {"type": "CALL_EXPRESSION", "name": "host transition"}]
- , ["defaults-transition", {"type": "var", "name": "host-trans"}]
- , ["deps-transition", {"type": "var", "name": "host-trans"}]
- , ["deps-fieldnames", ["private-deps"]]
- , ["compile-deps", {"type": "CALL_EXPRESSION", "name": "compile-deps"}]
- , [ "compile-args"
- , { "type": "++"
- , "$1":
- [ { "type": "foreach"
- , "var": "def"
- , "range": {"type": "FIELD", "name": "private-defines"}
- , "body":
- {"type": "join", "$1": ["-D", {"type": "var", "name": "def"}]}
- }
- , {"type": "FIELD", "name": "private-cflags"}
- , {"type": "CALL_EXPRESSION", "name": "compile-args-deps"}
- ]
- }
- ]
- , ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
- , [ "link-args"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
- , {"type": "FIELD", "name": "private-ldflags"}
- ]
- }
- ]
- , ["binary", {"type": "CALL_EXPRESSION", "name": "binary"}]
- , [ "staged test binary"
- , { "type": "map_union"
- , "$1":
- { "type": "foreach_map"
- , "range": {"type": "var", "name": "binary"}
- , "var_val": "binary"
- , "body":
- { "type": "singleton_map"
- , "key": "test"
- , "value": {"type": "var", "name": "binary"}
- }
- }
- }
- ]
- , [ "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"}
- }
- }
- }
- }
- }
- ]
- , [ "test-args"
- , { "type": "singleton_map"
- , "key": "test-args.json"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "json_encode"
- , "$1": {"type": "FIELD", "name": "args", "default": []}
- }
- }
- }
- ]
- , [ "test-launcher"
- , { "type": "singleton_map"
- , "key": "test-launcher.json"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "json_encode"
- , "$1":
- {"type": "var", "name": "CC_TEST_LAUNCHER", "default": []}
- }
- }
- }
- ]
- , [ "data"
- , { "type": "let*"
- , "bindings":
- [ ["fieldname", "data"]
- , ["transition", {"type": "var", "name": "deps-transition"}]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "runfiles"}
- , {"type": "CALL_EXPRESSION", "name": "artifacts"}
- ]
- }
- }
- ]
- , [ "test-name"
- , { "type": "join"
- , "separator": "/"
- , "$1":
- [{"type": "var", "name": "stage"}, {"type": "var", "name": "name"}]
- }
- ]
- , [ "test-results"
- , { "type": "ACTION"
- , "outs": ["result", "stdout", "stderr", "time-start", "time-stop"]
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "work"
- , "$1": {"type": "var", "name": "data"}
- }
- , {"type": "var", "name": "runner"}
- , {"type": "var", "name": "test-args"}
- , {"type": "var", "name": "test-launcher"}
- , {"type": "var", "name": "staged test binary"}
- ]
- }
- , "cmd": ["./runner"]
- , "env":
- { "type": "var"
- , "name": "TEST_ENV"
- , "default": {"type": "empty_map"}
- }
- , "may_fail": ["test"]
- , "fail_message":
- { "type": "join"
- , "$1":
- ["CC test ", {"type": "var", "name": "test-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"}
- }
- }
- }
-}