Add Kokoro config for new runtime tests

PiperOrigin-RevId: 277607217
This commit is contained in:
Brad Burlage
2019-10-30 16:16:15 -07:00
committed by gVisor bot
parent ca933329fa
commit df125c9869
4 changed files with 58 additions and 17 deletions
+1
View File
@@ -0,0 +1 @@
build_file: "repo/scripts/runtime_tests.sh"
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# Copyright 2019 The gVisor Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source $(dirname $0)/common.sh
if [ ! -v RUNTIME ]; then
echo 'Must set $RUNTIME' >&2
exit 1
fi
install_runsc_for_test runtimes
test_runsc "//test/runtimes:${RUNTIME}_test"
+5 -5
View File
@@ -16,32 +16,32 @@ go_binary(
)
runtime_test(
name = "go1.12",
blacklist_file = "blacklist_go1.12.csv",
image = "gcr.io/gvisor-presubmit/go1.12",
lang = "go",
)
runtime_test(
name = "java11",
blacklist_file = "blacklist_java11.csv",
image = "gcr.io/gvisor-presubmit/java11",
lang = "java",
)
runtime_test(
name = "nodejs12.4.0",
blacklist_file = "blacklist_nodejs12.4.0.csv",
image = "gcr.io/gvisor-presubmit/nodejs12.4.0",
lang = "nodejs",
)
runtime_test(
name = "php7.3.6",
blacklist_file = "blacklist_php7.3.6.csv",
image = "gcr.io/gvisor-presubmit/php7.3.6",
lang = "php",
)
runtime_test(
name = "python3.7.3",
blacklist_file = "blacklist_python3.7.3.csv",
image = "gcr.io/gvisor-presubmit/python3.7.3",
lang = "python",
)
+27 -12
View File
@@ -2,32 +2,48 @@
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",
blacklist_file = ""):
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",
image,
"/".join([image_repo, image_name]),
]
data = [
":runner",
]
if blacklist_file != "":
if blacklist_file:
args += ["--blacklist_file", "test/runtimes/" + blacklist_file]
data += [blacklist_file]
# Add a test that the blacklist parses correctly.
blacklist_test(lang, blacklist_file)
blacklist_test(name, blacklist_file)
sh_test(
name = lang + "_test",
name = name + "_test",
srcs = ["runner.sh"],
args = args,
data = data,
@@ -35,15 +51,14 @@ def runtime_test(
shard_count = shard_count,
tags = [
# Requires docker and runsc to be configured before the test runs.
"manual",
"local",
],
)
def blacklist_test(lang, blacklist_file):
def blacklist_test(name, blacklist_file):
"""Test that a blacklist parses correctly."""
go_test(
name = lang + "_blacklist_test",
name = name + "_blacklist_test",
embed = [":runner"],
srcs = ["blacklist_test.go"],
args = ["--blacklist_file", "test/runtimes/" + blacklist_file],