Skip to content

Commit 1600851

Browse files
Add analysis test
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
1 parent 222964a commit 1600851

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

test/BUILD.bazel

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ load("@workspace_default_features//:data.bzl", workspace_default_features_dep_da
1414
load("@workspace_hyphen_dep_aliases//:defs.bzl", workspace_hyphen_dep_aliases_aliases = "aliases")
1515
load("@workspace_renamed_path_dep_aliases//:defs.bzl", workspace_renamed_path_dep_aliases_aliases = "aliases")
1616
load("//:rustdoc_musl_unwind_test.bzl", "rustdoc_musl_unwind_link_flags_test")
17+
load("//:self_contained_linker_test.bzl", "self_contained_linker_aarch64_test", "self_contained_linker_x86_64_test")
1718
load("//:target_triple_constraints_test.bzl", "target_triple_constraints_test")
1819
load("//:verify_aliases.bzl", "verify_alias", "verify_alias_absent", "verify_crate_feature_absent", "verify_crate_feature_present", "verify_dep_absent", "verify_dep_present", "verify_dev_dep_absent")
1920
load("//:workspace_lints_test.bzl", "inherited_workspace_lints_test", "opted_out_workspace_lints_test", "package_lints_test")
@@ -36,6 +37,23 @@ sh_test(
3637
}),
3738
)
3839

40+
rust_binary(
41+
name = "self_contained_linker_sample_bin",
42+
srcs = ["main.rs"],
43+
edition = "2021",
44+
tags = ["manual"],
45+
)
46+
47+
self_contained_linker_x86_64_test(
48+
name = "self_contained_linker_x86_64_test",
49+
target_under_test = ":self_contained_linker_sample_bin",
50+
)
51+
52+
self_contained_linker_aarch64_test(
53+
name = "self_contained_linker_aarch64_test",
54+
target_under_test = ":self_contained_linker_sample_bin",
55+
)
56+
3957
cc_library(
4058
name = "rustdoc_musl_unwind_cc",
4159
srcs = ["rustdoc_musl_unwind.cc"],
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
"""Analysis test verifying that Linux targets include rust-lld/gcc-ld in action inputs."""
2+
3+
load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
4+
5+
def _get_action_by_mnemonic(env, tut, mnemonic):
6+
actions = [action for action in tut.actions if action.mnemonic == mnemonic]
7+
asserts.equals(
8+
env,
9+
1,
10+
len(actions),
11+
"Expected exactly one {} action, got {}".format(mnemonic, [action.mnemonic for action in tut.actions]),
12+
)
13+
return actions[0]
14+
15+
def _self_contained_linker_inputs_test_impl(ctx):
16+
env = analysistest.begin(ctx)
17+
tut = analysistest.target_under_test(env)
18+
action = _get_action_by_mnemonic(env, tut, "Rustc")
19+
20+
input_basenames = [f.basename for f in action.inputs.to_list()]
21+
asserts.true(
22+
env,
23+
"rust-lld" in input_basenames,
24+
"Expected 'rust-lld' in Rustc action inputs for Linux target, but it was missing.",
25+
)
26+
return analysistest.end(env)
27+
28+
self_contained_linker_x86_64_test = analysistest.make(
29+
_self_contained_linker_inputs_test_impl,
30+
config_settings = {
31+
"//command_line_option:platforms": str(Label("@rules_rs//rs/platforms:x86_64-unknown-linux-gnu")),
32+
},
33+
)
34+
35+
self_contained_linker_aarch64_test = analysistest.make(
36+
_self_contained_linker_inputs_test_impl,
37+
config_settings = {
38+
"//command_line_option:platforms": str(Label("@rules_rs//rs/platforms:aarch64-unknown-linux-gnu")),
39+
},
40+
)

0 commit comments

Comments
 (0)