Open
Description
Project layout looks like
a/
Cargo.toml
b/
Cargo.toml
a/Cargo.toml looks like
[package]
name = "a"
version = "0.1.0"
edition = "2018"
[features]
default = ["feature-a"]
feature-a = []
feature-b = []
[workspace]
members = ["b"]
b/Cargo.toml looks like
[package]
name = "b"
version = "0.1.0"
edition = "2018"
[features]
default = ["feature-a"]
feature-a = ["a/feature-a"]
feature-b = ["a/feature-b"]
[dependencies]
a = { path = "..", default-features = false }
And cargo test --all
will not honor the --no-default-features
flag.
% cargo test --all --no-default-features --features feature-b --verbose
Compiling a v0.1.0 (/tmp/a)
Running `rustc --edition=2018 --crate-name a src/lib.rs --color always --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="feature-a"' --cfg 'feature="feature-b"' -C metadata=09792cb50711fca8 -C extra-filename=-09792cb50711fca8 --out-dir /tmp/a/target/debug/deps -C incremental=/tmp/a/target/debug/incremental -L dependency=/tmp/a/target/debug/deps`
Running `rustc --edition=2018 --crate-name a src/lib.rs --color always --emit=dep-info,metadata,link -C debuginfo=2 --test --cfg 'feature="feature-a"' --cfg 'feature="feature-b"' -C metadata=7aec07bce955fd6c -C extra-filename=-7aec07bce955fd6c --out-dir /tmp/a/target/debug/deps -C incremental=/tmp/a/target/debug/incremental -L dependency=/tmp/a/target/debug/deps`
Compiling b v0.1.0 (/tmp/a/b)
Running `rustc --edition=2018 --crate-name b b/src/lib.rs --color always --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="a"' --cfg 'feature="default"' --cfg 'feature="feature-a"' -C metadata=f8a1d0b2c22c9971 -C extra-filename=-f8a1d0b2c22c9971 --out-dir /tmp/a/target/debug/deps -C incremental=/tmp/a/target/debug/incremental -L dependency=/tmp/a/target/debug/deps --extern a=/tmp/a/target/debug/deps/liba-09792cb50711fca8.rlib`
Running `rustc --edition=2018 --crate-name b b/src/lib.rs --color always --emit=dep-info,metadata,link -C debuginfo=2 --test --cfg 'feature="a"' --cfg 'feature="default"' --cfg 'feature="feature-a"' -C metadata=4af8985939a1dfde -C extra-filename=-4af8985939a1dfde --out-dir /tmp/a/target/debug/deps -C incremental=/tmp/a/target/debug/incremental -L dependency=/tmp/a/target/debug/deps --extern a=/tmp/a/target/debug/deps/liba-09792cb50711fca8.rlib`
Running `rustc --edition=2018 --crate-name tests b/tests/tests.rs --color always --emit=dep-info,link -C debuginfo=2 --test --cfg 'feature="a"' --cfg 'feature="default"' --cfg 'feature="feature-a"' -C metadata=e05b77e250661b9b -C extra-filename=-e05b77e250661b9b --out-dir /tmp/a/target/debug/deps -C incremental=/tmp/a/target/debug/incremental -L dependency=/tmp/a/target/debug/deps --extern a=/tmp/a/target/debug/deps/liba-09792cb50711fca8.rlib --extern b=/tmp/a/target/debug/deps/libb-f8a1d0b2c22c9971.rlib`
Finished dev [unoptimized + debuginfo] target(s) in 0.36s
b will be compiled with default features hence enable a's feature-a.