Skip to content

Commit

Permalink
Rollup merge of rust-lang#103178 - ferrocene:pa-coverage-reports-test…
Browse files Browse the repository at this point in the history
…s, r=Mark-Simulacrum

Partially fix `src/test/run-make/coverage-reports` when cross-compiling

The test does not work on cross-compiled targets because the --target flag was not passed to rustc inside the test. This commit fixes that by adding the flag to the invocations.

Note that the test still fails on cross-compiled targets using remote-test, as remote-test is not capable (yet) of sending back to the host system the `*.profraw` file generated by the instrumentation.

Because of that, this is only a partial fix, and the test has been ignored on cross-compilation.
  • Loading branch information
matthiaskrgr authored Oct 19, 2022
2 parents e86bc89 + 399e5cc commit 6a168e4
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/test/run-make/coverage-reports/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# needs-profiler-support
# ignore-windows-gnu

# FIXME(pietroalbini): this test currently does not work on cross-compiled
# targets because remote-test is not capable of sending back the *.profraw
# files generated by the LLVM instrumentation.
# ignore-cross-compile

# Rust coverage maps support LLVM Coverage Mapping Format versions 5 and 6,
# corresponding with LLVM versions 12 and 13, respectively.
# When upgrading LLVM versions, consider whether to enforce a minimum LLVM
Expand Down Expand Up @@ -81,13 +86,13 @@ include clear_expected_if_blessed
# Compile the test library with coverage instrumentation
$(RUSTC) $(SOURCEDIR)/lib/$@.rs \
$$( sed -n 's/^\/\/ compile-flags: \([^#]*\).*/\1/p' $(SOURCEDIR)/lib/[email protected] ) \
--crate-type rlib -Cinstrument-coverage
--crate-type rlib -Cinstrument-coverage --target $(TARGET)

%: $(SOURCEDIR)/%.rs
# Compile the test program with coverage instrumentation
$(RUSTC) $(SOURCEDIR)/$@.rs \
$$( sed -n 's/^\/\/ compile-flags: \([^#]*\).*/\1/p' $(SOURCEDIR)/[email protected] ) \
-L "$(TMPDIR)" -Cinstrument-coverage
-L "$(TMPDIR)" -Cinstrument-coverage --target $(TARGET)

# Run it in order to generate some profiling data,
# with `LLVM_PROFILE_FILE=<profdata_file>` environment variable set to
Expand Down

0 comments on commit 6a168e4

Please sign in to comment.