blob: 8a354c109d58ef871ebda8b46fd7246ca3a9163e [file] [log] [blame]
load(":current_toolchain_files_test.bzl", "current_toolchain_files_test")
exports_files([
"current_toolchain_files_test.sh",
])
# Executable targets will output a pattern similar to the following
# cargo 1.53.0 (4369396ce 2021-04-27)
# Also Note, rustc_srcs is too big for this test
_FILES = {
"cargo": ("executable", r"^cargo [0-9\.]\+\(-nightly\)\? ([0-9a-z]\+ [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\})"),
"clippy": ("executable", r"^clippy [0-9\.]\+ ([0-9a-z]\+ [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\})"),
"rust_stdlib": ("files", r"\.rlib"),
"rustc": ("executable", r"^rustc [0-9\.]\+\(-nightly\)\? ([0-9a-z]\+ [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\})"),
"rustc_lib": ("files", r"rustc_driver"),
"rustdoc": ("executable", r"^rustdoc [0-9\.]\+\(\-nightly\)\? ([0-9a-z]\+ [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\})"),
"rustfmt": ("executable", r"^rustfmt [0-9\.]\+\-\(stable\|nightly\) ([0-9a-z]\+ [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\})"),
}
# Test that all toolchain tools consumable (executables are executable and filegroups contain expected sources)
[
current_toolchain_files_test(
name = tool + "_test",
kind = kind,
pattern = pattern,
# TOOO: Windows requires use of bash which is not guaranteed to be available.
# The test runner should ideally be rewritten in rust so that windows could
# be tested.
target_compatible_with = select({
"@platforms//os:windows": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
tool = "//rust/toolchain:current_{}_files".format(tool),
)
for tool, (kind, pattern) in _FILES.items()
]