mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
Rollup merge of #126995 - Oneirical:test-friends-forever, r=Kobzol
Migrate `pretty-print-with-dep-file`, `pretty-print-to-file` and `libtest-padding` `run-make` tests to rmake Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).
This commit is contained in:
commit
c70a2e30dd
@ -82,7 +82,6 @@ run-make/jobserver-error/Makefile
|
||||
run-make/libs-through-symlinks/Makefile
|
||||
run-make/libtest-json/Makefile
|
||||
run-make/libtest-junit/Makefile
|
||||
run-make/libtest-padding/Makefile
|
||||
run-make/libtest-thread-limit/Makefile
|
||||
run-make/link-cfg/Makefile
|
||||
run-make/link-framework/Makefile
|
||||
@ -125,8 +124,6 @@ run-make/pgo-gen/Makefile
|
||||
run-make/pgo-indirect-call-promotion/Makefile
|
||||
run-make/pgo-use/Makefile
|
||||
run-make/pointer-auth-link-with-c/Makefile
|
||||
run-make/pretty-print-to-file/Makefile
|
||||
run-make/pretty-print-with-dep-file/Makefile
|
||||
run-make/print-calling-conventions/Makefile
|
||||
run-make/print-target-list/Makefile
|
||||
run-make/profile/Makefile
|
||||
|
@ -1,14 +0,0 @@
|
||||
# ignore-cross-compile because we run the compiled code
|
||||
# needs-unwind because #[bench] and -Cpanic=abort requires -Zpanic-abort-tests
|
||||
include ../tools.mk
|
||||
|
||||
NORMALIZE=sed 's%[0-9,\.]\{1,\} ns/iter (+/- [0-9,\.]\{1,\})%?? ns/iter (+/- ??)%' | sed 's%finished in [0-9\.]\{1,\}%finished in ??%'
|
||||
|
||||
all:
|
||||
$(RUSTC) --test tests.rs
|
||||
|
||||
$(call RUN,tests) --test-threads=1 | $(NORMALIZE) > "$(TMPDIR)"/test.stdout
|
||||
$(RUSTC_TEST_OP) "$(TMPDIR)"/test.stdout test.stdout
|
||||
|
||||
$(call RUN,tests) --test-threads=1 --bench | $(NORMALIZE) > "$(TMPDIR)"/bench.stdout
|
||||
$(RUSTC_TEST_OP) "$(TMPDIR)"/bench.stdout bench.stdout
|
46
tests/run-make/libtest-padding/rmake.rs
Normal file
46
tests/run-make/libtest-padding/rmake.rs
Normal file
@ -0,0 +1,46 @@
|
||||
// Benchmarks, when ran as tests, would cause strange indentations
|
||||
// to appear in the output. This was because padding formatting was
|
||||
// applied before the conversion from bench to test, and not afterwards.
|
||||
// Now that this bug has been fixed in #118548, this test checks that it
|
||||
// does not make a resurgence by comparing the output of --bench with an
|
||||
// example stdout file.
|
||||
// See https://github.com/rust-lang/rust/issues/104092
|
||||
|
||||
//@ ignore-cross-compile
|
||||
// Reason: the compiled code is ran
|
||||
//@ needs-unwind
|
||||
// Reason: #[bench] requires -Z panic-abort-tests
|
||||
|
||||
use run_make_support::{diff, run_with_args, rustc};
|
||||
|
||||
fn main() {
|
||||
rustc().arg("--test").input("tests.rs").run();
|
||||
let out = run_with_args("tests", &["--test-threads=1"]).stdout_utf8();
|
||||
diff()
|
||||
.expected_file("test.stdout")
|
||||
.actual_text("actual-test-stdout", out)
|
||||
.normalize(
|
||||
// Replace all instances of (arbitrary numbers)
|
||||
// [1.2345 ns/iter (+/- 0.1234)]
|
||||
// with
|
||||
// [?? ns/iter (+/- ??)]
|
||||
r#"(\d+(?:[.,]\d+)*)\s*ns/iter\s*\(\+/-\s*(\d+(?:[.,]\d+)*)\)"#,
|
||||
"?? ns/iter (+/- ??)",
|
||||
)
|
||||
// Replace all instances of (arbitrary numbers)
|
||||
// finished in 8.0000 s
|
||||
// with
|
||||
// finished in ??
|
||||
.normalize(r#"finished\s+in\s+(\d+(?:\.\d+)*)"#, "finished in ??")
|
||||
.run();
|
||||
let out = run_with_args("tests", &["--test-threads=1", "--bench"]).stdout_utf8();
|
||||
diff()
|
||||
.expected_file("bench.stdout")
|
||||
.actual_text("actual-bench-stdout", out)
|
||||
.normalize(
|
||||
r#"(\d+(?:[.,]\d+)*)\s*ns/iter\s*\(\+/-\s*(\d+(?:[.,]\d+)*)\)"#,
|
||||
"?? ns/iter (+/- ??)",
|
||||
)
|
||||
.normalize(r#"finished\s+in\s+(\d+(?:\.\d+)*)"#, "finished in ??")
|
||||
.run();
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
include ../tools.mk
|
||||
|
||||
all:
|
||||
$(RUSTC) -o $(TMPDIR)/input.out -Zunpretty=normal input.rs
|
||||
diff -u $(TMPDIR)/input.out input.pp
|
12
tests/run-make/pretty-print-to-file/rmake.rs
Normal file
12
tests/run-make/pretty-print-to-file/rmake.rs
Normal file
@ -0,0 +1,12 @@
|
||||
// The "pretty-printer" of rustc translates source code into other formats,
|
||||
// which is useful for debugging. This test checks the "normal" version of
|
||||
// -Zunpretty, which should format the poorly formatted input.rs into a one-line
|
||||
// function identical to the one in input.pp.
|
||||
// See https://github.com/rust-lang/rust/commit/da25539c1ab295ec40261109557dd4526923928c
|
||||
|
||||
use run_make_support::{diff, rustc};
|
||||
|
||||
fn main() {
|
||||
rustc().output("input.out").arg("-Zunpretty=normal").input("input.rs").run();
|
||||
diff().expected_file("input.out").actual_file("input.pp").run();
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
include ../tools.mk
|
||||
|
||||
all:
|
||||
$(RUSTC) --emit=dep-info -Zunpretty=expanded with-dep.rs
|
||||
$(CGREP) "with-dep.rs" < $(TMPDIR)/with-dep.d
|
||||
-rm $(TMPDIR)/with-dep.d
|
||||
|
||||
$(RUSTC) --emit=dep-info -Zunpretty=normal with-dep.rs
|
||||
! test -f $(TMPDIR)/with-dep.d
|
17
tests/run-make/pretty-print-with-dep-file/rmake.rs
Normal file
17
tests/run-make/pretty-print-with-dep-file/rmake.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// Passing --emit=dep-info to the Rust compiler should create a .d file...
|
||||
// but it failed to do so in Rust 1.69.0 when combined with -Z unpretty=expanded
|
||||
// due to a bug. This test checks that -Z unpretty=expanded does not prevent the
|
||||
// generation of the dep-info file, and that its -Z unpretty=normal counterpart
|
||||
// does not get an unexpected dep-info file.
|
||||
// See https://github.com/rust-lang/rust/issues/112898
|
||||
|
||||
use run_make_support::{fs_wrapper, invalid_utf8_contains, rustc};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
rustc().emit("dep-info").arg("-Zunpretty=expanded").input("with-dep.rs").run();
|
||||
invalid_utf8_contains("with-dep.d", "with-dep.rs");
|
||||
fs_wrapper::remove_file("with-dep.d");
|
||||
rustc().emit("dep-info").arg("-Zunpretty=normal").input("with-dep.rs").run();
|
||||
assert!(!Path::new("with-dep.d").exists());
|
||||
}
|
Loading…
Reference in New Issue
Block a user