cargo/tests/testsuite/member_discovery.rs
2020-09-26 17:59:58 -07:00

45 lines
1.3 KiB
Rust

//! Tests for workspace member discovery.
use cargo::core::{Shell, Workspace};
use cargo::util::config::Config;
use cargo_test_support::install::cargo_home;
use cargo_test_support::project;
use cargo_test_support::registry;
/// Tests exclusion of non-directory files from workspace member discovery using glob `*`.
#[cargo_test]
fn bad_file_member_exclusion() {
let p = project()
.file(
"Cargo.toml",
r#"
[workspace]
members = [ "crates/*" ]
"#,
)
.file("crates/.DS_Store", "PLACEHOLDER")
.file(
"crates/bar/Cargo.toml",
r#"
[project]
name = "bar"
version = "0.1.0"
authors = []
"#,
)
.file("crates/bar/src/main.rs", "fn main() {}")
.build();
// Prevent this test from accessing the network by setting up .cargo/config.
registry::init();
let config = Config::new(
Shell::from_write(Box::new(Vec::new())),
cargo_home(),
cargo_home(),
);
let ws = Workspace::new(&p.root().join("Cargo.toml"), &config).unwrap();
assert_eq!(ws.members().count(), 1);
assert_eq!(ws.members().next().unwrap().name(), "bar");
}