summaryrefslogtreecommitdiffhomepage
path: root/test/runtimes/build_defs.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'test/runtimes/build_defs.bzl')
-rw-r--r--test/runtimes/build_defs.bzl69
1 files changed, 54 insertions, 15 deletions
diff --git a/test/runtimes/build_defs.bzl b/test/runtimes/build_defs.bzl
index 5e3065342..6f84ca852 100644
--- a/test/runtimes/build_defs.bzl
+++ b/test/runtimes/build_defs.bzl
@@ -1,33 +1,72 @@
-"""Defines a rule for runsc test targets."""
+"""Defines a rule for runtime test targets."""
+
+load("@io_bazel_rules_go//go:def.bzl", "go_test")
-# runtime_test is a macro that will create targets to run the given test target
-# with different runtime options.
def runtime_test(
+ name,
lang,
- image,
+ image_repo = "gcr.io/gvisor-presubmit",
+ image_name = None,
+ blacklist_file = None,
shard_count = 50,
size = "enormous"):
+ """Generates sh_test and blacklist test targets for a given runtime.
+
+ Args:
+ name: The name of the runtime being tested. Typically, the lang + version.
+ This is used in the names of the generated test targets.
+ lang: The language being tested.
+ image_repo: The docker repository containing the proctor image to run.
+ i.e., the prefix to the fully qualified docker image id.
+ image_name: The name of the image in the image_repo.
+ Defaults to the test name.
+ blacklist_file: A test blacklist to pass to the runtime test's runner.
+ shard_count: See Bazel common test attributes.
+ size: See Bazel common test attributes.
+ """
+ if image_name == None:
+ image_name = name
+ args = [
+ "--lang",
+ lang,
+ "--image",
+ "/".join([image_repo, image_name]),
+ ]
+ data = [
+ ":runner",
+ ]
+ if blacklist_file:
+ args += ["--blacklist_file", "test/runtimes/" + blacklist_file]
+ data += [blacklist_file]
+
+ # Add a test that the blacklist parses correctly.
+ blacklist_test(name, blacklist_file)
+
sh_test(
- name = lang + "_test",
+ name = name + "_test",
srcs = ["runner.sh"],
- args = [
- "--lang",
- lang,
- "--image",
- image,
- ],
- data = [
- ":runner",
- ],
+ args = args,
+ data = data,
size = size,
shard_count = shard_count,
tags = [
# Requires docker and runsc to be configured before the test runs.
- "manual",
"local",
+ # Don't include test target in wildcard target patterns.
+ "manual",
],
)
+def blacklist_test(name, blacklist_file):
+ """Test that a blacklist parses correctly."""
+ go_test(
+ name = name + "_blacklist_test",
+ embed = [":runner"],
+ srcs = ["blacklist_test.go"],
+ args = ["--blacklist_file", "test/runtimes/" + blacklist_file],
+ data = [blacklist_file],
+ )
+
def sh_test(**kwargs):
"""Wraps the standard sh_test."""
native.sh_test(