mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 09:14:20 +00:00
Add tests for fixed bugs
This commit is contained in:
parent
0da0a2196d
commit
fca6dbd9af
@ -348,7 +348,11 @@ impl StepDescription {
|
||||
eprintln!(
|
||||
"note: if you are adding a new Step to bootstrap itself, make sure you register it with `describe!`"
|
||||
);
|
||||
#[cfg(not(test))]
|
||||
std::process::exit(1);
|
||||
#[cfg(test)]
|
||||
// so we can use #[should_panic]
|
||||
panic!()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,11 @@ use crate::config::{Config, TargetSelection};
|
||||
use std::thread;
|
||||
|
||||
fn configure(cmd: &str, host: &[&str], target: &[&str]) -> Config {
|
||||
let mut config = Config::parse(&[cmd.to_owned()]);
|
||||
configure_with_args(&[cmd.to_owned()], host, target)
|
||||
}
|
||||
|
||||
fn configure_with_args(cmd: &[String], host: &[&str], target: &[&str]) -> Config {
|
||||
let mut config = Config::parse(cmd);
|
||||
// don't save toolstates
|
||||
config.save_toolstates = None;
|
||||
config.dry_run = true;
|
||||
@ -46,11 +50,39 @@ fn run_build(paths: &[PathBuf], config: Config) -> Cache {
|
||||
builder.cache
|
||||
}
|
||||
|
||||
fn check_cli<const N: usize>(paths: [&str; N]) {
|
||||
run_build(
|
||||
&paths.map(PathBuf::from),
|
||||
configure_with_args(&paths.map(String::from), &["A"], &["A"]),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_valid() {
|
||||
// make sure multi suite paths are accepted
|
||||
check_cli(["test", "src/test/ui/attr-start.rs", "src/test/ui/attr-shebang.rs"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn test_invalid() {
|
||||
// make sure that invalid paths are caught, even when combined with valid paths
|
||||
check_cli(["test", "library/std", "x"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_intersection() {
|
||||
let set = PathSet::Set(["library/core", "library/alloc", "library/std"].into_iter().map(TaskPath::parse).collect());
|
||||
let subset = set.intersection(&[Path::new("library/core"), Path::new("library/alloc"), Path::new("library/stdarch")], None);
|
||||
assert_eq!(subset, PathSet::Set(["library/core", "library/alloc"].into_iter().map(TaskPath::parse).collect()));
|
||||
let set = PathSet::Set(
|
||||
["library/core", "library/alloc", "library/std"].into_iter().map(TaskPath::parse).collect(),
|
||||
);
|
||||
let mut command_paths =
|
||||
vec![Path::new("library/core"), Path::new("library/alloc"), Path::new("library/stdarch")];
|
||||
let subset = set.intersection_removing_matches(&mut command_paths, None);
|
||||
assert_eq!(
|
||||
subset,
|
||||
PathSet::Set(["library/core", "library/alloc"].into_iter().map(TaskPath::parse).collect())
|
||||
);
|
||||
assert_eq!(command_paths, vec![Path::new("library/stdarch")]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
Loading…
Reference in New Issue
Block a user