Skip to content

Commit

Permalink
Rollup merge of rust-lang#129037 - Zalathar:rmake-libtest, r=jieyouxu
Browse files Browse the repository at this point in the history
Port `run-make/libtest-json` and `run-make/libtest-junit` to rmake

Unlike rust-lang#126773, this is just a straightforward port to `rmake`, without attempting to switch to compiletest or get rid of the (trivial) Python scripts.

Part of rust-lang#121876.

r? ``@jieyouxu``

try-job: x86_64-msvc
try-job: i686-mingw
try-job: test-various
try-job: aarch64-gnu
try-job: aarch64-apple
  • Loading branch information
workingjubilee authored Aug 16, 2024
2 parents 4f33fd2 + fc733a6 commit 8fd4899
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 44 deletions.
2 changes: 0 additions & 2 deletions src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ run-make/incr-add-rust-src-component/Makefile
run-make/issue-84395-lto-embed-bitcode/Makefile
run-make/jobserver-error/Makefile
run-make/libs-through-symlinks/Makefile
run-make/libtest-json/Makefile
run-make/libtest-junit/Makefile
run-make/libtest-thread-limit/Makefile
run-make/macos-deployment-target/Makefile
run-make/reproducible-build/Makefile
Expand Down
20 changes: 0 additions & 20 deletions tests/run-make/libtest-json/Makefile

This file was deleted.

2 changes: 1 addition & 1 deletion tests/run-make/libtest-json/output-default.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
{ "type": "test", "name": "c", "event": "ok" }
{ "type": "test", "event": "started", "name": "d" }
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": $TIME }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": "$EXEC_TIME" }
2 changes: 1 addition & 1 deletion tests/run-make/libtest-json/output-stdout-success.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
{ "type": "test", "name": "c", "event": "ok", "stdout": "thread 'c' panicked at f.rs:15:5:\nassertion failed: false\n" }
{ "type": "test", "event": "started", "name": "d" }
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": $TIME }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": "$EXEC_TIME" }
31 changes: 31 additions & 0 deletions tests/run-make/libtest-json/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Check libtest's JSON output against snapshots.

//@ ignore-cross-compile
//@ needs-unwind (test file contains #[should_panic] test)

use run_make_support::{cmd, diff, python_command, rustc};

fn main() {
rustc().arg("--test").input("f.rs").run();

run_tests(&[], "output-default.json");
run_tests(&["--show-output"], "output-stdout-success.json");
}

#[track_caller]
fn run_tests(extra_args: &[&str], expected_file: &str) {
let cmd_out = cmd("./f")
.env("RUST_BACKTRACE", "0")
.args(&["-Zunstable-options", "--test-threads=1", "--format=json"])
.args(extra_args)
.run_fail();
let test_stdout = &cmd_out.stdout_utf8();

python_command().arg("validate_json.py").stdin(test_stdout).run();

diff()
.expected_file(expected_file)
.actual_text("stdout", test_stdout)
.normalize(r#"(?<prefix>"exec_time": )[0-9.]+"#, r#"${prefix}"$$EXEC_TIME""#)
.run();
}
20 changes: 0 additions & 20 deletions tests/run-make/libtest-junit/Makefile

This file was deleted.

31 changes: 31 additions & 0 deletions tests/run-make/libtest-junit/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Check libtest's JUnit (XML) output against snapshots.

//@ ignore-cross-compile
//@ needs-unwind (test file contains #[should_panic] test)

use run_make_support::{cmd, diff, python_command, rustc};

fn main() {
rustc().arg("--test").input("f.rs").run();

run_tests(&[], "output-default.xml");
run_tests(&["--show-output"], "output-stdout-success.xml");
}

#[track_caller]
fn run_tests(extra_args: &[&str], expected_file: &str) {
let cmd_out = cmd("./f")
.env("RUST_BACKTRACE", "0")
.args(&["-Zunstable-options", "--test-threads=1", "--format=junit"])
.args(extra_args)
.run_fail();
let test_stdout = &cmd_out.stdout_utf8();

python_command().arg("validate_junit.py").stdin(test_stdout).run();

diff()
.expected_file(expected_file)
.actual_text("stdout", test_stdout)
.normalize(r#"\btime="[0-9.]+""#, r#"time="$$TIME""#)
.run();
}

0 comments on commit 8fd4899

Please sign in to comment.