aboutsummaryrefslogtreecommitdiff
path: root/tools/bazel_integration_test/test_runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bazel_integration_test/test_runner.py')
-rw-r--r--tools/bazel_integration_test/test_runner.py111
1 files changed, 0 insertions, 111 deletions
diff --git a/tools/bazel_integration_test/test_runner.py b/tools/bazel_integration_test/test_runner.py
deleted file mode 100644
index 3940e87..0000000
--- a/tools/bazel_integration_test/test_runner.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright 2023 The Bazel Authors. All rights reserved.
-#
-# 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.
-
-import json
-import os
-import platform
-import re
-import shutil
-import sys
-import tempfile
-import textwrap
-from pathlib import Path
-from subprocess import Popen
-
-from rules_python.python.runfiles import runfiles
-
-r = runfiles.Create()
-
-
-def main(conf_file):
- with open(conf_file) as j:
- config = json.load(j)
-
- isWindows = platform.system() == "Windows"
- bazelBinary = r.Rlocation(
- os.path.join(
- config["bazelBinaryWorkspace"], "bazel.exe" if isWindows else "bazel"
- )
- )
-
- workspacePath = config["workspaceRoot"]
- # Canonicalize bazel external/some_repo/foo
- if workspacePath.startswith("external/"):
- workspacePath = ".." + workspacePath[len("external") :]
-
- with tempfile.TemporaryDirectory(dir=os.environ["TEST_TMPDIR"]) as tmp_homedir:
- home_bazel_rc = Path(tmp_homedir) / ".bazelrc"
- home_bazel_rc.write_text(
- textwrap.dedent(
- """\
- startup --max_idle_secs=1
- common --announce_rc
- """
- )
- )
-
- with tempfile.TemporaryDirectory(dir=os.environ["TEST_TMPDIR"]) as tmpdir:
- workdir = os.path.join(tmpdir, "wksp")
- print("copying workspace under test %s to %s" % (workspacePath, workdir))
- shutil.copytree(workspacePath, workdir)
-
- for command in config["bazelCommands"]:
- bazel_args = command.split(" ")
- bazel_args.append(
- "--override_repository=rules_python=%s/rules_python"
- % os.environ["TEST_SRCDIR"]
- )
- bazel_args.append(
- "--override_repository=rules_python_gazelle_plugin=%s/rules_python_gazelle_plugin"
- % os.environ["TEST_SRCDIR"]
- )
-
- # TODO: --override_module isn't supported in the current BAZEL_VERSION (5.2.0)
- # This condition and attribute can be removed when bazel is updated for
- # the rest of rules_python.
- if config["bzlmod"]:
- bazel_args.append(
- "--override_module=rules_python=%s/rules_python"
- % os.environ["TEST_SRCDIR"]
- )
- bazel_args.append("--enable_bzlmod")
-
- # Bazel's wrapper script needs this or you get
- # 2020/07/13 21:58:11 could not get the user's cache directory: $HOME is not defined
- os.environ["HOME"] = str(tmp_homedir)
-
- bazel_args.insert(0, bazelBinary)
- bazel_process = Popen(bazel_args, cwd=workdir)
- bazel_process.wait()
- error = bazel_process.returncode != 0
-
- if platform.system() == "Windows":
- # Cleanup any bazel files
- bazel_process = Popen([bazelBinary, "clean"], cwd=workdir)
- bazel_process.wait()
- error |= bazel_process.returncode != 0
-
- # Shutdown the bazel instance to avoid issues cleaning up the workspace
- bazel_process = Popen([bazelBinary, "shutdown"], cwd=workdir)
- bazel_process.wait()
- error |= bazel_process.returncode != 0
-
- if error != 0:
- # Test failure in Bazel is exit 3
- # https://github.com/bazelbuild/bazel/blob/486206012a664ecb20bdb196a681efc9a9825049/src/main/java/com/google/devtools/build/lib/util/ExitCode.java#L44
- sys.exit(3)
-
-
-if __name__ == "__main__":
- main(sys.argv[1])