summaryrefslogtreecommitdiff
path: root/CC/test/RULES
diff options
context:
space:
mode:
Diffstat (limited to 'CC/test/RULES')
-rw-r--r--CC/test/RULES287
1 files changed, 0 insertions, 287 deletions
diff --git a/CC/test/RULES b/CC/test/RULES
deleted file mode 100644
index 3401974..0000000
--- a/CC/test/RULES
+++ /dev/null
@@ -1,287 +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"
- , "TARGET_ARCH"
- , "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "TEST_ENV"
- , "TIMEOUT_SCALE"
- , "CC_TEST_LAUNCHER"
- , "RUNS_PER_TEST"
- , "ARCH_DISPATCH"
- , "TEST_SUMMARY_EXECUTION_PROPERTIES"
- , "LINT"
- ]
- , "implicit":
- { "defaults": [["./", "..", "defaults"]]
- , "shell-defaults": [["./", "../../shell", "defaults"]]
- , "runner": ["runner"]
- , "summarizer": [["./", "../../shell/test", "summarizer"]]
- }
- , "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"
- , ""
- , "The resulting test binary is run in an environment where it can assume"
- , "that the environment variable TEST_TMPDIR points to a"
- , "directory that may be used exclusively by this test."
- , "For convenience, the environment variable TMPDIR is also set to TEST_TMPDIR."
- , ""
- , "This running of the test is carried out by the implicit dependency"
- , "on the target \"runner\". By setting this target in the target layer"
- , "of this rules repository (instead of letting it default to the"
- , "respective file), the C/C++ test environment can be modified globally."
- ]
- , "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"]
- , "defaults": ["The C/C++ toolchain to use"]
- , "shell-defaults":
- ["The shell toolchain to use PATH from for calling the summary action"]
- , "runner":
- [ "The test runner which starts the actual test binary after providing"
- , "the respective environment. The runner also takes care of capturing"
- , "stdout/stderr and timing information."
- ]
- , "summarizer":
- [ "Tool to aggregate the results of individual test runs (for flakyness"
- , "detection) to an overall test result. If more fields than the result"
- , "itself is needed, those can be specified using the \"summarizer\" rule."
- ]
- }
- , "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"
- ]
- , "LDFLAGS":
- [ "The linker flags do 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"
- ]
- , "ADD_LDFLAGS":
- [ "The linker flags to add to the default ones"
- , "taken from the [\"CC\", \"defaults\"] target"
- ]
- , "ENV": ["The environment for any action generated."]
- , "BUILD_POSITION_INDEPENDENT": ["Build with -fPIC."]
- , "TEST_ENV": ["The environment for executing the test runner."]
- , "TIMEOUT_SCALE":
- ["Factor on how to scale the timeout for this test. Defaults to 1.0."]
- , "CC_TEST_LAUNCHER":
- [ "List of strings representing the launcher that is prepend to the"
- , "command line for running the test binary."
- ]
- , "RUNS_PER_TEST":
- [ "The number of times the test should be run in order to detect flakyness."
- , "If set, no test action will be taken from cache."
- , ""
- , "Test runs are summarized by the [\"shell/test\", \"summarizer\"] that"
- , "is also used by shell tests."
- ]
- , "TARGET_ARCH":
- [ "The architecture to build the test for."
- , ""
- , "Will only be honored, if that architecture is available in the"
- , "ARCH_DISPATCH map. Otherwise, the test will be built for and run"
- , "on the host architecture."
- ]
- , "ARCH_DISPATCH":
- [ "Map of architectures to execution properties that ensure execution"
- , "on that architecture. Only the actual test binary will be run with"
- , "the specified execution properties (i.e., on the target architecture);"
- , "all building will be done on the host architecture."
- ]
- , "TEST_SUMMARY_EXECUTION_PROPERTIES":
- [ "Additional remote-execution properties for the test-summarizing action"
- , "in case RUNS_PER_TEST is set; defaults to the empty map."
- ]
- , "LINT":
- [ "Also provide nodes describing compile actions and header files;"
- , "those can be used by lint rules (doing also the config transition)"
- , "for additional checks."
- ]
- }
- , "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."
- , "pwd: the directory in which the test was carried out"
- ]
- , "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"]
- , "host transition": ["transitions", "maybe for host"]
- , "stage": ["./", "../..", "stage_singleton_field"]
- , "run_test": "run_test"
- , "field_list": ["", "field_list_provider"]
- }
- , "config_transitions":
- { "defaults": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "private-deps": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "private-hdrs": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "srcs": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "data": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
- , "runner": [{"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"}
- }
- ]
- , ["host-trans", {"type": "CALL_EXPRESSION", "name": "host transition"}]
- , [ "srcs"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "stage"}
- , "$1":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "srcs"]
- , ["transition", {"type": "var", "name": "host-trans"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"}
- }
- }
- ]
- , [ "private-hdrs"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "stage"}
- , "$1":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "private-hdrs"]
- , ["transition", {"type": "var", "name": "host-trans"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "artifacts"}
- }
- }
- ]
- , ["defaults-transition", {"type": "var", "name": "host-trans"}]
- , ["deps-transition", {"type": "var", "name": "host-trans"}]
- , ["deps-fieldnames", ["private-deps", "defaults"]]
- , [ "runner"
- , { "type": "let*"
- , "bindings":
- [ ["fieldname", "runner"]
- , ["location", "runner"]
- , ["transition", {"type": "var", "name": "host-trans"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , ["test-args", {"type": "FIELD", "name": "args", "default": []}]
- , [ "test-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"}
- ]
- }
- }
- ]
- , [ "summarizer"
- , { "type": "let*"
- , "bindings":
- [["fieldname", "summarizer"], ["location", "summarizer"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage"}
- }
- ]
- , [ "summary artifacts"
- , { "type": "++"
- , "$1":
- [ ["result"]
- , { "type": "let*"
- , "bindings":
- [["provider", "artifacts"], ["fieldname", "summarizer"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "field_list"}
- }
- ]
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "run_test"}
- }
- }
-}