}
self.default_members.push(manifest_path)
}
- } else {
+ } else if self.is_virtual() {
self.default_members = self.members.clone()
+ } else {
+ self.default_members.push(self.current_manifest.clone())
}
self.find_path_deps(&root_manifest_path, &root_manifest_path, false)
Packages::Packages(packages) => {
packages.iter().map(|p| PackageIdSpec::parse(p)).collect::<CargoResult<Vec<_>>>()?
}
- Packages::Default if ws.is_virtual() => {
+ Packages::Default => {
ws.default_members()
.map(Package::package_id)
.map(PackageIdSpec::from_package_id)
.collect()
}
- Packages::Default => {
- ws.current_opt()
- .map(Package::package_id)
- .map(PackageIdSpec::from_package_id)
- .into_iter().collect()
- }
};
Ok(specs)
}
assert_that(&p.root().join("bar/Cargo.lock"), is_not(existing_file()));
}
+#[test]
+fn simple_explicit_default_members() {
+ let p = project("foo")
+ .file("Cargo.toml", r#"
+ [project]
+ name = "foo"
+ version = "0.1.0"
+ authors = []
+
+ [workspace]
+ members = ["bar"]
+ default-members = ["bar"]
+ "#)
+ .file("src/main.rs", "fn main() {}")
+ .file("bar/Cargo.toml", r#"
+ [project]
+ name = "bar"
+ version = "0.1.0"
+ authors = []
+ workspace = ".."
+ "#)
+ .file("bar/src/main.rs", "fn main() {}");
+ let p = p.build();
+
+ assert_that(p.cargo("build"), execs().with_status(0));
+ assert_that(&p.bin("bar"), existing_file());
+ assert_that(&p.bin("foo"), is_not(existing_file()));
+}
+
#[test]
fn inferred_root() {
let p = project("foo")