mozilla / mp4parse-rust

Parser for ISO Base Media Format aka video/mp4 written in Rust.
Mozilla Public License 2.0
411 stars 62 forks source link

Test command failed due to absence of required test files in respective project directories #412

Open abdullahfarwees opened 1 year ago

abdullahfarwees commented 1 year ago

Steps to reproduce:

  1. open terminal (in Ubuntu 22LTS) and navigate to project folder and build the project.
  2. Enter the command cargo test
  3. Below panic appears which stating FileNotFound

Expected behaviour All test cases should pass if it have the respective test files

Actual behaviour 3 test cases failed due to unavailability of test files in the respective file locations

Details of error

kind: NotFound, message: "No such file or directory"

---- public_avif_grid stdout ---- thread 'public_avif_grid' panicked at 'av1-avif/testFiles/Microsoft/Summer_in_Tomsk_720p_5x4_grid.avif: Os { code: 2, kind: NotFound, message: "No such file or directory" }', mp4parse/tests/public.rs:1225:43 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

---- public_avif_read_samples stdout ---- thread 'public_avif_read_samples' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library/core/src/ops/function.rs:166:5

---- public_avis_major_no_pitm stdout ---- thread 'public_avis_major_no_pitm' panicked at 'Unknown file: Os { code: 2, kind: NotFound, message: "No such file or directory" }', mp4parse/tests/public.rs:1235:58 failures:     public_avif_grid     public_avif_read_samples     public_avis_major_no_pitm

test result: FAILED. 58 passed; 3 failed; 1 ignored; 0 measured; 0 filtered out; finished in 28.22s

error: test failed, to rerun pass -p mp4parse --test public

SingingTree commented 1 year ago

Some of the tests rely on files from git submodules, which is the case for the files above. If you run the following commands

git submodule init

followed by

git submodule update

in mp4parse_rust/mp4parse/av1-avif and mp4parse_rust/mp4parse/link-u-avif-sample-images does that resolve the test failures? You can also use git submodule update --init --recursive from the root of the repo to achieve all of the above in a single step.

kinetiknz commented 1 year ago

Improving the build documentation to make it clear that git submodule update --init is required one-off setup before cargo test can be run successfully would help with this. We can take care of this via #411. The tests could also produce a clearer error message when the submodules are missing - that'd require refactoring public.rs a bit to clarify the distinction between test files included in this repo and those sourced via the submodules.