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/issue-84395-lto-embed-bitcode/Makefile
|
||||||
run-make/jobserver-error/Makefile
|
run-make/jobserver-error/Makefile
|
||||||
run-make/libs-through-symlinks/Makefile
|
run-make/libs-through-symlinks/Makefile
|
||||||
run-make/libtest-json/Makefile
|
|
||||||
run-make/libtest-junit/Makefile
|
run-make/libtest-junit/Makefile
|
||||||
run-make/libtest-thread-limit/Makefile
|
run-make/libtest-thread-limit/Makefile
|
||||||
run-make/macos-deployment-target/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", "name": "c", "event": "ok" }
|
||||||
{ "type": "test", "event": "started", "name": "d" }
|
{ "type": "test", "event": "started", "name": "d" }
|
||||||
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
|
{ "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", "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", "event": "started", "name": "d" }
|
||||||
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
|
{ "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