summaryrefslogtreecommitdiff
path: root/CC
diff options
context:
space:
mode:
Diffstat (limited to 'CC')
-rw-r--r--CC/test/EXPRESSIONS10
-rw-r--r--CC/test/RULES19
2 files changed, 28 insertions, 1 deletions
diff --git a/CC/test/EXPRESSIONS b/CC/test/EXPRESSIONS
index 678ab56..4207f8e 100644
--- a/CC/test/EXPRESSIONS
+++ b/CC/test/EXPRESSIONS
@@ -8,6 +8,8 @@
, "vars":
[ "ARCH"
, "HOST_ARCH"
+ , "TARGET_ARCH"
+ , "ARCH_DISPATCH"
, "CC"
, "CXX"
, "CFLAGS"
@@ -46,6 +48,7 @@
, "ldflags-files-deps": ["./", "..", "ldflags-files-deps"]
, "binary": ["./", "..", "bin artifact"]
, "host transition": ["transitions", "for host"]
+ , "target properties": ["transitions", "target properties"]
, "stage": ["./", "../..", "stage_singleton_field"]
}
, "expression":
@@ -147,6 +150,9 @@
]
}
]
+ , [ "target properties"
+ , {"type": "CALL_EXPRESSION", "name": "target properties"}
+ ]
]
, "body":
{ "type": "if"
@@ -171,6 +177,8 @@
, "$1":
["CC test ", {"type": "var", "name": "test-name"}, " failed"]
}
+ , "execution properties":
+ {"type": "var", "name": "target properties"}
}
]
, [ "runfiles"
@@ -244,6 +252,8 @@
, ")"
]
}
+ , "execution properties":
+ {"type": "var", "name": "target properties"}
}
}
}
diff --git a/CC/test/RULES b/CC/test/RULES
index 350d585..8dba363 100644
--- a/CC/test/RULES
+++ b/CC/test/RULES
@@ -14,6 +14,7 @@
, "config_vars":
[ "ARCH"
, "HOST_ARCH"
+ , "TARGET_ARCH"
, "CC"
, "CXX"
, "CFLAGS"
@@ -24,6 +25,7 @@
, "TEST_ENV"
, "CC_TEST_LAUNCHER"
, "RUNS_PER_TEST"
+ , "ARCH_DISPATCH"
]
, "implicit":
{ "defaults": [["./", "..", "defaults"]]
@@ -87,6 +89,19 @@
[ "The number of times the test should be run in order to detect flakyness."
, "If set, no test action will be taken from cache."
]
+ , "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."
+ ]
}
, "artifacts_doc":
[ "result: the result of this test (\"PASS\" or \"FAIL\"); useful for"
@@ -105,7 +120,7 @@
, "imports":
{ "artifacts": ["./", "../..", "field_artifacts"]
, "runfiles": ["./", "../..", "field_runfiles"]
- , "host transition": ["transitions", "for host"]
+ , "host transition": ["transitions", "maybe for host"]
, "stage": ["./", "../..", "stage_singleton_field"]
, "run_test": "run_test"
}
@@ -113,6 +128,7 @@
{ "defaults": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
, "private-deps": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
, "data": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
+ , "runner": [{"type": "CALL_EXPRESSION", "name": "host transition"}]
}
, "expression":
{ "type": "let*"
@@ -170,6 +186,7 @@
, "$1":
{ "type": "DEP_ARTIFACTS"
, "dep": {"type": "var", "name": "runner"}
+ , "transition": {"type": "var", "name": "host-trans"}
}
}
, "body":