blob: 14f941a68df89db81e413a862ef63e993ae6c59c [file] [log] [blame]
load("@rules_python//python:defs.bzl", "py_test")
load("//:workspace_deps.bzl", "gen_workspace_stanza")
package(default_visibility = ["//visibility:private"])
exports_files([
"bin/bazel",
"bin/bazel_jdk_minimal",
"bin/bazel_nojdk",
"integration_test_setup.sh",
"sandboxing_test_utils.sh",
"unittest.bash",
"shell_utils.sh",
])
filegroup(
name = "srcs",
srcs = glob(["**"]) + [
"//src/test/shell/bazel:srcs",
"//src/test/shell/integration:srcs",
],
visibility = ["//src:__pkg__"],
)
gen_workspace_stanza(
name = "testenv_sh",
out = "testenv.sh",
repos = [
"bazel_skylib",
"rules_cc",
"rules_java",
"rules_license",
"rules_pkg",
"rules_proto",
"rules_python",
"rules_testing",
],
template = "testenv.sh.tmpl",
visibility = ["//visibility:public"],
)
sh_library(
name = "bashunit",
srcs = [
"unittest.bash",
"unittest_utils.sh",
],
data = [
":testenv.sh",
"//src/test/tools/bzlmod:MODULE.bazel.lock",
"@bazel_tools//tools/bash/runfiles",
],
visibility = ["//visibility:public"],
)
# Test bashunit with python to avoid recursion.
py_test(
name = "bashunit_test",
size = "medium",
srcs = ["unittest_test.py"],
data = [
":bashunit",
# This test relies on writing shell scripts that use bash runfiles
# to load the actual copy of unittest.bash being tested.
"@bazel_tools//tools/bash/runfiles",
],
main = "unittest_test.py",
tags = [
"no_windows", # test runs bash scripts in a subprocess
],
)
sh_library(
name = "shell_utils",
srcs = ["shell_utils.sh"],
visibility = ["//src/test/shell/integration:__pkg__"],
)
sh_test(
name = "shell_utils_test",
srcs = ["shell_utils_test.sh"],
data = [
":bashunit",
":shell_utils",
":testenv.sh",
"@bazel_tools//tools/bash/runfiles",
],
)
sh_test(
name = "shell_utils_symlinks_test",
srcs = ["shell_utils_symlinks_test.sh"],
data = [
":bashunit",
":shell_utils",
":testenv.sh",
"@bazel_tools//tools/bash/runfiles",
],
tags = [
"no_windows", # test asserts symlink behavior
],
)