[INFO] cloning repository https://github.com/mizaimao/moose-rack
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mizaimao/moose-rack" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmizaimao%2Fmoose-rack", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmizaimao%2Fmoose-rack'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a0f536b7e9351f1fff30788f562d3c03b0f1076
[INFO] testing mizaimao/moose-rack against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmizaimao%2Fmoose-rack" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/mizaimao/moose-rack
[INFO] finished tweaking git repo https://github.com/mizaimao/moose-rack
[INFO] tweaked toml for git repo https://github.com/mizaimao/moose-rack written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mizaimao/moose-rack on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mizaimao/moose-rack already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07
[INFO] running `Command { std: "docker" "start" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling cmov v0.5.4
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling ctutils v0.4.2
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling zlib-rs v0.6.6
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling lru v0.18.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling compression-core v0.4.32
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling libbz2-rs-sys v0.2.5
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling cc v1.4.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling block-padding v0.4.2
[INFO] [stderr]    Compiling inout v0.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling cpubits v0.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling bzip2 v0.6.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling ppmd-rust v1.4.0
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling time v0.3.54
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling cipher v0.5.2
[INFO] [stderr]    Compiling clap_builder v4.6.5
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling sha1 v0.11.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]    Compiling aes v0.9.2
[INFO] [stderr]    Compiling pbkdf2 v0.13.0
[INFO] [stderr]    Compiling cbc v0.2.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling compression-codecs v0.4.38
[INFO] [stderr]    Compiling deflate64 v0.1.12
[INFO] [stderr]    Compiling lzma-rust2 v0.18.0
[INFO] [stderr]    Compiling lzma-rust2 v0.16.5
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling md-5 v0.11.0
[INFO] [stderr]    Compiling base64 v0.23.0
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling sevenz-rust2 v0.21.4
[INFO] [stderr]    Compiling clap v4.6.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling async-compression v0.4.43
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling zip v8.6.0
[INFO] [stderr]    Compiling rusqlite v0.37.0
[INFO] [stderr]    Compiling moose-rack v0.5.7 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5m 09s
[INFO] running `Command { std: "docker" "inspect" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling moose-rack v0.5.7 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/moose-rack/e4c7da1bd966073b/out/moose_rack-e4c7da1bd966073b)
[INFO] [stdout] 
[INFO] [stdout] running 774 tests
[INFO] [stdout] test achievements::tests::a_username_without_a_credential_is_refused ... ok
[INFO] [stdout] test achievements::tests::every_emitted_line_is_a_setting_or_a_comment ... ok
[INFO] [stdout] test api::tests::collection_grouping_puts_virtual_before_smart_before_user ... ok
[INFO] [stdout] test achievements::tests::only_a_token_is_ever_written ... ok
[INFO] [stdout] test achievements::tests::disabled_writes_nothing_at_all ... ok
[INFO] [stdout] test achievements::tests::quotes_in_a_username_cannot_break_the_config ... ok
[INFO] [stdout] test achievements::tests::hardcore_is_always_stated_never_inherited ... ok
[INFO] [stdout] test achievements::tests::the_login_is_written_in_full_and_inherits_nothing ... ok
[INFO] [stdout] test achievements::tests::a_token_without_a_username_is_refused_and_explained ... ok
[INFO] [stdout] test api::tests::a_device_is_read_under_either_id_spelling ... ok
[INFO] [stdout] test api::tests::an_empty_server_url_is_refused_with_advice ... ok
[INFO] [stdout] test api::tests::a_sparse_rom_still_deserialises ... ok
[INFO] [stdout] test api::tests::slot_and_emulator_names_are_encoded ... ok
[INFO] [stdout] test api::tests::no_credentials_at_all_is_refused_with_advice ... ok
[INFO] [stdout] test api::tests::query_values_are_encoded_so_a_timestamp_survives ... ok
[INFO] [stdout] test api::tests::server_config_maps_from_its_screaming_case_keys ... ok
[INFO] [stdout] test appicon::tests::an_unknown_choice_falls_back_rather_than_blanking ... ok
[INFO] [stdout] test appicon::tests::ids_are_unique ... ok
[INFO] [stdout] test app::scan_tests::both_callers_go_through_scan_into ... ok
[INFO] [stdout] test arcade::tests::a_real_title_is_left_alone ... ok
[INFO] [stdout] test arcade::tests::only_the_final_extension_is_stripped ... ok
[INFO] [stdout] test aspect::tests::arcade_cabinets_are_four_by_three ... ok
[INFO] [stdout] test aspect::tests::a_fitted_window_has_the_games_shape ... ok
[INFO] [stdout] test aspect::tests::a_platform_nobody_has_mapped_has_no_answer ... ok
[INFO] [stdout] test appicon::tests::default_is_a_real_icon ... ok
[INFO] [stdout] test aspect::tests::handhelds_keep_their_own_panels_shape ... ok
[INFO] [stdout] test aspect::tests::arcade_is_shaped_but_its_games_are_not_all_that_shape ... ok
[INFO] [stdout] test aspect::tests::console_games_are_shaped_for_the_television_not_the_framebuffer ... ok
[INFO] [stdout] test aspect::tests::whichever_dimension_has_to_give_gives ... ok
[INFO] [stdout] test binds::tests::a_capital_letter_takes_the_key_from_its_small_letter ... ok
[INFO] [stdout] test binds::tests::a_cleared_binding_survives_a_round_trip ... ok
[INFO] [stdout] test binds::tests::a_key_only_drives_one_action ... ok
[INFO] [stdout] test arcade::tests::a_name_matching_its_own_filename_is_a_fallback_not_a_title ... ok
[INFO] [stdout] test aspect::tests::nothing_is_scaled_up_or_divided_by_zero ... ok
[INFO] [stdout] test binds::tests::adopting_never_overrules_what_is_already_set ... ok
[INFO] [stdout] test binds::tests::an_essential_action_cannot_be_left_on_no_button ... ok
[INFO] [stdout] test binds::tests::an_unbound_entry_survives_being_adopted ... ok
[INFO] [stdout] test binds::tests::adopting_cannot_leave_an_essential_action_on_no_button ... ok
[INFO] [stdout] test binds::tests::a_rebind_moves_the_action_and_frees_the_old_button ... ok
[INFO] [stdout] test binds::tests::every_default_binding_names_an_action_that_exists ... ok
[INFO] [stdout] test binds::tests::bindings_are_adopted_from_the_old_storage ... ok
[INFO] [stdout] test binds::tests::labels_are_human ... ok
[INFO] [stdout] test binds::tests::letters_are_case_insensitive_and_named_keys_are_not ... ok
[INFO] [stdout] test binds::tests::an_ordinary_action_stays_unbound ... ok
[INFO] [stdout] test binds::tests::nonsense_is_dropped_rather_than_carried_over ... ok
[INFO] [stdout] test binds::tests::a_rebind_onto_confirms_button_cannot_strand_confirm ... ok
[INFO] [stdout] test binds::tests::each_pair_swaps_independently ... ok
[INFO] [stdout] test binds::tests::pad_for_reports_where_an_action_currently_lives ... ok
[INFO] [stdout] test binds::tests::swapping_the_face_buttons_changes_only_how_this_app_reads_them ... ok
[INFO] [stdout] test binds::tests::the_opt_in_actions_start_on_no_key ... ok
[INFO] [stdout] test binds::tests::no_arrangement_of_the_file_can_strand_an_essential ... ok
[INFO] [stdout] test binds::tests::the_webview_test_fixture_matches_these_tables ... ok
[INFO] [stdout] test bios::local_path_tests::a_name_with_directories_in_it_keeps_only_the_leaf ... ok
[INFO] [stdout] test bios::local_path_tests::a_sub_path_is_reproduced ... ok
[INFO] [stdout] test bios::local_path_tests::an_empty_name_is_no_path_at_all ... ok
[INFO] [stdout] test bios::local_path_tests::traversal_is_stripped_not_honoured ... ok
[INFO] [stdout] test achievements::tests::a_failed_check_does_not_show_the_token ... ok
[INFO] [stdout] test bios::local_path_tests::no_sub_path_lands_at_the_top ... ok
[INFO] [stdout] test bios::tests::a_bios_in_the_old_folder_is_taken_rather_than_fetched ... ok
[INFO] [stdout] test bios::tests::a_core_only_entry_is_found_by_its_core ... ok
[INFO] [stdout] test bios::tests::a_missing_file_is_not_mistaken_for_a_present_one ... ok
[INFO] [stdout] test bios::tests::a_file_with_no_published_hash_is_accepted_on_size ... ok
[INFO] [stdout] test binds::tests::no_action_is_listed_twice ... ok
[INFO] [stdout] test binds::tests::the_default_map_sends_the_face_buttons_to_open_and_back ... ok
[INFO] [stdout] test bios::tests::an_intact_file_is_recognized ... ok
[INFO] [stdout] test bios::tests::a_file_that_does_not_match_the_server_is_left_alone ... ok
[INFO] [stdout] test bios::tests::a_platform_with_no_bios_requires_none ... ok
[INFO] [stdout] test bios::tests::a_truncated_file_is_refetched ... ok
[INFO] [stdout] test bios::tests::neo_geo_needs_its_bios_whichever_way_it_is_launched ... ok
[INFO] [stdout] test bios::tests::the_embedded_manifest_parses_and_is_populated ... ok
[INFO] [stdout] test bios::tests::the_headline_says_nothing_happened_when_nothing_did ... ok
[INFO] [stdout] test bulk::tests::asking_for_no_art_costs_nothing_beyond_the_games ... ok
[INFO] [stdout] test bulk::tests::games_already_here_are_not_counted_towards_the_download ... ok
[INFO] [stdout] test bulk::tests::the_default_takes_games_and_the_two_images_that_are_shown ... ok
[INFO] [stdout] test bios::tests::optional_bios_are_not_fetched_on_launch ... ok
[INFO] [stdout] test bulk::tests::the_summary_says_what_is_already_here ... ok
[INFO] [stdout] test bulk::tests::videos_dominate_the_total_when_asked_for ... ok
[INFO] [stdout] test bios::tests::the_old_bios_folders_are_both_looked_in ... ok
[INFO] [stdout] test bios::local_path_tests::same_name_under_two_directories_is_two_files ... ok
[INFO] [stdout] test bulk::tests::the_full_set_costs_more_than_the_two_shown_images ... ok
[INFO] [stdout] test api::tests::a_trailing_slash_on_the_server_url_is_trimmed ... ok
[INFO] [stdout] test api::tests::basic_credentials_are_encoded_once_for_reuse ... ok
[INFO] [stdout] test api::tests::a_token_is_preferred_and_sent_as_a_bearer ... ok
[INFO] [stdout] test app::scan_tests::building_the_state_names_the_config_file ... ok
[INFO] [stdout] test cache::tests::a_scan_on_this_platform_agrees_with_a_linux_servers_id ... ok
[INFO] [stdout] test app::scan_tests::a_name_already_set_is_left_alone ... ok
[INFO] [stdout] test app::scan_tests::a_scan_lands_in_the_cache_the_ui_reads ... ok
[INFO] [stdout] test app::scan_tests::consoles_get_their_real_names_from_the_core_map ... ok
[INFO] [stdout] test cache::hiding::hidden_rows_are_not_listed ... ok
[INFO] [stdout] test cache::tests::a_nameless_rom_falls_back_to_its_filename ... ok
[INFO] [stdout] test app::scan_tests::scanning_twice_does_not_double_the_library ... ok
[INFO] [stdout] test cache::tests::a_download_is_found_again_under_the_servers_id ... ok
[INFO] [stdout] test cache::tests::an_absent_or_unreadable_count_is_unknown_not_one ... ok
[INFO] [stdout] test cache::hiding::any_rom_for_answers_from_the_listed_set ... ok
[INFO] [stdout] test cache::tests::a_real_download_scans_back_to_the_servers_id ... ok
[INFO] [stdout] test cache::tests::a_row_from_an_older_server_falls_back_to_its_platform ... ok
[INFO] [stdout] test cache::tests::collections_accept_both_numeric_and_string_ids ... ok
[INFO] [stdout] test cache::tests::a_glance_at_a_game_is_not_a_session ... ok
[INFO] [stdout] test cache::tests::a_reused_old_id_attributes_nothing ... ok
[INFO] [stdout] test app::scan_tests::serving_a_library_is_not_the_same_as_playing_it ... ok
[INFO] [stdout] test cache::tests::a_scanned_game_gets_its_stable_id ... ok
[INFO] [stdout] test cache::tests::a_sync_leaves_a_local_path_where_it_found_one ... ok
[INFO] [stdout] test cache::tests::a_game_found_on_disk_and_on_the_server_is_one_game ... ok
[INFO] [stdout] test cache::tests::a_scanned_games_platform_is_found_by_its_absolute_path ... ok
[INFO] [stdout] test cache::tests::a_sync_without_per_user_data_does_not_forget_when_a_game_was_played ... ok
[INFO] [stdout] test cache::tests::an_empty_screenshot_list_falls_back_rather_than_showing_nothing ... ok
[INFO] [stdout] test cache::tests::collections_that_would_open_empty_are_hidden ... ok
[INFO] [stdout] test cache::tests::a_sync_never_moves_last_played_back ... ok
[INFO] [stdout] test cache::tests::an_ambiguous_old_id_is_not_guessed ... ok
[INFO] [stdout] test cache::tests::a_server_cannot_point_a_download_outside_the_roms_folder ... ok
[INFO] [stdout] test cache::tests::each_side_withdraws_only_its_own_claim ... ok
[INFO] [stdout] test cache::tests::every_column_lands_in_the_field_it_belongs_to ... ok
[INFO] [stdout] test cache::tests::arcade_renaming_only_touches_bare_romsets_on_arcade_platforms ... ok
[INFO] [stdout] test app::scan_tests::the_desktop_reads_bios_and_art_where_the_config_says ... ok
[INFO] [stdout] test cache::tests::abandoned_means_came_back_to_and_still_bounced_off ... ok
[INFO] [stdout] test cache::tests::leaving_the_disk_drops_the_path_not_the_game ... ok
[INFO] [stdout] test cache::tests::every_placed_old_id_is_remembered ... ok
[INFO] [stdout] test cache::tests::multi_file_reads_from_both_the_old_and_new_column_types ... ok
[INFO] [stdout] test cache::tests::platforms_with_no_roms_are_not_offered ... ok
[INFO] [stdout] test cache::tests::platforms_are_ordered_by_name_regardless_of_case ... ok
[INFO] [stdout] test cache::tests::the_player_count_is_read_as_the_most_it_supports ... ok
[INFO] [stdout] test cache::tests::pruning_against_a_positional_list_deletes_nothing ... ok
[INFO] [stdout] test commands::listing_tests::a_listing_answers_for_the_whole_directory ... ok
[INFO] [stdout] test commands::listing_tests::a_name_the_listing_misses_falls_back_to_the_filesystem ... ok
[INFO] [stdout] test commands::listing_tests::one_ask_does_not_read_the_directory ... ok
[INFO] [stdout] test commands::year_tests::a_year_is_read_as_a_year_and_a_timestamp_as_a_timestamp ... ok
[INFO] [stdout] test config::bool_tests::bios_and_themes_follow_esde_as_well ... ok
[INFO] [stdout] test cache::tests::pruning_against_an_empty_list_deletes_nothing ... ok
[INFO] [stdout] test config::bool_tests::nothing_moves_for_an_install_that_has_set_nothing ... ok
[INFO] [stdout] test config::bool_tests::strings_are_still_quoted ... ok
[INFO] [stdout] test config::bool_tests::the_library_folders_follow_the_esde_settings ... ok
[INFO] [stdout] test config::bool_tests::the_retroarch_files_stay_in_the_library_folder ... ok
[INFO] [stdout] test config::bool_tests::booleans_are_written_unquoted ... ok
[INFO] [stdout] test config::config_path_tests::naming_a_file_changes_what_is_read ... ok
[INFO] [stdout] test config::tests::a_boolean_written_as_a_string_still_loads_the_whole_file ... ok
[INFO] [stdout] test config::config_path_tests::nothing_names_the_config_file_itself ... ok
[INFO] [stdout] test config::tests::a_broken_config_says_which_file_it_is ... ok
[INFO] [stdout] test config::tests::a_config_without_the_table_still_gets_it ... ok
[INFO] [stdout] test config::tests::a_config_with_no_installs_list_gets_one ... ok
[INFO] [stdout] test config::tests::a_hand_picked_core_beats_the_shipped_one ... ok
[INFO] [stdout] test config::tests::a_missing_config_loads_defaults_rather_than_failing ... ok
[INFO] [stdout] test config::tests::a_table_that_would_not_change_is_not_rewritten ... ok
[INFO] [stdout] test config::tests::a_configured_token_reaches_the_client_as_a_bearer ... ok
[INFO] [stdout] test cache::tests::playing_a_game_marks_it_played_without_asking_the_server ... ok
[INFO] [stdout] test config::tests::an_install_is_enabled_unless_it_says_otherwise ... ok
[INFO] [stdout] test config::tests::a_whole_table_is_written_in_one_pass ... ok
[INFO] [stdout] test config::tests::appearance_defaults_survive_a_config_with_no_appearance_table ... ok
[INFO] [stdout] test config::tests::every_download_location_derives_from_one_setting ... ok
[INFO] [stdout] test config::tests::a_token_alone_is_enough_to_build_a_client ... ok
[INFO] [stdout] test config::tests::no_retroarch_config_asks_for_the_default_probe ... ok
[INFO] [stdout] test config::tests::no_achievements_section_means_untouched ... ok
[INFO] [stdout] test config::tests::saving_again_replaces_the_settings_entry_and_clearing_removes_it ... ok
[INFO] [stdout] test config::tests::the_achievements_section_maps_every_field ... ok
[INFO] [stdout] test config::tests::the_legacy_single_root_still_works_and_is_superseded ... ok
[INFO] [stdout] test config::tests::the_old_cheevos_section_name_is_still_accepted ... ok
[INFO] [stdout] test config::tests::the_path_saved_in_settings_is_tried_first ... ok
[INFO] [stdout] test config::tests::the_retroarch_boot_order_honours_position_and_enabled ... ok
[INFO] [stdout] test config::tests::the_shipped_arcade_table_parses_and_is_all_arcade ... ok
[INFO] [stdout] test config::tests::an_old_boolean_autofire_still_loads_the_rest_of_the_file ... ok
[INFO] [stdout] test config::tests::writing_a_table_keeps_the_comments_around_it ... ok
[INFO] [stdout] test config_files::tests::a_missing_config_is_seeded_from_the_template_and_never_overwritten ... ok
[INFO] [stdout] test config_files::tests::every_artwork_type_the_files_name_is_one_the_app_accepts ... ok
[INFO] [stdout] test config_files::tests::every_core_in_the_shipped_arcade_table_exists ... ok
[INFO] [stdout] test config_files::tests::every_core_the_files_pin_is_a_core_that_exists ... ok
[INFO] [stdout] test config_files::tests::neither_file_has_a_section_the_app_ignores ... ok
[INFO] [stdout] test config_files::tests::the_chosen_look_is_a_set_look_or_a_usable_folder_name ... ok
[INFO] [stdout] test cache::tests::pruning_drops_exactly_what_the_server_no_longer_has ... ok
[INFO] [stdout] test config_files::tests::the_template_parses_as_a_config ... ok
[INFO] [stdout] test config_files::tests::the_two_files_stay_diffable ... ok
[INFO] [stdout] test configpatch::tests::a_boolean_autofire_becomes_the_shoulder_it_meant ... ok
[INFO] [stdout] test configpatch::tests::a_current_config_has_nothing_to_say_about_it ... ok
[INFO] [stdout] test configpatch::tests::a_key_is_matched_whole_not_by_prefix ... ok
[INFO] [stdout] test configpatch::tests::a_patched_file_records_what_it_was_brought_up_to ... ok
[INFO] [stdout] test configpatch::tests::a_plain_text_password_is_the_first_thing_reported ... ok
[INFO] [stdout] test configpatch::tests::a_renamed_section_keeps_its_contents ... ok
[INFO] [stdout] test configpatch::tests::editing_one_section_does_not_reach_into_another ... ok
[INFO] [stdout] test config::tests::without_a_token_the_client_falls_back_to_basic ... ok
[INFO] [stdout] test configpatch::tests::findings_that_need_a_choice_are_not_offered_as_fixes ... ok
[INFO] [stdout] test configpatch::tests::patching_is_idempotent ... ok
[INFO] [stdout] test configpatch::tests::patching_keeps_the_comments_and_everything_it_did_not_touch ... ok
[INFO] [stdout] test configpatch::tests::the_old_shapes_are_all_found ... ok
[INFO] [stdout] test configpatch::tests::unparseable_toml_says_so_rather_than_listing_nothing ... ok
[INFO] [stdout] test configpatch::tests::the_password_is_gone_and_the_rest_of_the_section_is_not ... ok
[INFO] [stdout] test coremap::android_tests::a_libretro_platform_offers_retroarch_with_an_android_core ... ok
[INFO] [stdout] test coremap::android_tests::an_unknown_platform_offers_nothing ... ok
[INFO] [stdout] test coremap::android_tests::every_android_component_is_a_package_and_an_activity ... ok
[INFO] [stdout] test coremap::android_tests::an_unmapped_platform_is_distinguishable_from_one_with_no_core ... ok
[INFO] [stdout] test coremap::android_tests::a_standalone_emulator_becomes_its_own_component ... ok
[INFO] [stdout] test coremap::android_tests::the_emulators_on_the_device_are_in_the_table ... ok
[INFO] [stdout] test coremap::tests::a_pin_does_not_leak_to_other_games ... ok
[INFO] [stdout] test config::tests::per_game_keys_round_trip ... ok
[INFO] [stdout] test coremap::tests::every_aliased_system_has_a_name ... ok
[INFO] [stdout] test coremap::tests::override_survives_a_missing_core ... ok
[INFO] [stdout] test coremap::tests::standalone_emulators_are_not_offered_as_cores ... ok
[INFO] [stdout] test coremap::tests::the_core_map_is_still_the_first_word ... ok
[INFO] [stdout] test coremap::tests::per_game_beats_override_beats_default ... ok
[INFO] [stdout] test coremap::tests::the_embedded_core_map_parses ... ok
[INFO] [stdout] test coremap::tests::the_names_come_from_esde ... ok
[INFO] [stdout] test coremap::tests::uninstalled_default_falls_back_to_an_alternative ... ok
[INFO] [stdout] test coremap::tests::unknown_platform_resolves_to_nothing ... ok
[INFO] [stdout] test corenames::tests::agrees_with_the_config_folder_names ... ok
[INFO] [stdout] test corenames::tests::an_unknown_core_has_no_name ... ok
[INFO] [stdout] test cores::tests::the_host_this_is_running_on_has_a_buildbot_tree ... ok
[INFO] [stdout] test cores::tests::a_core_is_named_for_the_host_it_will_run_on ... ok
[INFO] [stdout] test cores::tests::the_download_url_carries_the_host_tree_and_the_host_extension ... ok
[INFO] [stdout] test coverage::tests::a_title_that_merely_contains_a_tag_word_is_still_official ... ok
[INFO] [stdout] test coverage::tests::a_probe_only_discounts_what_it_actually_ruled_out ... ok
[INFO] [stdout] test coverage::tests::released_games_are_official_however_they_are_tagged ... ok
[INFO] [stdout] test coverage::tests::romsets_nothing_can_run_are_not_counted_as_gaps ... ok
[INFO] [stdout] test coverage::tests::the_figure_ignores_dumps_that_could_never_have_art ... ok
[INFO] [stdout] test datadir::tests::a_checkout_is_found_by_walking_up ... ok
[INFO] [stdout] test coverage::tests::hacks_and_unlicensed_carts_are_not_counted_against_coverage ... ok
[INFO] [stdout] test datadir::tests::a_config_beats_a_checkout_found_further_up ... ok
[INFO] [stdout] test datadir::tests::a_loose_executable_anchors_beside_itself ... ok
[INFO] [stdout] test datadir::tests::a_macos_bundle_resolves_to_the_directory_holding_it ... ok
[INFO] [stdout] test datadir::tests::no_executable_and_no_markers_changes_nothing ... ok
[INFO] [stdout] test coremap::android_tests::every_emulator_in_the_table_is_visible_to_the_android_build ... ok
[INFO] [stdout] test datadir::tests::a_config_beside_the_executable_wins ... ok
[INFO] [stdout] test datadir::tests::only_a_dot_app_extension_counts_as_a_bundle ... ok
[INFO] [stdout] test datadir::tests::the_working_directory_is_preferred_over_the_executables ... ok
[INFO] [stdout] test diskspace::tests::an_absurd_request_is_refused_rather_than_overflowing ... ok
[INFO] [stdout] test diskspace::tests::the_current_directory_reports_some_space ... ok
[INFO] [stdout] test diskspace::tests::a_download_that_would_fill_the_disk_does_not_fit ... ok
[INFO] [stdout] test diskspace::tests::a_folder_that_does_not_exist_yet_still_reports_its_disk ... ok
[INFO] [stdout] test datadir::tests::with_nothing_to_go_on_it_anchors_beside_the_app_not_in_home ... ok
[INFO] [stdout] test diskspace::tests::the_shortfall_says_how_much_more_is_needed ... ok
[INFO] [stdout] test download::tests::a_generated_playlist_is_not_counted_as_an_unverified_member ... ok
[INFO] [stdout] test download::tests::a_folder_rom_keeps_its_inner_folders ... ok
[INFO] [stdout] test download::tests::a_nested_member_is_found_rather_than_called_missing ... ok
[INFO] [stdout] test cache::tests::replacing_collections_clears_the_previous_set ... ok
[INFO] [stdout] test download::tests::a_single_member_archive_hashes_as_its_contents ... ok
[INFO] [stdout] test download::tests::describe_does_not_overstate_what_was_checked ... ok
[INFO] [stdout] test download::tests::empty_server_exclusions_are_ignored ... ok
[INFO] [stdout] test download::tests::an_unpacked_folder_is_swapped_in_whole ... ok
[INFO] [stdout] test download::tests::exclusions_match_on_the_basename_and_are_case_insensitive_on_extension ... ok
[INFO] [stdout] test download::tests::filenames_are_percent_encoded_for_the_content_url ... ok
[INFO] [stdout] test download::tests::excluded_members_do_not_reach_the_digest ... ok
[INFO] [stdout] test cache::tests::recent_games_come_back_newest_first_and_never_the_unplayed ... ok
[INFO] [stdout] test download::tests::a_full_length_part_starts_over_instead_of_asking_past_the_end ... ok
[INFO] [stdout] test download::tests::a_copy_that_does_not_match_survives_a_failed_download ... ok
[INFO] [stdout] test download::tests::with_no_hash_the_size_still_has_to_match ... ok
[INFO] [stdout] test ejs::tests::a_bundle_looks_beside_itself_before_the_working_directory ... ok
[INFO] [stdout] test cache::tests::rows_an_old_build_synced_are_kept_as_the_servers ... ok
[INFO] [stdout] test ejs::tests::a_missing_file_is_404 ... ok
[INFO] [stdout] test download::tests::member_verification_names_the_file_that_does_not_match ... ok
[INFO] [stdout] test download::tests::members_without_a_published_hash_are_skipped_not_failed ... ok
[INFO] [stdout] test ejs::tests::a_range_is_a_206_with_only_those_bytes ... ok
[INFO] [stdout] test download::tests::members_hash_in_name_order_not_storage_order ... ok
[INFO] [stdout] test ejs::tests::a_whole_file_is_a_200_that_says_it_takes_ranges ... ok
[INFO] [stdout] test ejs::tests::a_range_past_the_end_is_416_and_not_a_panic ... ok
[INFO] [stdout] test ejs::tests::an_open_range_runs_to_the_end ... ok
[INFO] [stdout] test ejs::tests::locate_is_none_when_nothing_is_installed ... ok
[INFO] [stdout] test ejs::tests::resolve_stays_under_data ... ok
[INFO] [stdout] test ejs::tests::the_config_file_says_where_the_repo_is ... ok
[INFO] [stdout] test ejs::tests::wasm_is_not_octet_stream ... ok
[INFO] [stdout] test ejs::tests::resolve_refuses_a_backslash_segment ... ok
[INFO] [stdout] test ejs::tests::locate_skips_a_directory_that_is_not_an_unpack ... ok
[INFO] [stdout] test ejs::tests::a_suffix_range_is_the_tail ... ok
[INFO] [stdout] test ejs::tests::resolve_refuses_to_leave_the_directory ... ok
[INFO] [stdout] test esde::hidden::hidden_entries_are_not_games ... ok
[INFO] [stdout] test esde::tests::a_folder_with_an_rpg_maker_marker_is_the_game ... ok
[INFO] [stdout] test esde::tests::a_masked_off_noload_marker_restores_the_system_without_becoming_a_game ... ok
[INFO] [stdout] test esde::tests::a_missing_gamelist_is_not_an_error ... ok
[INFO] [stdout] test esde::tests::a_multi_disc_directory_counts_as_one_game_and_is_sized_whole ... ok
[INFO] [stdout] test esde::tests::a_gamelist_entry_is_parsed_into_metadata ... ok
[INFO] [stdout] test esde::tests::a_scraped_entry_with_attributes_is_read_and_entities_decode_once ... ok
[INFO] [stdout] test esde::tests::a_folder_named_after_its_game_stays_one_game ... ok
[INFO] [stdout] test esde::tests::an_explicit_roms_directory_overrides_the_default ... ok
[INFO] [stdout] test esde::tests::a_nested_game_takes_its_name_from_its_own_gamelist_entry ... ok
[INFO] [stdout] test esde::tests::a_real_installs_system_names_are_aliased_to_the_map ... ok
[INFO] [stdout] test esde::tests::an_unmapped_system_is_skipped_and_named ... ok
[INFO] [stdout] test esde::tests::a_system_marked_noload_is_not_scanned ... ok
[INFO] [stdout] test esde::tests::a_shelf_is_walked_into_and_a_multi_disc_game_is_not ... ok
[INFO] [stdout] test esde::tests::media_is_located_by_probing_the_extensions_esde_uses ... ok
[INFO] [stdout] test esde::tests::non_game_files_beside_the_roms_are_not_indexed ... ok
[INFO] [stdout] test esde::tests::disc_markers_are_stripped_but_titles_are_not ... ok
[INFO] [stdout] test esde::tests::bios_and_ports_directories_are_not_systems ... ok
[INFO] [stdout] test esde::tests::scanning_without_a_roms_directory_says_so ... ok
[INFO] [stdout] test esde::tests::game_paths_reduce_to_a_file_stem_however_they_are_written ... ok
[INFO] [stdout] test esde::tests::scanned_games_take_their_title_from_the_gamelist_or_the_filename ... ok
[INFO] [stdout] test esde::tests::sparse_and_empty_fields_are_treated_as_missing ... ok
[INFO] [stdout] test esde::tests::switched_off_systems_are_reported_as_slugs_for_the_platform_list ... ok
[INFO] [stdout] test cache::tests::play_time_adds_up_per_game_and_per_console ... ok
[INFO] [stdout] test cache::tests::play_history_survives_the_move_to_stable_ids ... ok
[INFO] [stdout] test focusring::tests::a_row_of_tabs_walks_along_itself ... ok
[INFO] [stdout] test focusring::tests::a_tall_column_is_beside_the_card_not_below_it ... ok
[INFO] [stdout] test focusring::tests::an_empty_screen_answers_nothing_rather_than_panicking ... ok
[INFO] [stdout] test focusring::tests::everything_is_reachable_from_a_card ... ok
[INFO] [stdout] test focusring::tests::no_control_is_stranded ... ok
[INFO] [stdout] test focusring::tests::right_does_not_dive_into_another_row ... ok
[INFO] [stdout] test focusring::tests::stepping_back_through_the_grid_returns_where_you_came_from ... ok
[INFO] [stdout] test focusring::tests::the_grid_still_behaves_like_a_grid ... ok
[INFO] [stdout] test focusring::tests::the_pointer_and_the_ring_agree ... ok
[INFO] [stdout] test focusring::tests::the_ring_starts_at_the_top_left ... ok
[INFO] [stdout] test gamefilter::tests::an_unknown_filter_keeps_everything ... ok
[INFO] [stdout] test gamefilter::tests::an_unknown_player_count_is_not_counted_as_two_players ... ok
[INFO] [stdout] test gamefilter::tests::arrange_narrows_then_orders ... ok
[INFO] [stdout] test gamefilter::tests::choosing_one_opposite_clears_the_other ... ok
[INFO] [stdout] test gamefilter::tests::each_one_keeps_what_it_says ... ok
[INFO] [stdout] test gamefilter::tests::filters_belong_to_the_list_they_were_set_on ... ok
[INFO] [stdout] test gamefilter::tests::nothing_on_leaves_the_list_alone ... ok
[INFO] [stdout] test gamefilter::tests::opposites_are_paired_both_ways ... ok
[INFO] [stdout] test gamefilter::tests::the_rating_filter_reads_ratings_out_of_100 ... ok
[INFO] [stdout] test gamefilter::tests::two_of_them_both_have_to_pass ... ok
[INFO] [stdout] test gameid::tests::a_decomposed_name_is_the_same_file ... ok
[INFO] [stdout] test gameid::tests::a_game_and_a_platform_with_the_same_name_do_not_collide ... ok
[INFO] [stdout] test gameid::tests::a_windows_scan_agrees_with_a_linux_one ... ok
[INFO] [stdout] test gameid::tests::every_old_id_is_recognised_as_old ... ok
[INFO] [stdout] test gameid::tests::ids_stay_inside_what_javascript_can_hold ... ok
[INFO] [stdout] test gameid::tests::the_derivation_does_not_change ... ok
[INFO] [stdout] test gameid::tests::the_same_file_gets_the_same_id_every_time ... ok
[INFO] [stdout] test gameid::tests::the_same_name_in_two_folders_is_two_games ... ok
[INFO] [stdout] test gamelist::tests::a_default_order_yields_to_a_choice ... ok
[INFO] [stdout] test gamelist::tests::a_list_belongs_to_the_view_it_was_set_on ... ok
[INFO] [stdout] test gamelist::tests::an_order_is_remembered_for_its_own_list_and_no_other ... ok
[INFO] [stdout] test gamelist::tests::each_page_keeps_the_list_it_was_handed ... ok
[INFO] [stdout] test gamelist::tests::pages_long_gone_are_let_go ... ok
[INFO] [stdout] test gamelist::tests::the_console_grid_has_neither_a_sort_nor_a_filter ... ok
[INFO] [stdout] test gamelist::tests::titles_read_in_the_order_a_person_looks_for_them ... ok
[INFO] [stdout] test gamesort::tests::a_missing_year_sorts_last_too ... ok
[INFO] [stdout] test gamesort::tests::alphabetical_by_default ... ok
[INFO] [stdout] test gamesort::tests::an_unknown_order_falls_back_to_the_first ... ok
[INFO] [stdout] test gamesort::tests::cycling_wraps_in_both_directions ... ok
[INFO] [stdout] test gamesort::tests::equal_keys_fall_back_to_the_name ... ok
[INFO] [stdout] test gamesort::tests::favorites_stay_on_top_of_any_order ... ok
[INFO] [stdout] test download::tests::a_name_that_leaves_the_folder_is_refused ... ok
[INFO] [stdout] test gamesort::tests::rating_sorts_high_to_low_with_the_unrated_last ... ok
[INFO] [stdout] test gridnav::tests::a_little_jitter_is_still_one_row ... ok
[INFO] [stdout] test gridnav::tests::a_short_last_row_is_entered_below_where_you_were ... ok
[INFO] [stdout] test gridnav::tests::a_single_column_list_behaves_like_a_grid_one_wide ... ok
[INFO] [stdout] test gridnav::tests::a_uniform_table_covers_rows_nothing_measured ... ok
[INFO] [stdout] test gridnav::tests::an_empty_page_has_an_empty_table ... ok
[INFO] [stdout] test gridnav::tests::an_empty_page_moves_nowhere_rather_than_failing ... ok
[INFO] [stdout] test gamesort::tests::never_played_sorts_below_every_real_date ... ok
[INFO] [stdout] test gridnav::tests::left_and_right_stop_at_the_ends_of_their_row ... ok
[INFO] [stdout] test gridnav::tests::nothing_selected_lands_on_the_first_card ... ok
[INFO] [stdout] test gridnav::tests::cards_are_grouped_into_the_rows_they_were_drawn_in ... ok
[INFO] [stdout] test gridnav::tests::rows_read_top_to_bottom_and_left_to_right_whatever_the_order_in ... ok
[INFO] [stdout] test gridnav::tests::the_ends_are_the_ends_of_the_page_not_of_a_row ... ok
[INFO] [stdout] test gridnav::tests::the_uniform_table_matches_the_measured_one ... ok
[INFO] [stdout] test gridnav::tests::up_and_down_stay_put_at_the_edges ... ok
[INFO] [stdout] test gridnav::tests::the_table_agrees_with_asking_one_move_at_a_time ... ok
[INFO] [stdout] test iconart::tests::a_preview_prefers_the_console ... ok
[INFO] [stdout] test iconart::tests::a_directory_with_a_space_survives_the_url ... ok
[INFO] [stdout] test iconart::tests::an_unknown_set_is_none_rather_than_a_panic ... ok
[INFO] [stdout] test iconart::tests::every_named_set_is_in_the_table ... ok
[INFO] [stdout] test iconart::tests::look_ids_are_unique_within_a_set_and_safe_as_folder_names ... ok
[INFO] [stdout] test iconart::tests::sets_offer_as_many_looks_as_they_have ... ok
[INFO] [stdout] test iconart::tests::the_default_set_draws_the_hardware ... ok
[INFO] [stdout] test iconart::tests::the_named_sets_come_first_and_the_rest_follow ... ok
[INFO] [stdout] test iconart::tests::the_sets_that_draw_real_consoles_are_still_there ... ok
[INFO] [stdout] test iconart::tests::the_table_parses_and_every_set_offers_at_least_one_look ... ok
[INFO] [stdout] test cache::tests::screenshots_prefer_the_list_and_fall_back_to_the_single_column ... ok
[INFO] [stdout] test iconart::tests::the_urls_need_no_account ... ok
[INFO] [stdout] test keyboard::tests::a_dos_game_gets_every_key_but_the_menu ... ok
[INFO] [stdout] test iconsets::tests::a_set_with_no_published_entry_still_gets_a_readable_name ... ok
[INFO] [stdout] test keyboard::tests::a_pad_system_is_left_alone ... ok
[INFO] [stdout] test keyboard::tests::the_menu_key_is_one_nothing_else_has ... ok
[INFO] [stdout] test iconart::tests::the_wordmark_only_sets_are_flagged ... ok
[INFO] [stdout] test launch::tests::a_complete_playlist_launches ... ok
[INFO] [stdout] test launch::tests::a_one_disc_folder_launches_that_disc ... ok
[INFO] [stdout] test launch::tests::a_folder_rom_launches_the_playlist_inside_it ... ok
[INFO] [stdout] test launch::tests::a_plain_rom_is_never_treated_as_a_playlist ... ok
[INFO] [stdout] test launch::tests::a_plain_rom_passes_straight_through ... ok
[INFO] [stdout] test launch::tests::an_incomplete_playlist_names_the_discs_that_are_missing ... ok
[INFO] [stdout] test launch::tests::only_off_survives_from_the_old_switch ... ok
[INFO] [stdout] test launch::tests::the_light_gun_is_on_unless_it_is_explicitly_off ... ok
[INFO] [stdout] test launch::tests::comments_and_blank_lines_are_not_discs ... ok
[INFO] [stdout] test launch::tests::several_discs_without_a_playlist_is_refused_by_name ... ok
[INFO] [stdout] test layout::boxes::a_column_stacks_downwards ... ok
[INFO] [stdout] test layout::boxes::a_point_is_inside_a_box_or_it_is_not ... ok
[INFO] [stdout] test layout::boxes::a_row_gives_the_fixed_ones_what_they_asked_for ... ok
[INFO] [stdout] test layout::boxes::a_whole_page_lays_itself_out ... ok
[INFO] [stdout] test layout::boxes::a_wrapping_grid_places_cells_by_index ... ok
[INFO] [stdout] test layout::boxes::a_span_cannot_run_off_the_grid ... ok
[INFO] [stdout] test layout::boxes::growing_children_split_what_is_left_by_weight ... ok
[INFO] [stdout] test layout::boxes::insetting_never_turns_a_box_inside_out ... ok
[INFO] [stdout] test layout::boxes::splitting_further_than_the_box_goes_clamps ... ok
[INFO] [stdout] test layout::boxes::splitting_takes_from_the_edge_it_says ... ok
[INFO] [stdout] test layout::boxes::fitting_keeps_the_shape_and_centers_what_is_left ... ok
[INFO] [stdout] test layout::boxes::a_row_that_does_not_fit_gives_nothing_rather_than_less_than_nothing ... ok
[INFO] [stdout] test layout::tests::a_desktop_at_arms_length_is_left_alone ... ok
[INFO] [stdout] test layout::tests::a_desktop_window_earns_its_columns_by_width ... ok
[INFO] [stdout] test layout::tests::a_distance_of_nothing_falls_back_rather_than_dividing_by_zero ... ok
[INFO] [stdout] test layout::tests::a_handheld_is_held_closer_and_is_scaled_for_it ... ok
[INFO] [stdout] test layout::tests::a_plain_desktop_display_is_unscaled ... ok
[INFO] [stdout] test layout::tests::a_scale_is_snapped_to_a_quarter ... ok
[INFO] [stdout] test layout::tests::columns_split_by_share_not_by_measurement ... ok
[INFO] [stdout] test layout::tests::nonsense_does_not_blow_the_layout_up ... ok
[INFO] [stdout] test layout::tests::points_survive_a_round_trip_through_pixels ... ok
[INFO] [stdout] test layout::tests::the_gap_sits_between_the_columns ... ok
[INFO] [stdout] test layout::tests::the_handheld_is_one_pane ... ok
[INFO] [stdout] test layout::tests::the_window_is_a_ceiling_and_the_preference_lives_under_it ... ok
[INFO] [stdout] test layout::tests::twice_the_pixels_is_not_twice_the_layout ... ok
[INFO] [stdout] test lightgun::tests::a_system_with_no_gun_writes_nothing_even_when_enabled ... ok
[INFO] [stdout] test lightgun::tests::alternate_slugs_for_one_console_agree ... ok
[INFO] [stdout] test layout::tests::points_and_pixels_are_the_same_thing_at_one ... ok
[INFO] [stdout] test lightgun::tests::console_guns_go_in_the_port_the_hardware_used ... ok
[INFO] [stdout] test lightgun::tests::off_by_default_writes_nothing ... ok
[INFO] [stdout] test macdisplay::tests::a_choice_naming_a_display_that_is_gone_falls_back ... ok
[INFO] [stdout] test macdisplay::tests::an_external_display_wins_by_default ... ok
[INFO] [stdout] test macdisplay::tests::asking_for_the_main_display_gets_it_even_with_an_external_attached ... ok
[INFO] [stdout] test macdisplay::tests::the_setting_survives_being_written_and_read_back ... ok
[INFO] [stdout] test macdisplay::tests::there_is_nothing_to_ask_off_macos ... ok
[INFO] [stdout] test media::tests::a_choice_that_a_console_cannot_satisfy_still_falls_back ... ok
[INFO] [stdout] test media::tests::a_file_that_is_not_an_image_has_no_size ... ok
[INFO] [stdout] test cache::tests::search_matches_title_or_filename_case_insensitively ... ok
[INFO] [stdout] test media::tests::a_screenshot_set_falls_back_to_the_plain_stem_when_offline ... ok
[INFO] [stdout] test media::tests::a_server_path_is_encoded_without_destroying_its_structure ... ok
[INFO] [stdout] test media::tests::an_unusable_extension_falls_back_to_png ... ok
[INFO] [stdout] test media::tests::arcade_media_is_looked_for_under_mame_as_well ... ok
[INFO] [stdout] test layout::boxes::twelve_columns_span_the_way_the_web_does ... ok
[INFO] [stdout] test media::tests::a_missing_artwork_directory_is_simply_empty ... ok
[INFO] [stdout] test media::tests::artwork_resolves_offline_from_local_files_only ... ok
[INFO] [stdout] test media::tests::choosing_a_fallback_type_does_not_duplicate_it ... ok
[INFO] [stdout] test media::tests::every_media_type_has_extensions_to_try ... ok
[INFO] [stdout] test media::tests::artwork_is_found_whatever_the_case_of_the_name ... ok
[INFO] [stdout] test media::tests::a_game_with_no_art_is_only_asked_about_once ... ok
[INFO] [stdout] test media::tests::clearing_server_artwork_leaves_everything_else_alone ... ok
[INFO] [stdout] test media::tests::image_dimensions_are_read_from_the_header_of_both_formats ... ok
[INFO] [stdout] test media::tests::local_media_is_found_by_stem_whatever_the_extension ... ok
[INFO] [stdout] test media::tests::every_offered_choice_is_a_real_media_directory ... ok
[INFO] [stdout] test media::tests::the_art_chain_prefers_the_one_consistent_shape ... ok
[INFO] [stdout] test media::tests::the_cover_aspect_is_the_median_and_ignores_an_outlier ... ok
[INFO] [stdout] test media::tests::the_extension_ignores_the_query_string ... ok
[INFO] [stdout] test media::tests::the_artwork_index_is_reused_until_the_directory_changes ... ok
[INFO] [stdout] test media::tests::the_manifest_records_a_path_the_media_root_can_be_walked_with ... ok
[INFO] [stdout] test media::tests::the_directory_that_answers_gets_tried_first ... ok
[INFO] [stdout] test padpoll::tests::a_harder_pull_scrolls_further_than_a_light_one ... ok
[INFO] [stdout] test padpoll::tests::a_new_press_acts_at_once_then_waits_out_the_delay ... ok
[INFO] [stdout] test padpoll::tests::a_one_shot_button_never_repeats_however_long_it_is_held ... ok
[INFO] [stdout] test padpoll::tests::a_button_cleared_by_a_rebind_is_skipped ... ok
[INFO] [stdout] test padpoll::tests::a_resting_stick_reports_nothing ... ok
[INFO] [stdout] test padpoll::tests::a_resting_trigger_does_not_creep ... ok
[INFO] [stdout] test padpoll::tests::a_tap_is_not_swallowed_by_the_hold ... ok
[INFO] [stdout] test padpoll::tests::an_unbound_button_resolves_to_nothing ... ok
[INFO] [stdout] test padpoll::tests::a_short_button_list_is_not_read_off_the_end ... ok
[INFO] [stdout] test padpoll::tests::releasing_lets_the_next_press_fire_at_once ... ok
[INFO] [stdout] test padpoll::tests::the_face_buttons_resolve_to_open_and_back ... ok
[INFO] [stdout] test padpoll::tests::the_lock_does_not_lift_on_the_empty_frame_after_an_exit ... ok
[INFO] [stdout] test padpoll::tests::the_right_stick_scrolls_both_ways ... ok
[INFO] [stdout] test padpoll::tests::the_stick_moves_along_its_dominant_axis_only ... ok
[INFO] [stdout] test padpoll::tests::two_seconds_of_a_button_is_a_hold_and_fires_once ... ok
[INFO] [stdout] test padprofile::tests::a_missing_button_is_noted_rather_than_invented ... ok
[INFO] [stdout] test padprofile::tests::a_pad_without_a_modifier_gets_no_hotkeys ... ok
[INFO] [stdout] test media::tests::too_few_covers_yields_no_aspect_at_all ... ok
[INFO] [stdout] test padpoll::tests::rebuilding_on_a_context_change_does_not_re_press_the_held_button ... ok
[INFO] [stdout] test padprofile::tests::an_unknown_pad_matches_nothing ... ok
[INFO] [stdout] test padprofile::tests::every_known_profile_covers_the_full_hotkey_set ... ok
[INFO] [stdout] test padprofile::tests::device_names_match_across_punctuation_and_suffixes ... ok
[INFO] [stdout] test padprofile::tests::face_buttons_are_read_by_position_not_by_letter ... ok
[INFO] [stdout] test padprofile::tests::hats_and_axes_get_the_key_retroarch_expects ... ok
[INFO] [stdout] test padprofile::tests::label_keys_do_not_overwrite_bindings ... ok
[INFO] [stdout] test padprofile::tests::quit_is_never_reachable_without_the_modifier ... ok
[INFO] [stdout] test padprofile::tests::the_built_in_fallback_covers_every_hotkey ... ok
[INFO] [stdout] test padprofile::tests::the_android_pad_binds_the_dpad_and_the_faces_by_position ... ok
[INFO] [stdout] test padprofile::tests::the_android_pad_matches_what_the_device_reports ... ok
[INFO] [stdout] test padprofile::tests::the_mfi_profile_matches_what_retroarch_reports ... ok
[INFO] [stdout] test padprofile::tests::the_old_standard_mapping_indices_are_gone ... ok
[INFO] [stdout] test padprofile::tests::the_configured_driver_is_searched_first ... ok
[INFO] [stdout] test padprofile::tests::the_same_button_differs_between_drivers ... ok
[INFO] [stdout] test padprofile::tests::the_pad_driver_is_read_not_the_keyboard_one ... ok
[INFO] [stdout] test pagefilter::tests::an_unfiltered_page_hides_no_headings ... ok
[INFO] [stdout] test pagefilter::tests::case_does_not_matter_and_neither_does_stray_space ... ok
[INFO] [stdout] test pagefilter::tests::emptying_it_puts_everything_back ... ok
[INFO] [stdout] test pagefilter::tests::a_heading_with_nothing_left_under_it_goes_too ... ok
[INFO] [stdout] test pagefilter::tests::it_keeps_what_matches_and_hides_the_rest ... ok
[INFO] [stdout] test pagefilter::tests::it_matches_anywhere_in_the_name_not_only_the_start ... ok
[INFO] [stdout] test pickorder::tests::collections_start_under_name_not_size ... ok
[INFO] [stdout] test pickorder::tests::consoles_are_alphabetical_with_no_order_to_choose ... ok
[INFO] [stdout] test pickorder::tests::an_unknown_order_falls_back_to_the_alphabet ... ok
[INFO] [stdout] test pickorder::tests::the_chosen_order_is_remembered ... ok
[INFO] [stdout] test pickorder::tests::what_is_downloaded_can_come_first ... ok
[INFO] [stdout] test pickorder::tests::favorites_stay_on_top_of_any_order ... ok
[INFO] [stdout] test pickorder::tests::most_games_first_and_fewest_the_other_way ... ok
[INFO] [stdout] test platform::knulli::tests::neo_geo_saves_reach_a_core_and_the_servers_games ... ok
[INFO] [stdout] test platform::knulli::tests::the_library_is_the_one_already_on_the_device ... ok
[INFO] [stdout] test platform::tests::a_handheld_names_its_own_save_root ... ok
[INFO] [stdout] test platform::tests::every_other_scheme_leaves_the_save_root_to_the_config ... ok
[INFO] [stdout] test platform::tests::every_save_folder_this_device_maps_to_actually_exists ... ok
[INFO] [stdout] test platform::knulli::tests::nothing_is_both_ignored_and_aliased ... ok
[INFO] [stdout] test platform::knulli::tests::the_arcade_library_is_reachable ... ok
[INFO] [stdout] test platform::tests::every_scheme_answers_the_basics ... ok
[INFO] [stdout] test platform::tests::knulli_does_not_share_desktop_linuxs_retroarch_directory ... ok
[INFO] [stdout] test platform::tests::knulli_points_at_batoceras_own_retroarch_directory ... ok
[INFO] [stdout] test platform::tests::other_devices_look_only_where_they_wrote ... ok
[INFO] [stdout] test platform::tests::scheme_names_are_distinct ... ok
[INFO] [stdout] test platformfacts::tests::every_platform_in_the_core_map_has_facts ... ok
[INFO] [stdout] test platformfacts::tests::hardware_is_one_of_three_words ... ok
[INFO] [stdout] test platformfacts::tests::the_famous_years_are_right ... ok
[INFO] [stdout] test platformfacts::tests::the_same_machine_under_two_slugs_says_the_same_thing ... ok
[INFO] [stdout] test platformicon::tests::a_slug_cannot_escape_the_cache_directory ... ok
[INFO] [stdout] test platformicon::tests::an_absent_marker_is_not_offered_as_an_icon ... ok
[INFO] [stdout] test platform::tests::what_a_folder_collects_is_what_gets_searched_in_it ... ok
[INFO] [stdout] test platform::tests::other_devices_keep_the_servers_slug ... ok
[INFO] [stdout] test players::tests::analog_triggers_are_not_copied_across_ports ... ok
[INFO] [stdout] test players::tests::mirroring_binds_the_other_three_ports_like_the_first ... ok
[INFO] [stdout] test players::tests::the_stick_stands_in_for_the_dpad_on_every_port ... ok
[INFO] [stdout] test players::tests::no_profile_still_enables_the_ports ... ok
[INFO] [stdout] test players::tests::without_mirroring_no_other_port_is_bound ... ok
[INFO] [stdout] test probe::tests::a_bios_is_reported_as_a_bios_rather_than_a_broken_game ... ok
[INFO] [stdout] test players::tests::four_ports_are_enabled ... ok
[INFO] [stdout] test probe::tests::a_game_that_starts_with_files_missing_is_not_a_pass ... ok
[INFO] [stdout] test probe::tests::mames_wording_for_the_same_thing_is_caught_too ... ok
[INFO] [stdout] test probe::tests::starting_does_not_excuse_an_incomplete_romset ... ok
[INFO] [stdout] test probe::tests::the_cores_own_title_is_recoverable_from_the_log ... ok
[INFO] [stdout] test probe::tests::the_reassuring_message_is_not_read_as_a_complaint ... ok
[INFO] [stdout] test probe::tests::zero_runtime_is_still_a_refusal ... ok
[INFO] [stdout] test retroarch::tests::a_core_override_is_found_under_retroarchs_folder_name ... ok
[INFO] [stdout] test retroarch::tests::a_core_with_only_a_remap_keeps_the_users_own_options ... ok
[INFO] [stdout] test probe::tests::a_clean_run_is_still_a_pass ... ok
[INFO] [stdout] test probe::tests::a_core_that_says_it_started_is_believed_over_a_rounded_clock ... ok
[INFO] [stdout] test retroarch::tests::a_cores_config_directory_is_found_across_case_and_punctuation ... ok
[INFO] [stdout] test retroarch::tests::a_key_set_twice_in_the_fragment_lands_once_with_the_later_value ... ok
[INFO] [stdout] test retroarch::tests::a_failed_locate_names_the_paths_it_tried ... ok
[INFO] [stdout] test retroarch::tests::a_missing_directory_in_the_config_falls_back_to_the_install ... ok
[INFO] [stdout] test retroarch::tests::a_missing_user_config_does_not_fail_the_launch ... ok
[INFO] [stdout] test retroarch::tests::a_platform_with_no_one_shape_is_left_alone ... ok
[INFO] [stdout] test retroarch::tests::a_cores_own_override_is_noticed_key_by_key ... ok
[INFO] [stdout] test retroarch::tests::a_remap_the_app_no_longer_wants_is_deleted_not_left_behind ... ok
[INFO] [stdout] test retroarch::tests::a_remap_the_app_still_wants_is_written ... ok
[INFO] [stdout] test retroarch::tests::a_state_on_exit_is_written_only_when_it_was_asked_for ... ok
[INFO] [stdout] test cache::tests::server_exclusions_round_trip_for_offline_use ... ok
[INFO] [stdout] test retroarch::tests::arcade_is_given_a_cabinet_shaped_window_but_no_forced_ratio ... ok
[INFO] [stdout] test retroarch::tests::autofire_writes_nothing_for_a_pad_with_no_profile ... ok
[INFO] [stdout] test retroarch::tests::elsewhere_the_monitor_origin_is_the_position ... ok
[INFO] [stdout] test retroarch::tests::every_emitted_line_parses_as_a_setting ... ok
[INFO] [stdout] test retroarch::tests::merging_replaces_in_place_rather_than_appending_a_second_copy ... ok
[INFO] [stdout] test retroarch::tests::merging_replaces_our_keys_and_keeps_every_other_line ... ok
[INFO] [stdout] test retroarch::tests::autofire_rate_is_the_nearest_whole_frame_to_what_was_asked ... ok
[INFO] [stdout] test retroarch::tests::no_saves_folder_leaves_retroarch_alone ... ok
[INFO] [stdout] test retroarch::tests::a_window_shaped_like_the_game_leaves_no_room_for_a_bar ... ok
[INFO] [stdout] test retroarch::tests::quit_is_not_reachable_during_normal_play ... ok
[INFO] [stdout] test media::tests::only_a_server_that_said_not_found_marks_a_game_as_having_no_art ... ok
[INFO] [stdout] test retroarch::tests::the_button_is_never_held_long_enough_to_read_as_held ... ok
[INFO] [stdout] test retroarch::tests::an_unknown_display_leaves_the_window_settings_alone ... ok
[INFO] [stdout] test retroarch::tests::rapid_fire_moves_no_buttons_at_all ... ok
[INFO] [stdout] test retroarch::tests::the_chosen_saves_folder_is_written_into_the_launch_config ... ok
[INFO] [stdout] test retroarch::tests::the_duty_cycle_uses_the_key_retroarch_actually_reads ... ok
[INFO] [stdout] test retroarch::tests::the_launch_files_saves_the_same_way_the_sync_reads_them ... ok
[INFO] [stdout] test cache::tests::rows_an_old_build_writes_later_are_cleared_on_open ... ok
[INFO] [stdout] test retroarch::tests::the_picture_is_drawn_at_the_shape_the_window_was_given ... ok
[INFO] [stdout] test retroarch::tests::no_profile_means_no_hotkeys_rather_than_a_guess ... ok
[INFO] [stdout] test retroarch::tests::the_hotkeys_come_from_the_pad_profile ... ok
[INFO] [stdout] test retroarch::tests::the_size_is_written_alongside_the_ceiling_that_would_cap_it ... ok
[INFO] [stdout] test retroarch::tests::the_size_is_written_under_the_names_retroarch_actually_reads ... ok
[INFO] [stdout] test retroarch::tests::rapid_fire_is_a_shoulder_modifier_and_binds_only_that ... ok
[INFO] [stdout] test retroarch::tests::the_shader_and_config_directories_follow_retroarchs_own_settings ... ok
[INFO] [stdout] test retroarch::tests::the_no_profile_note_binds_nothing ... ok
[INFO] [stdout] test retroarch::tests::the_other_shoulder_is_a_different_button ... ok
[INFO] [stdout] test retroarch::tests::the_window_is_a_little_smaller_than_the_display ... ok
[INFO] [stdout] test retroarch::tests::the_top_button_can_be_the_modifier ... ok
[INFO] [stdout] test retroarch::tests::the_shader_we_choose_is_not_overruled_by_one_retroarch_finds_itself ... ok
[INFO] [stdout] test rowwindow::tests::a_list_not_yet_reached_draws_from_its_first_row ... ok
[INFO] [stdout] test rowwindow::tests::a_row_already_on_screen_is_left_alone ... ok
[INFO] [stdout] test rowwindow::tests::a_whole_screen_is_drawn_beyond_the_viewport_each_way ... ok
[INFO] [stdout] test rowwindow::tests::a_short_last_row_is_drawn_whole ... ok
[INFO] [stdout] test rowwindow::tests::at_the_end_it_stops_at_the_last_row ... ok
[INFO] [stdout] test retroarch_install::tests::an_update_keeps_what_retroarch_wrote_beside_itself ... ok
[INFO] [stdout] test rowwindow::tests::an_empty_list_draws_nothing_and_asks_for_no_space ... ok
[INFO] [stdout] test rowwindow::tests::at_the_top_it_starts_at_the_first_row ... ok
[INFO] [stdout] test retroarch::tests::the_starter_user_config_is_never_overwritten ... ok
[INFO] [stdout] test retroarch::tests::the_system_folder_is_retroarchs_own ... ok
[INFO] [stdout] test rowwindow::tests::nonsense_does_not_divide_by_zero ... ok
[INFO] [stdout] test rowwindow::tests::one_column_is_a_list_and_behaves ... ok
[INFO] [stdout] test rowwindow::tests::short_lists_are_drawn_whole ... ok
[INFO] [stdout] test rowwindow::tests::the_page_is_the_height_it_would_have_been ... ok
[INFO] [stdout] test rowwindow::tests::with_no_row_height_yet_everything_is_drawn ... ok
[INFO] [stdout] test rowwindow::tests::the_spacers_are_always_whole_rows ... ok
[INFO] [stdout] test rowwindow::tests::it_is_a_fraction_of_the_list ... ok
[INFO] [stdout] test savebackup::tests::a_missing_save_is_not_an_error ... ok
[INFO] [stdout] test savebackup::tests::a_slot_name_cannot_escape_the_backup_directory ... ok
[INFO] [stdout] test retroarch::tests::the_users_own_settings_come_last ... ok
[INFO] [stdout] test savebackup::stable_id_tests::backups_follow_their_game_and_nothing_is_overwritten ... ok
[INFO] [stdout] test savebackup::tests::backing_up_unchanged_bytes_twice_keeps_one_copy ... ok
[INFO] [stdout] test savebackup::tests::a_save_is_copied_aside_before_it_is_overwritten ... ok
[INFO] [stdout] test savebackup::tests::each_rom_and_slot_rotates_independently ... ok
[INFO] [stdout] test savebackup::tests::backups_live_under_the_visible_library_folder ... ok
[INFO] [stdout] test savehash::tests::a_zip_that_unpacks_past_the_cap_is_refused ... ok
[INFO] [stdout] test savebackup::tests::restoring_backs_up_what_it_replaces ... ok
[INFO] [stdout] test savehash::tests::plain_file_is_raw_md5 ... ok
[INFO] [stdout] test savehash::tests::zip_hashes_manifest_not_bytes ... ok
[INFO] [stdout] test saves::tests::a_superseded_save_is_kept_and_explained ... ok
[INFO] [stdout] test saves::tests::an_opera_disc_index_is_not_part_of_the_basename ... ok
[INFO] [stdout] test saves::tests::core_directory_names_reduce_to_a_comparable_form ... ok
[INFO] [stdout] test saves::tests::every_recognized_save_gets_a_non_empty_stable_slot ... ok
[INFO] [stdout] test saves::tests::a_cores_platforms_include_both_defaults_and_alternatives ... ok
[INFO] [stdout] test saves::tests::game_saves_split_into_a_basename_and_a_stable_slot ... ok
[INFO] [stdout] test saves::tests::non_save_files_in_the_tree_are_ignored ... ok
[INFO] [stdout] test saves::tests::only_a_genuine_collision_is_treated_as_one ... ok
[INFO] [stdout] test saves::tests::punctuation_in_a_title_survives_the_split ... ok
[INFO] [stdout] test saves::tests::syncthing_copies_and_hand_backups_are_not_saves ... ok
[INFO] [stdout] test saves::tests::save_states_carry_their_slot_number ... ok
[INFO] [stdout] test saves::tests::the_default_core_wins_a_slot_collision ... ok
[INFO] [stdout] test saves::tests::the_state_test_agrees_with_the_slot_parser ... ok
[INFO] [stdout] test saves::tests::unrecognized_names_produce_no_candidate ... ok
[INFO] [stdout] test saves::tests::the_default_still_wins_when_it_is_seen_first ... ok
[INFO] [stdout] test savesync::tests::a_by_system_device_files_everything_under_the_platform ... ok
[INFO] [stdout] test savesync::tests::a_conflict_is_always_surfaced ... ok
[INFO] [stdout] test savesync::tests::a_case_sensitive_disk_pairs_nothing ... ok
[INFO] [stdout] test saves::tests::a_neo_geo_card_is_a_save_of_its_game ... ok
[INFO] [stdout] test savesync::tests::a_download_finds_a_folder_named_after_the_label ... ok
[INFO] [stdout] test saves::tests::unresolved_saves_are_not_drawn_into_collision_handling ... ok
[INFO] [stdout] test savesync::tests::a_download_joins_the_core_folder_that_is_already_there ... ok
[INFO] [stdout] test savesync::tests::a_download_strips_the_stamp_wherever_it_lands ... ok
[INFO] [stdout] test savesync::tests::a_missing_emulator_does_not_produce_a_stray_directory ... ok
[INFO] [stdout] test savesync::tests::a_download_spelled_differently_is_never_written_over_a_local_save ... ok
[INFO] [stdout] test savesync::tests::a_failure_is_never_headlined_as_in_sync ... ok
[INFO] [stdout] test savesync::tests::a_save_the_server_kept_short_is_an_error ... ok
[INFO] [stdout] test savesync::tests::a_download_stops_at_a_save_the_device_never_reported ... ok
[INFO] [stdout] test savesync::tests::an_automatic_sync_reports_only_what_it_did ... ok
[INFO] [stdout] test savesync::tests::downloads_land_where_the_scanner_will_find_them ... ok
[INFO] [stdout] test savesync::tests::an_unresolved_core_falls_back_to_its_directory_name ... ok
[INFO] [stdout] test savesync::tests::only_a_real_core_is_taken_from_the_server ... ok
[INFO] [stdout] test savesync::tests::only_canonical_matched_saves_are_offered ... ok
[INFO] [stdout] test savesync::tests::only_the_same_game_is_ever_paired ... ok
[INFO] [stdout] test savesync::tests::only_the_stamp_comes_off ... ok
[INFO] [stdout] test savesync::tests::the_device_name_is_never_one_another_device_would_share ... ok
[INFO] [stdout] test savesync::tests::the_headline_says_nothing_happened_when_nothing_did ... ok
[INFO] [stdout] test savesync::tests::the_local_save_is_found_by_game_as_well_as_name ... ok
[INFO] [stdout] test savesync::tests::the_servers_version_stamp_comes_off ... ok
[INFO] [stdout] test savesync::tests::timestamps_are_rfc3339_utc ... ok
[INFO] [stdout] test cache::tests::the_same_name_in_two_folders_is_two_rows ... ok
[INFO] [stdout] test savebackup::tests::the_copy_just_taken_survives_pruning_whatever_its_date ... ok
[INFO] [stdout] test savesync::tests::an_atomic_write_leaves_no_part_file ... ok
[INFO] [stdout] test savesync::tests::with_no_folder_yet_retroarchs_own_name_is_used ... ok
[INFO] [stdout] test savesync::tests::respelling_changes_the_name_and_keeps_the_bytes ... ok
[INFO] [stdout] test savesync::tests::another_spelling_occupies_the_file_only_where_the_disk_folds_case ... ok
[INFO] [stdout] test saveunit::tests::a_changed_byte_changes_the_hash ... ok
[INFO] [stdout] test saveunit::tests::keys_are_one_plain_segment ... ok
[INFO] [stdout] test scrape::tests::a_clean_run_says_nothing_about_permissions ... ok
[INFO] [stdout] test scrape::tests::a_name_with_no_extension_still_yields_a_stem ... ok
[INFO] [stdout] test scrape::tests::a_run_that_found_nothing_still_says_what_it_looked_at ... ok
[INFO] [stdout] test scrape::tests::a_token_that_cannot_write_is_explained_once_and_actionably ... ok
[INFO] [stdout] test scrape::tests::a_sequel_is_never_matched_to_the_game_it_follows ... ok
[INFO] [stdout] test saveunit::tests::a_folder_and_its_zip_hash_the_same ... ok
[INFO] [stdout] test savebackup::tests::only_the_ten_newest_are_kept ... ok
[INFO] [stdout] test scrape::tests::absent_and_empty_urls_are_both_skipped ... ok
[INFO] [stdout] test scrape::tests::covers_pushed_back_are_counted_only_when_there_were_some ... ok
[INFO] [stdout] test scrape::tests::region_tags_and_punctuation_fall_away ... ok
[INFO] [stdout] test scrape::tests::the_extension_comes_from_the_bytes_not_the_url ... ok
[INFO] [stdout] test scrape::tests::a_video_is_never_fetched_unless_it_was_asked_for ... ok
[INFO] [stdout] test scrape::tests::every_media_type_lands_in_a_real_esde_directory ... ok
[INFO] [stdout] test scrape::tests::the_numeral_is_what_separates_one_entry_from_the_next ... ok
[INFO] [stdout] test scrape::tests::the_whole_set_is_taken_including_the_cartridge ... ok
[INFO] [stdout] test scrape::tests::the_same_game_written_differently_still_matches ... ok
[INFO] [stdout] test script::tests::a_borrowed_katakana_mark_does_not_settle_it ... ok
[INFO] [stdout] test script::tests::a_title_in_two_scripts_takes_the_one_that_needs_deciding ... ok
[INFO] [stdout] test script::tests::a_title_that_does_not_say_falls_to_simplified ... ok
[INFO] [stdout] test script::tests::every_script_names_a_font_and_a_language ... ok
[INFO] [stdout] test script::tests::everything_else_needs_no_decision ... ok
[INFO] [stdout] test script::tests::kana_means_japanese ... ok
[INFO] [stdout] test script::tests::han_alone_is_chinese_and_we_say_which ... ok
[INFO] [stdout] test script::tests::hangul_means_korean ... ok
[INFO] [stdout] test shaders::tests::every_default_is_in_the_catalog ... ok
[INFO] [stdout] test shaders::tests::defaults_match_the_display_they_are_for ... ok
[INFO] [stdout] test shaders::tests::a_dos_game_gets_no_crt_by_default ... ok
[INFO] [stdout] test shaders::tests::an_override_beats_the_default ... ok
[INFO] [stdout] test shaders::tests::the_gba_default_is_a_lit_panel ... ok
[INFO] [stdout] test shaders::tests::the_chained_preset_is_written_as_an_absolute_path ... FAILED
[INFO] [stdout] test shaders::tests::no_shader_disables_rather_than_omitting ... ok
[INFO] [stdout] test slangp::tests::comments_and_blank_lines_are_ignored ... ok
[INFO] [stdout] test slangp::tests::indices_past_nine_are_parsed_whole ... ok
[INFO] [stdout] test slangp::tests::one_preset_alone_still_gets_absolute_paths ... ok
[INFO] [stdout] test slangp::tests::paths_are_resolved_against_each_presets_own_directory ... ok
[INFO] [stdout] test slangp::tests::per_pass_keys_move_with_their_pass ... ok
[INFO] [stdout] test slangp::tests::separators_are_normalized_whatever_the_host ... ok
[INFO] [stdout] test slangp::tests::texture_and_parameter_lists_are_merged ... ok
[INFO] [stdout] test slangp::tests::the_extra_pass_is_appended_after_the_base ... ok
[INFO] [stdout] test states::tests::a_timestamp_from_the_future_does_not_wrap_around ... ok
[INFO] [stdout] test slangp::tests::texture_paths_are_made_absolute_too ... ok
[INFO] [stdout] test slangp::tests::a_texture_named_with_underscores_is_made_absolute ... ok
[INFO] [stdout] test slangp::tests::an_already_absolute_path_is_left_alone ... ok
[INFO] [stdout] test states::tests::deleting_something_already_gone_says_so_rather_than_pretending ... ok
[INFO] [stdout] test states::tests::how_long_ago_is_readable_at_every_scale ... ok
[INFO] [stdout] test scrape::tests::anything_already_cached_takes_a_game_out_of_the_list ... ok
[INFO] [stdout] test saveunit::tests::a_zip_that_would_write_outside_its_folder_is_refused ... ok
[INFO] [stdout] test states::tests::deleting_a_state_takes_its_picture_and_leaves_a_copy ... ok
[INFO] [stdout] test states::tests::slots_are_named_for_what_they_are_rather_than_numbered ... ok
[INFO] [stdout] test statesync::tests::a_state_changed_only_here_uploads ... ok
[INFO] [stdout] test statesync::tests::a_state_changed_only_there_downloads ... ok
[INFO] [stdout] test statesync::tests::a_state_deleted_here_is_not_brought_back ... ok
[INFO] [stdout] test statesync::tests::a_state_held_under_another_case_is_not_brought_down_over_it ... ok
[INFO] [stdout] test states::tests::the_picture_is_named_after_the_whole_state_file ... ok
[INFO] [stdout] test statesync::tests::a_first_sync_with_both_sides_populated_asks ... ok
[INFO] [stdout] test statesync::tests::a_broken_ledger_is_treated_as_empty ... ok
[INFO] [stdout] test statesync::tests::a_state_only_on_the_server_comes_down_beside_the_games_save ... ok
[INFO] [stdout] test statesync::tests::a_state_only_on_the_server_goes_to_the_states_tree_by_core ... ok
[INFO] [stdout] test statesync::tests::a_state_only_one_side_has_is_simply_copied ... ok
[INFO] [stdout] test statesync::tests::a_state_this_emulator_would_never_load_stays_on_the_server ... ok
[INFO] [stdout] test statesync::tests::keeping_the_servers_state_writes_the_local_file ... ok
[INFO] [stdout] test states::tests::only_numbered_slots_can_be_entered_directly ... ok
[INFO] [stdout] test statesync::tests::ledger_entries_follow_their_game_to_its_stable_id ... ok
[INFO] [stdout] test states::tests::the_autosave_comes_first_and_the_numbered_slots_in_order ... ok
[INFO] [stdout] test statesync::tests::both_sides_moving_is_a_conflict ... ok
[INFO] [stdout] test statesync::tests::nothing_comes_down_for_a_game_never_played_here_or_already_held ... ok
[INFO] [stdout] test statesync::tests::the_ledger_round_trips ... ok
[INFO] [stdout] test syncplan::tests::an_operation_with_no_filename_still_names_something ... ok
[INFO] [stdout] test statesync::tests::matching_states_do_nothing ... ok
[INFO] [stdout] test syncplan::tests::a_line_serialises_under_the_names_the_page_looks_for ... ok
[INFO] [stdout] test syncplan::tests::no_op_is_counted_and_never_shown ... ok
[INFO] [stdout] test saveunit::tests::unpacking_replaces_the_folder_whole ... ok
[INFO] [stdout] test statesync::tests::the_server_fingerprint_uses_both_size_and_time ... ok
[INFO] [stdout] test syncplan::tests::an_empty_plan_says_so_rather_than_looking_broken ... ok
[INFO] [stdout] test syncplan::tests::the_headline_counts_each_kind ... ok
[INFO] [stdout] test syncplan::tests::the_page_gets_the_headline_and_the_notes ... ok
[INFO] [stdout] test syncplan::tests::the_servers_reason_survives_but_blank_ones_do_not ... ok
[INFO] [stdout] test theme::tests::a_missing_style_falls_back_to_the_logo ... ok
[INFO] [stdout] test theme::tests::a_looks_own_folder_wins_over_the_pool ... ok
[INFO] [stdout] test theme::tests::a_fetched_set_replaces_the_installed_one_only_at_the_end ... ok
[INFO] [stdout] test theme::tests::a_set_with_no_mapping_counts_as_stale ... ok
[INFO] [stdout] test theme::tests::a_set_fetched_under_an_old_mapping_is_dropped ... ok
[INFO] [stdout] test theme::tests::every_style_has_a_distinct_key_that_parses_back ... ok
[INFO] [stdout] test theme::tests::art_is_found_under_each_layout_themes_actually_use ... ok
[INFO] [stdout] test theme::tests::the_classic_renders_stand_in_for_hardware_rather_than_being_their_own_style ... ok
[INFO] [stdout] test theme::tests::art_is_found_whatever_image_format_the_theme_ships ... ok
[INFO] [stdout] test theme_remote::tests::a_github_url_uses_the_other_archive_shape ... ok
[INFO] [stdout] test theme_remote::tests::a_gitlab_url_becomes_an_archive_download ... ok
[INFO] [stdout] test theme_remote::tests::an_unknown_host_offers_nothing ... ok
[INFO] [stdout] test theme::tests::there_are_three_styles_and_styled_text_leads ... ok
[INFO] [stdout] test theme::tests::the_dropped_styles_still_parse_to_hardware ... ok
[INFO] [stdout] test theme::tests::every_pool_folder_with_pictures_is_offered ... ok
[INFO] [stdout] test tweaks::rapidfire_tests::every_modifier_survives_a_round_trip_through_its_key ... ok
[INFO] [stdout] test tweaks::rapidfire_tests::the_offered_choices_all_parse_back_to_themselves ... ok
[INFO] [stdout] test theme::tests::the_installed_count_matches_what_is_on_disk ... ok
[INFO] [stdout] test theme::tests::the_labels_say_what_the_picture_is ... ok
[INFO] [stdout] test theme_remote::tests::the_wrapper_directory_is_stripped ... ok
[INFO] [stdout] test theme_remote::tests::reinstalling_replaces_the_previous_copy ... ok
[INFO] [stdout] test tweaks::rapidfire_tests::the_top_button_choice_warns_that_it_is_not_free ... ok
[INFO] [stdout] test tweaks::tests::both_nes_platforms_get_the_turbo_options ... ok
[INFO] [stdout] test tweaks::tests::every_core_with_options_also_has_a_directory_name ... ok
[INFO] [stdout] test theme_remote::tests::the_repo_name_survives_trailing_punctuation ... ok
[INFO] [stdout] test syncplan::tests::conflicts_come_first ... ok
[INFO] [stdout] test tweaks::tests::the_turbo_remap_exchanges_the_two_buttons ... ok
[INFO] [stdout] test tweaks::tests::every_two_button_console_gets_rapid_fire ... ok
[INFO] [stdout] test tweaks::tests::fbneo_is_told_not_to_refuse_imperfect_sets ... ok
[INFO] [stdout] test tweaks::tests::nothing_is_applied_to_a_platform_that_does_not_need_it ... ok
[INFO] [stdout] test tweaks::tests::remap_lines_are_well_formed_assignments ... ok
[INFO] [stdout] test unitsync::tests::a_file_card_or_a_memcards_folder_is_refused_with_the_way_out ... ok
[INFO] [stdout] test unitsync::tests::only_one_source_per_family ... ok
[INFO] [stdout] test update::tests::a_newer_release_is_reported_with_both_versions ... ok
[INFO] [stdout] test unitsync::tests::a_unit_conflict_is_named_so_resolve_can_find_it ... ok
[INFO] [stdout] test update::tests::a_release_with_no_link_falls_back_to_the_releases_page ... ok
[INFO] [stdout] test update::tests::a_shorter_version_is_padded_rather_than_mismatched ... ok
[INFO] [stdout] test update::tests::an_older_or_equal_release_is_nothing_to_report ... ok
[INFO] [stdout] test update::tests::drafts_and_prereleases_are_never_offered ... ok
[INFO] [stdout] test update::tests::an_unparseable_tag_does_not_panic ... ok
[INFO] [stdout] test update::tests::the_running_version_parses ... ok
[INFO] [stdout] test update::tests::the_same_version_is_not_an_update ... ok
[INFO] [stdout] test util::clock_tests::the_rest_of_the_day_reads_normally ... ok
[INFO] [stdout] test unitsync::tests::a_memory_stick_finds_its_savedata_and_reads_titles ... ok
[INFO] [stdout] test unitsync::tests::a_folder_card_gives_one_unit_per_game_and_keeps_its_own_files ... ok
[INFO] [stdout] test unitsync::tests::a_unit_with_files_in_it_is_kept_here ... ok
[INFO] [stdout] test util::clock_tests::midnight_and_noon_are_twelve_not_zero ... ok
[INFO] [stdout] test util::tests::a_locally_recorded_time_sorts_against_the_servers ... ok
[INFO] [stdout] test util::tests::durations_read_as_someone_would_say_them ... ok
[INFO] [stdout] test util::webview_path_tests::a_verbatim_drive_path_loses_its_prefix ... ok
[INFO] [stdout] test util::tests::human_scales ... ok
[INFO] [stdout] test util::tests::the_clock_agrees_with_dates_whose_answers_are_known ... ok
[INFO] [stdout] test util::webview_path_tests::everything_else_is_left_alone ... ok
[INFO] [stdout] test util::webview_path_tests::a_verbatim_unc_path_becomes_an_ordinary_one ... ok
[INFO] [stdout] test util::tests::tilde_only_expands_a_leading_home_reference ... ok
[INFO] [stdout] test util::replace_tests::a_replaced_file_keeps_its_permissions_and_its_symlink ... ok
[INFO] [stdout] test unitsync::tests::install_data_over_the_limit_is_left_alone_and_said_so ... ok
[INFO] [stdout] test update::tests::versions_compare_as_numbers_not_as_text ... ok
[INFO] [stdout] test favorites::tests::one_starred_list_for_everything_catches_every_system ... ok
[INFO] [stdout] test favorites::tests::a_smart_or_virtual_list_is_never_the_target ... ok
[INFO] [stdout] test favorites::tests::a_system_with_no_list_of_its_own_gets_nothing_by_mistake ... ok
[INFO] [stdout] test favorites::tests::a_star_lands_in_the_list_for_that_system ... ok
[INFO] [stdout] test favorites::tests::the_servers_own_flag_beats_a_name_somebody_typed ... ok
[INFO] [stdout] test favorites::tests::starring_shows_up_at_once_and_unstarring_takes_it_away ... ok
[INFO] [stdout] test favorites::tests::the_count_is_recounted_rather_than_nudged ... ok
[INFO] [stdout] test cache::tests::the_recent_list_honours_its_limit ... ok
[INFO] [stdout] test cache::tests::the_migration_settles_when_nothing_can_still_be_placed ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- shaders::tests::the_chained_preset_is_written_as_an_absolute_path stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'shaders::tests::the_chained_preset_is_written_as_an_absolute_path' (4083) panicked at src/shaders.rs:315:81:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5cfa8f167041 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5cfa8f181c4a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5cfa8f16c81c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5cfa8f13ca46 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5cfa8f15bef9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5cfa8ef2f570 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5cfa8f15c222 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5cfa8f13caf2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5cfa8f134c89 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5cfa8f13dd8d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5cfa8f1823ec - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5cfa8f1821c2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x5cfa8eb96165 - <moose_rack[5b6d1d4904cb2088]::shaders::tests::the_chained_preset_is_written_as_an_absolute_path::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5cfa8ef229bb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   14:     0x5cfa8ef2fb95 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5cfa8ef29484 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5cfa8ef32c22 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5cfa8f16598f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7df2a2376dfa - <unknown>
[INFO] [stdout]   19:     0x7df2a240a3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     shaders::tests::the_chained_preset_is_written_as_an_absolute_path
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 773 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.72s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07", kill_on_drop: false }`
[INFO] [stdout] 4023cc685f6c5441e4566e5134696586f3b3d8f2731bc1a57a3fe46c6f123f07
