Skip to content

Commit 9ad0b00

Browse files
konkersarmandomontanezkrasimirgg
authored
rustdoc_test: Apply prefix stripping to proc_macro dependencies. (#1952)
Without stripping the prefix, rustdoc can not find the proc macro shared library. It's not entirely clear to me why `//test/unit/rustdoc:lib_with_proc_macro` passes without this. When I run `bazel test //test/unit/rustdoc:rustdoc_test_suite --subcommands` I don't see any "action 'Generating Rustdoc test runner for.." lines so perhaps that path is not tested? --------- Co-authored-by: Armando Montanez <[email protected]> Co-authored-by: Krasimir Georgiev <[email protected]>
1 parent 3d1856b commit 9ad0b00

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

rust/private/rustdoc_test.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def _construct_writer_arguments(ctx, test_runner, opt_test_params, action, crate
6767
root = crate_info.output.root.path
6868
if not root in roots:
6969
roots.append(root)
70-
for dep in crate_info.deps.to_list():
70+
for dep in crate_info.deps.to_list() + crate_info.proc_macro_deps.to_list():
7171
dep_crate_info = getattr(dep, "crate_info", None)
7272
dep_dep_info = getattr(dep, "dep_info", None)
7373
if dep_crate_info:
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/// A different answer that only exists if using procmacros.
2+
/// ```
3+
/// use rustdoc_proc_macro::make_answer;
4+
/// make_answer!();
5+
/// assert_eq!(answer(), 42);
6+
/// ```
7+
pub fn procmacro_answer() -> u32 {
8+
24
9+
}

test/unit/rustdoc/rustdoc_unit_test.bzl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ def _rustdoc_for_lib_with_proc_macro_test_impl(ctx):
7474

7575
return analysistest.end(env)
7676

77+
def _rustdoc_for_lib_with_proc_macro_in_docs_test_impl(ctx):
78+
env = analysistest.begin(ctx)
79+
tut = analysistest.target_under_test(env)
80+
81+
_common_rustdoc_checks(env, tut)
82+
83+
return analysistest.end(env)
84+
7785
def _rustdoc_for_bin_with_transitive_proc_macro_test_impl(ctx):
7886
env = analysistest.begin(ctx)
7987
tut = analysistest.target_under_test(env)
@@ -145,6 +153,7 @@ rustdoc_for_bin_with_cc_lib_test = analysistest.make(_rustdoc_for_bin_with_cc_li
145153
rustdoc_for_bin_with_transitive_cc_lib_test = analysistest.make(_rustdoc_for_bin_with_transitive_cc_lib_test_impl)
146154
rustdoc_for_proc_macro_test = analysistest.make(_rustdoc_for_proc_macro_test_impl)
147155
rustdoc_for_lib_with_proc_macro_test = analysistest.make(_rustdoc_for_lib_with_proc_macro_test_impl)
156+
rustdoc_for_lib_with_proc_macro_in_docs_test = analysistest.make(_rustdoc_for_lib_with_proc_macro_in_docs_test_impl)
148157
rustdoc_for_bin_with_transitive_proc_macro_test = analysistest.make(_rustdoc_for_bin_with_transitive_proc_macro_test_impl)
149158
rustdoc_for_lib_with_cc_lib_test = analysistest.make(_rustdoc_for_lib_with_cc_lib_test_impl)
150159
rustdoc_with_args_test = analysistest.make(_rustdoc_with_args_test_impl)
@@ -234,6 +243,13 @@ def _define_targets():
234243
crate_features = ["with_proc_macro"],
235244
)
236245

246+
_target_maker(
247+
rust_library,
248+
name = "lib_with_proc_macro_in_docs",
249+
srcs = ["procmacro_in_rustdoc.rs"],
250+
proc_macro_deps = [":rustdoc_proc_macro"],
251+
)
252+
237253
_target_maker(
238254
rust_library,
239255
name = "lib_nodep_with_proc_macro",
@@ -371,6 +387,11 @@ def rustdoc_test_suite(name):
371387
target_under_test = ":rustdoc_proc_macro_doc",
372388
)
373389

390+
rustdoc_for_lib_with_proc_macro_in_docs_test(
391+
name = "rustdoc_for_lib_with_proc_macro_in_docs_test",
392+
target_under_test = ":lib_with_proc_macro_in_docs_doc",
393+
)
394+
374395
rustdoc_for_lib_with_proc_macro_test(
375396
name = "rustdoc_for_lib_with_proc_macro_test",
376397
target_under_test = ":lib_with_proc_macro_doc",
@@ -414,6 +435,7 @@ def rustdoc_test_suite(name):
414435
":rustdoc_for_bin_with_cc_lib_test",
415436
":rustdoc_for_bin_with_transitive_cc_lib_test",
416437
":rustdoc_for_proc_macro_test",
438+
":rustdoc_for_lib_with_proc_macro_in_docs_test",
417439
":rustdoc_for_lib_with_proc_macro_test",
418440
":rustdoc_for_lib_with_cc_lib_test",
419441
":rustdoc_with_args_test",

0 commit comments

Comments
 (0)