mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-22 21:44:44 +00:00
Rollup merge of #45051 - k0pernicus:master, r=michaelwoerister
Debugger pretty printer files are take into account in test execution time-stamping This PR is proposed to solve the issue #45022.
This commit is contained in:
commit
9e6b565c61
@ -567,6 +567,19 @@ impl Config {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
pub fn find_rust_src_root(&self) -> Option<PathBuf> {
|
||||
let mut path = self.src_base.clone();
|
||||
let path_postfix = Path::new("src/etc/lldb_batchmode.py");
|
||||
|
||||
while path.pop() {
|
||||
if path.join(&path_postfix).is_file() {
|
||||
return Some(path);
|
||||
}
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
pub fn lldb_version_to_int(version_string: &str) -> isize {
|
||||
|
@ -489,15 +489,28 @@ fn stamp(config: &Config, testpaths: &TestPaths) -> PathBuf {
|
||||
}
|
||||
|
||||
fn up_to_date(config: &Config, testpaths: &TestPaths, props: &EarlyProps) -> bool {
|
||||
let rust_src_dir = config.find_rust_src_root().expect(
|
||||
"Could not find Rust source root",
|
||||
);
|
||||
let stamp = mtime(&stamp(config, testpaths));
|
||||
let mut inputs = vec![
|
||||
mtime(&testpaths.file),
|
||||
mtime(&config.rustc_path),
|
||||
];
|
||||
let mut inputs = vec![mtime(&testpaths.file), mtime(&config.rustc_path)];
|
||||
for aux in props.aux.iter() {
|
||||
inputs.push(mtime(&testpaths.file.parent().unwrap()
|
||||
.join("auxiliary")
|
||||
.join(aux)));
|
||||
inputs.push(mtime(
|
||||
&testpaths.file.parent().unwrap().join("auxiliary").join(
|
||||
aux,
|
||||
),
|
||||
));
|
||||
}
|
||||
// Relevant pretty printer files
|
||||
let pretty_printer_files = [
|
||||
"src/etc/debugger_pretty_printers_common.py",
|
||||
"src/etc/gdb_load_rust_pretty_printers.py",
|
||||
"src/etc/gdb_rust_pretty_printing.py",
|
||||
"src/etc/lldb_batchmode.py",
|
||||
"src/etc/lldb_rust_formatters.py",
|
||||
];
|
||||
for pretty_printer_file in &pretty_printer_files {
|
||||
inputs.push(mtime(&rust_src_dir.join(pretty_printer_file)));
|
||||
}
|
||||
for lib in config.run_lib_path.read_dir().unwrap() {
|
||||
let lib = lib.unwrap();
|
||||
|
@ -571,9 +571,10 @@ actual:\n\
|
||||
}
|
||||
}
|
||||
|
||||
_=> {
|
||||
let rust_src_root = self.find_rust_src_root()
|
||||
.expect("Could not find Rust source root");
|
||||
_ => {
|
||||
let rust_src_root = self.config.find_rust_src_root().expect(
|
||||
"Could not find Rust source root",
|
||||
);
|
||||
let rust_pp_module_rel_path = Path::new("./src/etc");
|
||||
let rust_pp_module_abs_path = rust_src_root.join(rust_pp_module_rel_path)
|
||||
.to_str()
|
||||
@ -664,19 +665,6 @@ actual:\n\
|
||||
self.check_debugger_output(&debugger_run_result, &check_lines);
|
||||
}
|
||||
|
||||
fn find_rust_src_root(&self) -> Option<PathBuf> {
|
||||
let mut path = self.config.src_base.clone();
|
||||
let path_postfix = Path::new("src/etc/lldb_batchmode.py");
|
||||
|
||||
while path.pop() {
|
||||
if path.join(&path_postfix).is_file() {
|
||||
return Some(path);
|
||||
}
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
fn run_debuginfo_lldb_test(&self) {
|
||||
assert!(self.revision.is_none(), "revisions not relevant here");
|
||||
|
||||
@ -735,7 +723,9 @@ actual:\n\
|
||||
script_str.push_str("version\n");
|
||||
|
||||
// Switch LLDB into "Rust mode"
|
||||
let rust_src_root = self.find_rust_src_root().expect("Could not find Rust source root");
|
||||
let rust_src_root = self.config.find_rust_src_root().expect(
|
||||
"Could not find Rust source root",
|
||||
);
|
||||
let rust_pp_module_rel_path = Path::new("./src/etc/lldb_rust_formatters.py");
|
||||
let rust_pp_module_abs_path = rust_src_root.join(rust_pp_module_rel_path)
|
||||
.to_str()
|
||||
@ -1717,11 +1707,13 @@ actual:\n\
|
||||
if self.props.check_test_line_numbers_match {
|
||||
self.check_rustdoc_test_option(proc_res);
|
||||
} else {
|
||||
let root = self.find_rust_src_root().unwrap();
|
||||
let res = self.cmd2procres(Command::new(&self.config.docck_python)
|
||||
.arg(root.join("src/etc/htmldocck.py"))
|
||||
.arg(out_dir)
|
||||
.arg(&self.testpaths.file));
|
||||
let root = self.config.find_rust_src_root().unwrap();
|
||||
let res = self.cmd2procres(
|
||||
Command::new(&self.config.docck_python)
|
||||
.arg(root.join("src/etc/htmldocck.py"))
|
||||
.arg(out_dir)
|
||||
.arg(&self.testpaths.file),
|
||||
);
|
||||
if !res.status.success() {
|
||||
self.fatal_proc_rec("htmldocck failed!", &res);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user