mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Port run-make/libtest-json
to rmake
This commit is contained in:
parent
91376f4162
commit
c4aa7a71a9
@ -9,7 +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
|
||||
|
@ -1,20 +0,0 @@
|
||||
# ignore-cross-compile
|
||||
# needs-unwind
|
||||
include ../tools.mk
|
||||
|
||||
# Test expected libtest's JSON output
|
||||
|
||||
OUTPUT_FILE_DEFAULT := $(TMPDIR)/libtest-json-output-default.json
|
||||
OUTPUT_FILE_STDOUT_SUCCESS := $(TMPDIR)/libtest-json-output-stdout-success.json
|
||||
|
||||
all: f.rs validate_json.py output-default.json output-stdout-success.json
|
||||
$(RUSTC) --test f.rs
|
||||
RUST_BACKTRACE=0 $(call RUN,f) -Z unstable-options --test-threads=1 --format=json > $(OUTPUT_FILE_DEFAULT) || true
|
||||
RUST_BACKTRACE=0 $(call RUN,f) -Z unstable-options --test-threads=1 --format=json --show-output > $(OUTPUT_FILE_STDOUT_SUCCESS) || true
|
||||
|
||||
cat $(OUTPUT_FILE_DEFAULT) | "$(PYTHON)" validate_json.py
|
||||
cat $(OUTPUT_FILE_STDOUT_SUCCESS) | "$(PYTHON)" validate_json.py
|
||||
|
||||
# Normalize the actual output and compare to expected output file
|
||||
cat $(OUTPUT_FILE_DEFAULT) | sed 's/"exec_time": [0-9.]*/"exec_time": $$TIME/' | diff output-default.json -
|
||||
cat $(OUTPUT_FILE_STDOUT_SUCCESS) | sed 's/"exec_time": [0-9.]*/"exec_time": $$TIME/' | diff output-stdout-success.json -
|
@ -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" }
|
||||
|
@ -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
tests/run-make/libtest-json/rmake.rs
Normal file
31
tests/run-make/libtest-json/rmake.rs
Normal file
@ -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();
|
||||
}
|
Loading…
Reference in New Issue
Block a user