Skip to content

Commit b1cd611

Browse files
committed
Actually run debugge
1 parent 6de46c9 commit b1cd611

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

minion-tests/src/master.rs

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,44 @@ fn execute_tests(test_cases: &[&dyn TestCase], exec_opts: ExecuteOptions) -> Out
7373
fn execute_single_test(case: &dyn TestCase, exec_opts: ExecuteOptions) -> Outcome {
7474
println!("------ {} ------", case.name());
7575
let self_exe = std::env::current_exe().unwrap();
76+
let tmp = tempfile::tempdir().unwrap();
7677
let mut cmd = if exec_opts.trace {
77-
let mut cmd = std::process::Command::new("strace");
78-
cmd.arg("-f"); // follow forks
79-
cmd.arg("-o").arg(format!("strace-log-{}.txt", case.name()));
80-
cmd.arg(self_exe);
81-
cmd
78+
if cfg!(target_os = "linux") {
79+
let mut cmd = std::process::Command::new("strace");
80+
cmd.arg("-f"); // follow forks
81+
cmd.arg("-o").arg(format!("strace-log-{}.txt", case.name()));
82+
cmd.arg(self_exe);
83+
cmd
84+
} else if cfg!(target_os = "windows") {
85+
let mut cmd = std::process::Command::new("cdb");
86+
// disable debug heap
87+
cmd.arg("-hd");
88+
// follow children
89+
cmd.arg("-o");
90+
91+
let script_file_path = tmp.path().join("script.txt");
92+
93+
std::fs::write(
94+
&script_file_path,
95+
[
96+
"!logexts.loge",
97+
"!logexts.logc e *",
98+
"!logexts.logo e d",
99+
"g",
100+
"!logexts.logb p",
101+
"q"
102+
]
103+
.join("\n"),
104+
)
105+
.unwrap();
106+
107+
cmd.arg("-cf").arg(&script_file_path);
108+
109+
cmd.arg(self_exe);
110+
cmd
111+
} else {
112+
panic!("--trace unsupported on this target")
113+
}
82114
} else {
83115
std::process::Command::new(self_exe)
84116
};

0 commit comments

Comments
 (0)