New rebase for the issue #45022
Add pretty printer files into test execution time-stamping Move find_rust_src_path() as a method for Config Move find_rust_src_path() as a method for Config Call find_rust_src_path() from Config Move find_rust_src_path() from common.rs to header.rs Add pretty printer files as relevant files to get up_to_date information Remove dead code Add two pretty printer files to keep a close watch on Move find_rust_src_path() as a method for Config Move find_rust_src_path() as a method for Config Call find_rust_src_path() from Config Move find_rust_src_path() from common.rs to header.rs Remove dead code Add two pretty printer files to keep a close watch on
This commit is contained in:
parent
417ffc98df
commit
53a648522b
3 changed files with 47 additions and 29 deletions
|
@ -567,6 +567,19 @@ impl Config {
|
||||||
None
|
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 {
|
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 {
|
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 stamp = mtime(&stamp(config, testpaths));
|
||||||
let mut inputs = vec![
|
let mut inputs = vec![mtime(&testpaths.file), mtime(&config.rustc_path)];
|
||||||
mtime(&testpaths.file),
|
|
||||||
mtime(&config.rustc_path),
|
|
||||||
];
|
|
||||||
for aux in props.aux.iter() {
|
for aux in props.aux.iter() {
|
||||||
inputs.push(mtime(&testpaths.file.parent().unwrap()
|
inputs.push(mtime(
|
||||||
.join("auxiliary")
|
&testpaths.file.parent().unwrap().join("auxiliary").join(
|
||||||
.join(aux)));
|
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() {
|
for lib in config.run_lib_path.read_dir().unwrap() {
|
||||||
let lib = lib.unwrap();
|
let lib = lib.unwrap();
|
||||||
|
|
|
@ -571,9 +571,10 @@ actual:\n\
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_=> {
|
_ => {
|
||||||
let rust_src_root = self.find_rust_src_root()
|
let rust_src_root = self.config.find_rust_src_root().expect(
|
||||||
.expect("Could not find Rust source root");
|
"Could not find Rust source root",
|
||||||
|
);
|
||||||
let rust_pp_module_rel_path = Path::new("./src/etc");
|
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)
|
let rust_pp_module_abs_path = rust_src_root.join(rust_pp_module_rel_path)
|
||||||
.to_str()
|
.to_str()
|
||||||
|
@ -664,19 +665,6 @@ actual:\n\
|
||||||
self.check_debugger_output(&debugger_run_result, &check_lines);
|
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) {
|
fn run_debuginfo_lldb_test(&self) {
|
||||||
assert!(self.revision.is_none(), "revisions not relevant here");
|
assert!(self.revision.is_none(), "revisions not relevant here");
|
||||||
|
|
||||||
|
@ -735,7 +723,9 @@ actual:\n\
|
||||||
script_str.push_str("version\n");
|
script_str.push_str("version\n");
|
||||||
|
|
||||||
// Switch LLDB into "Rust mode"
|
// 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_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)
|
let rust_pp_module_abs_path = rust_src_root.join(rust_pp_module_rel_path)
|
||||||
.to_str()
|
.to_str()
|
||||||
|
@ -1717,11 +1707,13 @@ actual:\n\
|
||||||
if self.props.check_test_line_numbers_match {
|
if self.props.check_test_line_numbers_match {
|
||||||
self.check_rustdoc_test_option(proc_res);
|
self.check_rustdoc_test_option(proc_res);
|
||||||
} else {
|
} else {
|
||||||
let root = self.find_rust_src_root().unwrap();
|
let root = self.config.find_rust_src_root().unwrap();
|
||||||
let res = self.cmd2procres(Command::new(&self.config.docck_python)
|
let res = self.cmd2procres(
|
||||||
|
Command::new(&self.config.docck_python)
|
||||||
.arg(root.join("src/etc/htmldocck.py"))
|
.arg(root.join("src/etc/htmldocck.py"))
|
||||||
.arg(out_dir)
|
.arg(out_dir)
|
||||||
.arg(&self.testpaths.file));
|
.arg(&self.testpaths.file),
|
||||||
|
);
|
||||||
if !res.status.success() {
|
if !res.status.success() {
|
||||||
self.fatal_proc_rec("htmldocck failed!", &res);
|
self.fatal_proc_rec("htmldocck failed!", &res);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue