Skip to content

Commit 862a322

Browse files
committed
Add test of the new warning about missing features
1 parent bac6a9a commit 862a322

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

tests/testsuite/required_features.rs

+91
Original file line numberDiff line numberDiff line change
@@ -1359,3 +1359,94 @@ Consider enabling them by passing, e.g., `--features=\"a1/f1\"`
13591359
.with_stdout("a1 f1\na2 f2")
13601360
.run();
13611361
}
1362+
1363+
#[cargo_test]
1364+
fn truncated_install_warning_message() {
1365+
let p = project()
1366+
.file(
1367+
"Cargo.toml",
1368+
r#"
1369+
[package]
1370+
name = "foo"
1371+
version = "0.1.0"
1372+
edition = "2021"
1373+
1374+
[features]
1375+
feature1 = []
1376+
feature2 = []
1377+
feature3 = []
1378+
feature4 = []
1379+
feature5 = []
1380+
1381+
[[bin]]
1382+
name = "foo1"
1383+
required-features = ["feature1", "feature2", "feature3"]
1384+
1385+
[[bin]]
1386+
name = "foo2"
1387+
required-features = ["feature2"]
1388+
1389+
[[bin]]
1390+
name = "foo3"
1391+
required-features = ["feature3"]
1392+
1393+
[[bin]]
1394+
name = "foo4"
1395+
required-features = ["feature4", "feature1"]
1396+
1397+
[[bin]]
1398+
name = "foo5"
1399+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1400+
1401+
[[bin]]
1402+
name = "foo6"
1403+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1404+
1405+
[[bin]]
1406+
name = "foo7"
1407+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1408+
1409+
[[bin]]
1410+
name = "foo8"
1411+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1412+
1413+
[[bin]]
1414+
name = "foo9"
1415+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1416+
1417+
[[bin]]
1418+
name = "foo10"
1419+
required-features = ["feature1", "feature2", "feature3", "feature4", "feature5"]
1420+
1421+
[[example]]
1422+
name = "example1"
1423+
required-features = ["feature1", "feature2"]
1424+
"#,
1425+
)
1426+
.file("src/bin/foo1.rs", "fn main() {}")
1427+
.file("src/bin/foo2.rs", "fn main() {}")
1428+
.file("src/bin/foo3.rs", "fn main() {}")
1429+
.file("src/bin/foo4.rs", "fn main() {}")
1430+
.file("src/bin/foo5.rs", "fn main() {}")
1431+
.file("src/bin/foo6.rs", "fn main() {}")
1432+
.file("src/bin/foo7.rs", "fn main() {}")
1433+
.file("src/bin/foo8.rs", "fn main() {}")
1434+
.file("src/bin/foo9.rs", "fn main() {}")
1435+
.file("src/bin/foo10.rs", "fn main() {}")
1436+
.file("examples/example1.rs", "fn main() {}")
1437+
.build();
1438+
1439+
p.cargo("install --path .").with_stderr("\
1440+
[INSTALLING] foo v0.1.0 ([..])
1441+
[FINISHED] release [optimized] target(s) in [..]
1442+
[WARNING] none of the package's binaries are available for install using the selected features
1443+
bin \"foo1\" requires the features: `feature1`, `feature2`, `feature3`
1444+
bin \"foo2\" requires the features: `feature2`
1445+
bin \"foo3\" requires the features: `feature3`
1446+
bin \"foo4\" requires the features: `feature4`, `feature1`
1447+
bin \"foo5\" requires the features: `feature1`, `feature2`, `feature3`, `feature4`, `feature5`
1448+
bin \"foo6\" requires the features: `feature1`, `feature2`, `feature3`, `feature4`, `feature5`
1449+
bin \"foo7\" requires the features: `feature1`, `feature2`, `feature3`, `feature4`, `feature5`
1450+
4 more targets also requires features not enabled. See them in the Cargo.toml file.
1451+
Consider enabling some of the needed features by passing, e.g., `--features=\"feature1 feature2 feature3\"`").run();
1452+
}

0 commit comments

Comments
 (0)