Closed
Description
If cargo check
is run before cargo test
, build_ffi_test
breaks in the following manner:
$ cargo clean && cargo check && cargo test --all
[…]
test build_ffi_test ... FAILED
failures:
---- build_ffi_test stdout ----
status: exit code: 2
--- stdout ---
rm -f test
rm -f *.a.out
rm -f *.o *.a
rm -f *.d
rustc -g --crate-type staticlib --crate-name mp4parse \
--emit dep-info,link=libmp4parse.a \
--print native-static-libs \
-L /Users/jbauman/src/mp4parse-rust_m-u-current/target/debug/build/mp4parse_capi-45f37232212af4dc/out/../../../deps ../src/lib.rs \
2> libmp4parse.a.out || cat libmp4parse.a.out >&2
c++ -g -Wall -std=c++11 -I../include/ -c test.cc
c++ -g -Wall -std=c++11 -I../include/ -o test *.o libmp4parse.a
-- stderr ---
error[E0464]: multiple matching crates for `mp4parse`
--> ../src/lib.rs:37:1
|
37 | extern crate mp4parse;
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: candidates:
crate `mp4parse`: /Users/jbauman/src/mp4parse-rust_m-u-current/target/debug/deps/libmp4parse-d0bac2999dfaf13d.rlib
error[E0463]: can't find crate for `mp4parse`
--> ../src/lib.rs:37:1
|
37 | extern crate mp4parse;
| ^^^^^^^^^^^^^^^^^^^^^^ can't find crate
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0463`.
clang: error: no such file or directory: 'libmp4parse.a'
make: *** [test] Error 1
thread 'build_ffi_test' panicked at 'assertion failed: output.status.success()', mp4parse_capi/tests/build_ffi_test.rs:19:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
See #193 (comment) for some background.
In the meantime, we can work around the issue by running cargo check
(for the sake of checking feature-specific code, since we can't run cargo test with the mp4parse_fallible
feature) after cargo test
.