Skip to content

servoshell and unit tests crash if target directory is symlinked #30536

@delan

Description

@delan

I recently symlinked my target directory to another filesystem, to exclude it from my backups,

% ls -l target
lrwxrwxrwx 1 delan users 25 Sep 28 15:34 target -> /cuffs/build/servo/target

but this breaks servoshell and unit tests.

% target/debug/servo
thread 'main' panicked at 'Can't read file: Os { code: 2, kind: NotFound, message: "No such file or directory" }', ports/servoshell/resources.rs:78:24
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
% ./mach test-unit ports/servoshell/prefs.rs -- -- --test-threads 1
NOTE: Entering nix-shell etc/shell.nix
      Timing report saved to /cuffs/code/servo/target/cargo-timings/cargo-timing-20231011T093548Z.html
    Finished test [unoptimized + debuginfo] target(s) in 0.68s
     Running unittests main.rs (target/debug/deps/servo-ee8531062619dcd4)

running 2 tests
test prefs::test_invalid_prefs_from_command_line_panics ... FAILED
test prefs::test_parse_pref_from_command_line ... FAILED

failures:

---- prefs::test_invalid_prefs_from_command_line_panics stdout ----
thread 'prefs::test_invalid_prefs_from_command_line_panics' panicked at 'Can't find file: prefs.json: Os { code: 2, kind: NotFound, message: "No such file or directory" }', components/embedder_traits/resources.rs:116:18
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'prefs::test_invalid_prefs_from_command_line_panics' panicked at 'Message should describe the problem', ports/servoshell/prefs.rs:120:5

---- prefs::test_parse_pref_from_command_line stdout ----
thread 'prefs::test_parse_pref_from_command_line' panicked at 'Once instance has previously been poisoned', /home/delan/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs:30:16


failures:
    prefs::test_invalid_prefs_from_command_line_panics
    prefs::test_parse_pref_from_command_line

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p servoshell --bin servo`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions