Skip to content

Commit 8a6bc13

Browse files
committed
Add set_backtrace_level helper function to run_make_support
1 parent f88c647 commit 8a6bc13

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

src/tools/run-make-support/src/rustc.rs

+6
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ impl Rustc {
100100
self
101101
}
102102

103+
//Adjust the backtrace level, displaying more detailed information at higher levels.
104+
pub fn set_backtrace_level<R: AsRef<OsStr>>(&mut self, level: R) -> &mut Self {
105+
self.cmd.env("RUST_BACKTRACE", level);
106+
self
107+
}
108+
103109
/// Specify path to the output file. Equivalent to `-o`` in rustc.
104110
pub fn output<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
105111
self.cmd.arg("-o");

tests/run-make/short-ice/rmake.rs

+24-13
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,37 @@
44
// was shortened down to an appropriate length.
55
// See https://github.com/rust-lang/rust/issues/107910
66

7+
//@ ignore-windows
8+
// Reason: the assert_eq! on line 32 fails, as error output on Windows is different.
9+
710
use run_make_support::rustc;
8-
use std::env;
911

1012
fn main() {
11-
env::set_var("RUST_BACKTRACE", "1");
12-
let mut rust_test_1 = rustc().input("src/lib.rs").arg("-Ztreat-err-as-bug=1").run_fail();
13-
env::set_var("RUST_BACKTRACE", "full");
14-
let mut rust_test_2 = rustc().input("src/lib.rs").arg("-Ztreat-err-as-bug=1").run_fail();
15-
let rust_test_log_1 = rust_test_1.stderr_utf8().push_str(&rust_test_1.stdout_utf8()).as_str();
16-
let rust_test_log_2 = rust_test_2.stderr_utf8().push_str(&rust_test_2.stdout_utf8()).as_str();
13+
let rust_test_1 =
14+
rustc().set_backtrace_level("1").input("src/lib.rs").arg("-Ztreat-err-as-bug=1").run_fail();
15+
let rust_test_2 = rustc()
16+
.set_backtrace_level("full")
17+
.input("src/lib.rs")
18+
.arg("-Ztreat-err-as-bug=1")
19+
.run_fail();
20+
21+
let mut rust_test_log_1 = rust_test_1.stderr_utf8();
22+
rust_test_log_1.push_str(&rust_test_1.stdout_utf8());
23+
let rust_test_log_1 = rust_test_log_1.as_str();
24+
25+
let mut rust_test_log_2 = rust_test_2.stderr_utf8();
26+
rust_test_log_2.push_str(&rust_test_2.stdout_utf8());
27+
let rust_test_log_2 = rust_test_log_2.as_str();
1728

1829
let rustc_query_count_full = count_lines_with(rust_test_log_2, "rustc_query_");
1930

20-
assert!(
21-
rust_test_log_1.lines().count() < rust_test_log_2.lines().count()
22-
&& count_lines_with(rust_test_log_2, "__rust_begin_short_backtrace")
23-
== count_lines_with(rust_test_log_2, "__rust_end_short_backtrace")
24-
&& count_lines_with(rust_test_log_1, "rustc_query_") + 5 < rustc_query_count_full
25-
&& rustc_query_count_full > 5
31+
assert!(rust_test_log_1.lines().count() < rust_test_log_2.lines().count());
32+
assert_eq!(
33+
count_lines_with(rust_test_log_2, "__rust_begin_short_backtrace"),
34+
count_lines_with(rust_test_log_2, "__rust_end_short_backtrace")
2635
);
36+
assert!(count_lines_with(rust_test_log_1, "rustc_query_") + 5 < rustc_query_count_full);
37+
assert!(rustc_query_count_full > 5);
2738
}
2839

2940
fn count_lines_with(s: &str, search: &str) -> usize {

0 commit comments

Comments
 (0)