You were right, the bug seems to be in fs.rs
. I ran the tests of the utils component on FreeBSD 12.1 with the following result:
jans@badister ~/dev/thirdparty/zola/components/utils (git::master) $ RUST_BACKTRACE=1 cargo test
Finished test [unoptimized + debuginfo] target(s) in 0.52s
Running /usr/home/jans/dev/thirdparty/zola/target/debug/deps/utils-af1ca2f3481e41fa
running 15 tests
test site::tests::can_resolve_escaped_internal_links ... ok
test fs::tests::can_find_related_assets ... ok
test site::tests::can_resolve_internal_links_with_anchors ... ok
test site::tests::can_resolve_valid_internal_link ... ok
test site::tests::can_resolve_valid_root_internal_link ... ok
test site::tests::errors_resolve_inexistant_internal_link ... ok
test fs::tests::test_copy_file_timestamp_preserved ... FAILED
test site::tests::reading_analytics_empty_text ... ok
test fs::tests::test_copy_file_already_exists ... FAILED
test site::tests::reading_analytics_short_text ... ok
test slugs::tests::can_slugify_anchors ... ok
test slugs::tests::can_slugify_paths ... ok
test vec::test::insert_many_works ... ok
test templates::tests::can_rewrite_all_paths_of_theme ... ok
test site::tests::reading_analytics_long_text ... ok
failures:
---- fs::tests::test_copy_file_timestamp_preserved stdout ----
thread 'fs::tests::test_copy_file_timestamp_preserved' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" }), source: None }', components/utils/src/fs.rs:223:86
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
---- fs::tests::test_copy_file_already_exists stdout ----
thread 'fs::tests::test_copy_file_already_exists' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" }), source: None }', components/utils/src/fs.rs:244:86
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
failures:
fs::tests::test_copy_file_already_exists
fs::tests::test_copy_file_timestamp_preserved
test result: FAILED. 13 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out