mirror of
https://github.com/rust-lang/cargo
synced 2024-08-25 02:25:46 +00:00
45 lines
1.3 KiB
Rust
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");
|
|
}
|