Preliminary experimentation with making Miri run doc-tests leads me to believe this is a bug. I tried invoking this command:
rustdoc --crate-type lib --test /home/tld/Documents/coca/src/lib.rs --crate-name coca
-L dependency=/home/tld/Documents/coca/target/x86_64-unknown-linux-gnu/debug/deps
-L dependency=/home/tld/Documents/coca/target/debug/deps --cfg feature=\"default\"
--extern coca=/home/tld/Documents/coca/target/x86_64-unknown-linux-gnu/debug/deps/libcoca-8671386d903c290f.rlib
--extern rand=/home/tld/Documents/coca/target/x86_64-unknown-linux-gnu/debug/deps/librand-af6e186424c4447e.rlib
-C embed-bitcode=no
--sysroot /home/tld/.cache/miri/HOST
-Z unstable-options --test-builder /home/tld/.cargo/bin/cargo-miri
Most of these arguments are provided by cargo and just being passed through cargo-miri, I only append the --sysroot PATH --test-builder PATH part at the end. With or without the --sysroot option, I get error: too many file operands. I don't get that error when omitting the final path to cargo-miri (i.e. using --test-builder as a flag without any arguments).
That error originates here, but after a bit of digging through librustdoc, I believe this:
|
unstable("test-builder", |o| { |
|
o.optflag( |
|
"", |
|
"test-builder", |
|
"specified the rustc-like binary to use as the test builder", |
|
) |
|
}), |
...should really call optopt instead of optflag.
I don't really know this codebase or even the getopts library, so I might be off base here. I don't have a build environment set up to test my hypothesis though, so I was hoping someone more familiar could do a quick sanity check for me, or even fix the issue by the time I could try this "quick" change myself. (I won't have time to set up the build environment until tomorrow afternoon, at the earliest...)
I suppose I could also just be grossly misunderstanding how this option is supposed to work, in which case it'd be great if someone could enlighten me.
Preliminary experimentation with making Miri run doc-tests leads me to believe this is a bug. I tried invoking this command:
Most of these arguments are provided by cargo and just being passed through
cargo-miri, I only append the--sysroot PATH --test-builder PATHpart at the end. With or without the--sysrootoption, I geterror: too many file operands. I don't get that error when omitting the final path tocargo-miri(i.e. using--test-builderas a flag without any arguments).That error originates here, but after a bit of digging through
librustdoc, I believe this:rust/src/librustdoc/lib.rs
Lines 414 to 420 in 9775ffe
...should really call
optoptinstead ofoptflag.I don't really know this codebase or even the
getoptslibrary, so I might be off base here. I don't have a build environment set up to test my hypothesis though, so I was hoping someone more familiar could do a quick sanity check for me, or even fix the issue by the time I could try this "quick" change myself. (I won't have time to set up the build environment until tomorrow afternoon, at the earliest...)I suppose I could also just be grossly misunderstanding how this option is supposed to work, in which case it'd be great if someone could enlighten me.