nextest
nextest copied to clipboard
`cargo nextest run --workspace` fails with DLL missing if a macro lib exists
PS C:\src\rust-test> cargo nextest run --workspace
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
Compiling proc-macro2 v1.0.82
Compiling unicode-ident v1.0.12
Compiling rust-test v0.1.0 (C:\src\rust-test\hello_world)
Compiling quote v1.0.36
Compiling syn v2.0.61
Compiling hello_macro v0.1.0 (C:\src\rust-test\hello_macro)
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.82s
error: creating test list failed
Caused by:
for `hello_macro`, command `'C:\src\rust-test\target\debug\deps\hello_macro-621f285b4f25d626.exe' --list --format terse` exited with code 0xc0000135: The specified module could not be found. (os error 126)
--- stdout:
--- stderr:
---
I am using the pre-built cargo-next 0.9.70
from https://get.nexte.st/latest/windows. I am using the latest cargo
1.78.0
.
PS C:\src\rust-test> cargo nextest --version
cargo-nextest-nextest 0.9.70
PS C:\src\rust-test> cargo --version
cargo 1.78.0 (54d8815d0 2024-03-26)
Note that this issue doesn't exist on cargo 1.70.0 with the same cargo-nextest
binary.
This can be reproduced by the following file structure:
PS C:\src\rust-test> tree /f
Folder PATH listing for volume ???
Volume serial number is EC09-0909
C:.
│ .gitignore
│ Cargo.lock
│ Cargo.toml
│
├───hello_macro
│ │ Cargo.toml
│ │
│ └───src
│ lib.rs
│
└───hello_world
│ Cargo.toml
│
└───src
main.rs
Cargo.toml
PS C:\src\rust-test> cat Cargo.toml
[workspace]
members = [
"hello_world",
"hello_macro",
]
hello_macro/Cargo.toml
PS C:\src\rust-test> cat .\hello_macro\Cargo.toml
[package]
name = "hello_macro"
version = "0.1.0"
edition = "2021"
[lib]
proc-macro = true
[dependencies]
syn = { version = "2", features = ["extra-traits"] }
quote = "1.0"
proc-macro2 = "1.0"
hello_macro/src/lib.rs
is an empty file.
hello_world/Cargo.toml
PS C:\src\rust-test> cat .\hello_world\Cargo.toml
[package]
name = "rust-test"
version = "0.1.0"
edition = "2021"
[dependencies]
hello_world/src/main.rs
PS C:\src\rust-test> cat .\hello_world\src\main.rs
fn main() {
println!("Hello, world!");
}