[INFO] cloning repository https://github.com/achref-soua/galley
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/achref-soua/galley" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fachref-soua%2Fgalley", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fachref-soua%2Fgalley'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1925f38a7d1311e3e96435e3ba281ec7f4037677
[INFO] testing achref-soua/galley against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fachref-soua%2Fgalley" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/achref-soua/galley
[INFO] finished tweaking git repo https://github.com/achref-soua/galley
[INFO] tweaked toml for git repo https://github.com/achref-soua/galley written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/achref-soua/galley on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/achref-soua/galley 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807
[INFO] running `Command { std: "docker" "start" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", 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" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", 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" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling galley-core v0.9.5 (/opt/rustwide/workdir/crates/galley-core)
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling lzma-rs v0.3.0
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling deflate64 v0.1.12
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling galley-security v0.9.5 (/opt/rustwide/workdir/crates/galley-security)
[INFO] [stderr]    Compiling xz2 v0.1.7
[INFO] [stderr]    Compiling galley-vcs v0.9.5 (/opt/rustwide/workdir/crates/galley-vcs)
[INFO] [stderr]    Compiling galley-ai v0.9.5 (/opt/rustwide/workdir/crates/galley-ai)
[INFO] [stderr]    Compiling galley-compile v0.9.5 (/opt/rustwide/workdir/crates/galley-compile)
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling bzip2 v0.5.2
[INFO] [stderr]    Compiling time v0.3.49
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling galley-intel v0.9.5 (/opt/rustwide/workdir/crates/galley-intel)
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling galley-import v0.9.5 (/opt/rustwide/workdir/crates/galley-import)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.23s
[INFO] running `Command { std: "docker" "inspect" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", 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" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling galley-ai v0.9.5 (/opt/rustwide/workdir/crates/galley-ai)
[INFO] [stderr]    Compiling galley-core v0.9.5 (/opt/rustwide/workdir/crates/galley-core)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling galley-intel v0.9.5 (/opt/rustwide/workdir/crates/galley-intel)
[INFO] [stderr]    Compiling galley-security v0.9.5 (/opt/rustwide/workdir/crates/galley-security)
[INFO] [stderr]    Compiling galley-compile v0.9.5 (/opt/rustwide/workdir/crates/galley-compile)
[INFO] [stderr]    Compiling galley-vcs v0.9.5 (/opt/rustwide/workdir/crates/galley-vcs)
[INFO] [stderr]    Compiling galley-import v0.9.5 (/opt/rustwide/workdir/crates/galley-import)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.21s
[INFO] running `Command { std: "docker" "inspect" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", 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" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/galley_ai-c56c0a29f85614a1)
[INFO] [stdout] 
[INFO] [stdout] running 42 tests
[INFO] [stdout] test mcp::tests::for_role_citation_librarian_allows_lookup_patch ... ok
[INFO] [stdout] test mcp::tests::for_role_compile_fixer_allows_compile_diagnostics_patch ... ok
[INFO] [stdout] test mcp::tests::for_role_figure_wright_allows_assets_patch ... ok
[INFO] [stdout] test mcp::tests::for_role_orchestrator_has_no_tools ... ok
[INFO] [stdout] test mcp::tests::for_role_stylist_allows_read_patch ... ok
[INFO] [stdout] test mcp::tests::for_role_reviewer_allows_read_search_diagnostics_but_not_patch ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_empty_inner_returns_none ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_extracts_first_occurrence_only ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_extracts_name_and_arg ... ok
[INFO] [stdout] test mcp::tests::for_role_writer_allows_read_search_patch ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_multi_word_arg ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_no_arg_gives_empty_string ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_no_closing_bracket_returns_none ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_no_marker_returns_none ... ok
[INFO] [stdout] test mcp::tests::router_debug_clone ... ok
[INFO] [stdout] test mcp::tests::parse_tool_call_unknown_name_returns_none ... ok
[INFO] [stdout] test mcp::tests::router_denies_disallowed_call ... ok
[INFO] [stdout] test mcp::tests::router_for_role_builds_correct_permissions ... ok
[INFO] [stdout] test mcp::tests::router_permissions_accessor ... ok
[INFO] [stdout] test mcp::tests::router_permits_allowed_call ... ok
[INFO] [stdout] test mcp::tests::tool_call_eq_clone_debug ... ok
[INFO] [stdout] test mcp::tests::tool_call_new_stores_fields ... ok
[INFO] [stdout] test mcp::tests::tool_name_as_str_round_trips_through_parse ... ok
[INFO] [stdout] test mcp::tests::tool_name_debug_eq_copy ... ok
[INFO] [stdout] test mcp::tests::tool_name_description_is_non_empty ... ok
[INFO] [stdout] test mcp::tests::tool_name_parse_unknown_returns_none ... ok
[INFO] [stdout] test mcp::tests::tool_permissions_all_allows_every_tool ... ok
[INFO] [stdout] test mcp::tests::tool_permissions_eq_clone_debug ... ok
[INFO] [stdout] test mcp::tests::tool_permissions_allowed_tools_matches_constructor ... ok
[INFO] [stdout] test mcp::tests::tool_permissions_none_denies_every_tool ... ok
[INFO] [stdout] test tests::active_id_not_in_providers_list_returns_not_configured ... ok
[INFO] [stdout] test tests::adapter_error_propagates ... ok
[INFO] [stdout] test tests::active_provider_id_reflects_config ... ok
[INFO] [stdout] test tests::config_accessor_returns_reference ... ok
[INFO] [stdout] test mcp::tests::tool_permissions_new_allows_only_listed_tools ... ok
[INFO] [stdout] test tests::local_only_blocks_cloud_provider ... ok
[INFO] [stdout] test tests::no_active_provider_returns_not_configured ... ok
[INFO] [stdout] test tests::local_only_allows_local_provider ... ok
[INFO] [stdout] test tests::no_consent_returns_not_configured ... ok
[INFO] [stdout] test tests::successful_completion_routes_to_active_adapter ... ok
[INFO] [stdout] test tests::mock_provider_counts_calls_and_err_variant ... ok
[INFO] [stdout] test tests::is_local_only_reflects_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test cache::tests::a_changed_source_is_a_miss_and_recompiles ... ok
[INFO] [stdout] test cache::tests::a_miss_runs_the_engine_and_a_repeat_is_served_from_cache ... ok
[INFO] [stdout] test cache::tests::cache_key_distinguishes_source_root_and_engine ... ok
[INFO] [stdout] test cache::tests::lookup_misses_on_an_empty_cache_and_on_a_different_key ... ok
[INFO] [stdout] test cache::tests::the_engine_runs_exactly_once_for_repeated_identical_input ... ok
[INFO] [stdout] test cache::tests::types_support_their_derives ... ok
[INFO] [stdout] test tests::compiles_a_valid_request_through_the_engine ... ok
[INFO] [stdout] test tests::engine_failure_is_a_standard_error ... ok
[INFO] [stdout] test tests::rejects_an_unbuildable_request_before_the_engine ... ok
[INFO] [stdout] test tests::surfaces_an_engine_failure_with_its_log ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/galley_compile-51b0bbaa6bc743a5)
[INFO] [stderr]      Running tests/real_compile.rs (/opt/rustwide/target/debug/deps/real_compile-d24f1c4fb32fe3d9)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/galley_core-eed923791f7f1a6d)
[INFO] [stdout] 
[INFO] [stdout] running 366 tests
[INFO] [stdout] test agents::tests::agent_plan_len_and_is_empty ... ok
[INFO] [stdout] test agents::tests::agent_plan_eq_clone_debug ... ok
[INFO] [stdout] test agents::tests::agent_plan_new_stores_goal_and_steps ... ok
[INFO] [stdout] test agents::tests::agent_role_debug_eq_copy ... ok
[INFO] [stdout] test agents::tests::agent_role_id_round_trips_through_parse ... ok
[INFO] [stdout] test agents::tests::agent_role_label_is_non_empty_for_all_variants ... ok
[INFO] [stdout] test agents::tests::agent_role_parse_unknown_returns_none ... ok
[INFO] [stdout] test agents::tests::agent_role_system_prompt_is_non_empty_for_all_variants ... ok
[INFO] [stdout] test agents::tests::agent_task_eq_clone_debug ... ok
[INFO] [stdout] test agents::tests::agent_task_new_stores_fields ... ok
[INFO] [stdout] test agents::tests::agent_task_simple_has_empty_context ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_returns_empty_for_empty_input ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_extracts_agent_task_pairs ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_empty_task_description ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_lines_missing_agent_marker ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_lines_missing_task_marker ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_lines_with_unclosed_agent_bracket ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_lines_with_unclosed_task_bracket ... ok
[INFO] [stdout] test agents::tests::parse_plan_response_skips_unknown_agent_ids ... ok
[INFO] [stdout] test agents::tests::plan_goal_bibliography_triggers_citation_librarian ... ok
[INFO] [stdout] test agents::tests::plan_goal_citation_triggers_citation_librarian ... ok
[INFO] [stdout] test agents::tests::plan_goal_figure_triggers_figure_wright ... ok
[INFO] [stdout] test agents::tests::plan_goal_fix_error_triggers_compile_fixer ... ok
[INFO] [stdout] test agents::tests::plan_goal_preserves_original_goal_string ... ok
[INFO] [stdout] test agents::tests::plan_goal_review_triggers_reviewer ... ok
[INFO] [stdout] test agents::tests::plan_goal_skips_writer_when_steps_already_present_and_no_write_keywords ... ok
[INFO] [stdout] test agents::tests::plan_goal_combined_triggers_multiple_agents ... ok
[INFO] [stdout] test agents::tests::plan_goal_unknown_falls_back_to_writer ... ok
[INFO] [stdout] test agents::tests::plan_goal_write_triggers_writer ... ok
[INFO] [stdout] test ai::tests::gateway_config_active_returns_none_when_id_missing ... ok
[INFO] [stdout] test ai::tests::gateway_config_active_returns_none_when_not_set ... ok
[INFO] [stdout] test ai::tests::gateway_config_active_returns_the_matching_provider ... ok
[INFO] [stdout] test ai::tests::gateway_config_allows_cloud_when_not_local_only ... ok
[INFO] [stdout] test ai::tests::gateway_config_blocks_cloud_when_local_only ... ok
[INFO] [stdout] test ai::tests::gateway_config_debug ... ok
[INFO] [stdout] test ai::tests::gateway_config_new_and_default_are_empty ... ok
[INFO] [stdout] test ai::tests::llm_error_display ... ok
[INFO] [stdout] test ai::tests::llm_error_eq_and_debug ... ok
[INFO] [stdout] test ai::tests::llm_response_eq_and_debug ... ok
[INFO] [stdout] test ai::tests::llm_message_user_and_system_constructors ... ok
[INFO] [stdout] test assets::tests::figure_snippet_with_subdirectory_path ... ok
[INFO] [stdout] test ai::tests::project_ai_consent_with_cloud_enabled ... ok
[INFO] [stdout] test ai::tests::llm_message_eq_and_debug ... ok
[INFO] [stdout] test ai::tests::provider_debug_and_eq ... ok
[INFO] [stdout] test ai::tests::project_ai_consent_default_denied ... ok
[INFO] [stdout] test assets::tests::figure_snippet_wraps_rel_path ... ok
[INFO] [stdout] test ai::tests::llm_request_new_stores_fields ... ok
[INFO] [stdout] test assets::tests::needs_graphicspath_false_when_graphicspath_already_set ... ok
[INFO] [stdout] test assets::tests::needs_graphicspath_false_when_no_includegraphics ... ok
[INFO] [stdout] test ai::tests::provider_is_local_by_default ... ok
[INFO] [stdout] test ai::tests::provider_config_debug_and_eq ... ok
[INFO] [stdout] test assistant::tests::chat_intent_explain_stores_fields ... ok
[INFO] [stdout] test assistant::tests::chat_intent_fix_error_stores_fields ... ok
[INFO] [stdout] test assistant::tests::chat_message_constructors_set_role_and_content ... ok
[INFO] [stdout] test assistant::tests::chat_intent_transform_stores_field ... ok
[INFO] [stdout] test assets::tests::needs_graphicspath_true_when_includegraphics_without_path ... ok
[INFO] [stdout] test agents::tests::plan_goal_style_triggers_stylist ... ok
[INFO] [stdout] test ai::tests::provider_config_new_stores_all_fields ... ok
[INFO] [stdout] test ai::tests::project_ai_consent_eq_copy_debug ... ok
[INFO] [stdout] test ai::tests::llm_error_is_std_error ... ok
[INFO] [stdout] test assistant::tests::chat_message_eq_clone_debug ... ok
[INFO] [stdout] test ai::tests::provider_as_str_round_trips ... ok
[INFO] [stdout] test ai::tests::provider_parse_unknown_returns_none ... ok
[INFO] [stdout] test assistant::tests::chat_thread_default_is_empty ... ok
[INFO] [stdout] test assistant::tests::chat_thread_starts_empty ... ok
[INFO] [stdout] test assistant::tests::chat_thread_trim_to_drops_oldest ... ok
[INFO] [stdout] test assistant::tests::chat_role_as_str_round_trips ... ok
[INFO] [stdout] test assistant::tests::explain_prompt_with_context_includes_surrounding_block ... ok
[INFO] [stdout] test assistant::tests::explain_prompt_without_context_starts_with_system_and_ends_with_user ... ok
[INFO] [stdout] test assistant::tests::prompt_includes_history_messages_between_system_and_user ... ok
[INFO] [stdout] test assistant::tests::chat_role_parse_unknown_returns_none ... ok
[INFO] [stdout] test ai::tests::provider_parse_known_kinds ... ok
[INFO] [stdout] test assistant::tests::transform_prompt_contains_selection ... ok
[INFO] [stdout] test bibliography::tests::accepts_punctuated_field_names ... ok
[INFO] [stdout] test assistant::tests::chat_thread_trim_to_is_noop_when_at_or_below_max ... ok
[INFO] [stdout] test assistant::tests::fix_error_prompt_contains_error_log_and_snippet ... ok
[INFO] [stdout] test assistant::tests::chat_role_debug_eq_copy ... ok
[INFO] [stdout] test assistant::tests::prompt_with_empty_history_has_only_system_and_user ... ok
[INFO] [stdout] test assistant::tests::chat_thread_debug ... ok
[INFO] [stdout] test bibliography::tests::arxiv_atom_to_entry_without_authors_uses_id_key ... ok
[INFO] [stdout] test bibliography::tests::bib_entry_lowercases_its_type_and_looks_up_fields ... ok
[INFO] [stdout] test bibliography::tests::bib_field_lowercases_its_name ... ok
[INFO] [stdout] test bibliography::tests::empty_and_keyless_inputs ... ok
[INFO] [stdout] test assistant::tests::chat_thread_push_and_len ... ok
[INFO] [stdout] test bibliography::tests::serializes_a_list_with_blank_line_separators ... ok
[INFO] [stdout] test bibliography::tests::serializes_an_entry_round_trip ... ok
[INFO] [stdout] test bibliography::tests::suggest_cite_key_builds_surname_plus_year ... ok
[INFO] [stdout] test bibliography::tests::arxiv_atom_to_entry_extracts_full_metadata ... ok
[INFO] [stdout] test bibliography::tests::skips_special_blocks ... ok
[INFO] [stdout] test bibliography::tests::serializes_an_entry_with_no_fields ... ok
[INFO] [stdout] test bibliography::tests::entry_summary_combines_author_year_and_title ... ok
[INFO] [stdout] test bibliography::tests::extract_all_collects_and_stops_on_malformed_markup ... ok
[INFO] [stdout] test bibliography::tests::tolerates_malformed_and_truncated_input ... ok
[INFO] [stdout] test checkpoint::tests::checkpoint_clone_eq_debug ... ok
[INFO] [stdout] test checkpoint::tests::checkpoint_new_stores_name_and_content ... ok
[INFO] [stdout] test checkpoint::tests::names_preserves_insertion_order ... ok
[INFO] [stdout] test checkpoint::tests::revert_to_does_not_mutate_the_store ... ok
[INFO] [stdout] test checkpoint::tests::revert_to_returns_content_for_known_name ... ok
[INFO] [stdout] test checkpoint::tests::revert_to_returns_none_for_unknown_name ... ok
[INFO] [stdout] test bibliography::tests::extract_tag_handles_missing_and_malformed_markup ... ok
[INFO] [stdout] test bibliography::tests::handles_nested_braces_in_values ... ok
[INFO] [stdout] test bibliography::tests::parses_a_single_entry_with_mixed_delimiters ... ok
[INFO] [stdout] test bibliography::tests::parses_bare_values_terminated_by_comma_or_brace ... ok
[INFO] [stdout] test bibliography::tests::parses_multiple_entries_and_ignores_surrounding_noise ... ok
[INFO] [stdout] test bibliography::tests::arxiv_atom_to_entry_rejects_empty_or_titleless_input ... ok
[INFO] [stdout] test checkpoint::tests::push_increments_len_and_clears_empty ... ok
[INFO] [stdout] test checkpoint::tests::revert_to_returns_most_recent_when_name_duplicated ... ok
[INFO] [stdout] test compile::tests::derives_job_name_by_stripping_the_tex_extension ... ok
[INFO] [stdout] test checkpoint::tests::store_clone_eq_debug ... ok
[INFO] [stdout] test compile::tests::plan_errors_describe_themselves ... ok
[INFO] [stdout] test checkpoint::tests::store_default_is_empty ... ok
[INFO] [stdout] test compile::tests::rejects_an_empty_root_document ... ok
[INFO] [stdout] test checkpoint::tests::store_names_yields_nothing_when_empty ... ok
[INFO] [stdout] test checkpoint::tests::store_new_is_empty ... ok
[INFO] [stdout] test checkpoint::tests::store_revert_to_returns_none_when_empty ... ok
[INFO] [stdout] test compile::tests::carries_the_project_root_into_the_plan ... ok
[INFO] [stdout] test compile::tests::engine_has_a_stable_label ... ok
[INFO] [stdout] test compile::tests::rejects_a_non_tex_root_document ... ok
[INFO] [stdout] test compile::tests::shell_escape_defaults_to_off_and_can_be_overridden ... ok
[INFO] [stdout] test diagnostics::tests::a_badbox_without_a_line_is_still_reported ... ok
[INFO] [stdout] test compile::tests::types_support_their_derives ... ok
[INFO] [stdout] test diagnostics::tests::a_location_line_with_no_pending_error_is_ignored ... ok
[INFO] [stdout] test diagnostics::tests::an_empty_log_has_no_diagnostics ... ok
[INFO] [stdout] test compile::tests::plans_a_valid_request ... ok
[INFO] [stdout] test diagnostics::tests::a_plain_package_warning_is_not_mistaken_for_a_rerun ... ok
[INFO] [stdout] test diagnostics::tests::an_undefined_control_sequence_without_a_named_command_keeps_its_line ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_generic_latex_error ... ok
[INFO] [stdout] test compile::tests::reports_track_success_and_failure ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_generic_latex_warning ... ok
[INFO] [stdout] test compile::tests::results_carry_bytes_only_on_success ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_missing_file_and_names_it ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_package_warning ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_rerun_request_from_latex_with_no_line ... ok
[INFO] [stdout] test diagnostics::tests::detects_an_empty_bibliography_warning_with_its_line ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_runaway_argument_from_a_paragraph_end ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_mismatched_environment ... ok
[INFO] [stdout] test diagnostics::tests::detects_an_overfull_box_with_a_line_range ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_plain_tex_error ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_runaway_argument_from_a_scanning_end ... ok
[INFO] [stdout] test diagnostics::tests::detects_an_undefined_reference_warning ... ok
[INFO] [stdout] test diagnostics::tests::detects_an_undefined_citation_warning ... ok
[INFO] [stdout] test diagnostics::tests::detects_and_names_an_undefined_control_sequence ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_rerun_request_from_a_package_with_a_line ... ok
[INFO] [stdout] test diagnostics::tests::every_kind_has_distinct_metadata ... ok
[INFO] [stdout] test diagnostics::tests::helper_clean_trims_space_and_trailing_dots ... ok
[INFO] [stdout] test diagnostics::tests::detects_the_inputenc_ignored_note ... ok
[INFO] [stdout] test diagnostics::tests::helper_last_command_finds_the_final_token ... ok
[INFO] [stdout] test diagnostics::tests::helper_package_error_needs_both_markers ... ok
[INFO] [stdout] test diagnostics::tests::diagnostic_supports_its_derives ... ok
[INFO] [stdout] test diagnostics::tests::detects_a_package_error ... ok
[INFO] [stdout] test diagnostics::tests::helper_quoted_extracts_backtick_apostrophe_text ... ok
[INFO] [stdout] test diagnostics::tests::detects_missing_math_mode ... ok
[INFO] [stdout] test diagnostics::tests::helper_input_line_reads_the_trailing_number ... ok
[INFO] [stdout] test diagnostics::tests::helper_leading_u32_handles_digits_text_and_overflow ... ok
[INFO] [stdout] test diagnostics::tests::helper_package_warning_body_needs_both_markers ... ok
[INFO] [stdout] test diagnostics::tests::helper_parse_location_line_needs_the_prefix_and_a_number ... ok
[INFO] [stdout] test diagnostics::tests::severities_have_stable_labels ... ok
[INFO] [stdout] test diagnostics::tests::severity_groups_are_correct ... ok
[INFO] [stdout] test diagnostics::tests::helper_at_line_reads_plural_and_singular_forms ... ok
[INFO] [stdout] test diagnostics::tests::detects_an_underfull_box_with_a_single_line ... ok
[INFO] [stdout] test diagnostics::tests::lint_diagnostics_carry_their_own_severity ... ok
[INFO] [stdout] test diagnostics::tests::parses_a_full_log_with_several_problems_in_order ... ok
[INFO] [stdout] test document::tests::basename_handles_nested_and_top_level ... ok
[INFO] [stdout] test document::tests::classifies_by_extension ... ok
[INFO] [stdout] test document::tests::detects_a_root_document_body ... ok
[INFO] [stdout] test document::tests::kind_derives_are_usable ... ok
[INFO] [stdout] test document::tests::new_document_classifies_its_path ... ok
[INFO] [stdout] test document::tests::picks_nothing_when_empty ... ok
[INFO] [stdout] test document::tests::prefers_documentclass_over_name_over_first ... ok
[INFO] [stdout] test export::tests::debug_and_clone ... ok
[INFO] [stdout] test document::tests::recognises_the_main_filename ... ok
[INFO] [stdout] test export::tests::default_filename_incorporates_project_name_and_extension ... ok
[INFO] [stdout] test export::tests::every_format_has_a_non_empty_extension ... ok
[INFO] [stdout] test export::tests::every_format_has_a_non_empty_label ... ok
[INFO] [stdout] test export::tests::known_extensions ... ok
[INFO] [stdout] test export::tests::known_labels ... ok
[INFO] [stdout] test export::tests::non_pandoc_formats_return_none ... ok
[INFO] [stdout] test export::tests::requires_pandoc_matches_pandoc_format ... ok
[INFO] [stdout] test hash::tests::different_inputs_hash_differently ... ok
[INFO] [stdout] test hash::tests::empty_input_hashes_to_the_offset_basis ... ok
[INFO] [stdout] test import::tests::analyze_detects_biber ... ok
[INFO] [stdout] test hash::tests::equal_inputs_hash_equal ... ok
[INFO] [stdout] test import::tests::analyze_detects_engine_from_latexmkrc ... ok
[INFO] [stdout] test import::tests::analyze_detects_engine_from_program_comment ... ok
[INFO] [stdout] test import::tests::analyze_detects_bibtex_backend_override ... ok
[INFO] [stdout] test import::tests::analyze_detects_classic_bibtex ... ok
[INFO] [stdout] test import::tests::analyze_detects_root_via_tex_root_hint ... ok
[INFO] [stdout] test import::tests::analyze_detects_utf8_encoding ... ok
[INFO] [stdout] test import::tests::bib_tool_labels ... ok
[INFO] [stdout] test import::tests::clean_export_no_galley_paths_unchanged ... ok
[INFO] [stdout] test import::tests::deduplicates_packages ... ok
[INFO] [stdout] test import::tests::detects_setmainfont ... ok
[INFO] [stdout] test export::tests::pandoc_formats_return_a_target_string ... ok
[INFO] [stdout] test import::tests::detects_utf8_encoding ... ok
[INFO] [stdout] test import::tests::analyze_detects_root_via_documentclass ... ok
[INFO] [stdout] test import::tests::empty_font_braces_are_skipped ... ok
[INFO] [stdout] test import::tests::analyze_detects_xelatex_engine_from_fontspec ... ok
[INFO] [stdout] test import::tests::encoding_unclosed_bracket_returns_empty ... ok
[INFO] [stdout] test import::tests::analyze_empty_entries ... ok
[INFO] [stdout] test import::tests::encoding_line_no_brackets_returns_empty ... ok
[INFO] [stdout] test hash::tests::matches_the_known_fnv1a_vector ... ok
[INFO] [stdout] test import::tests::extracts_simple_packages ... ok
[INFO] [stdout] test import::tests::bib_tool_derives ... ok
[INFO] [stdout] test import::tests::file_entry_new_and_as_text ... ok
[INFO] [stdout] test import::tests::font_command_without_braces_is_skipped ... ok
[INFO] [stdout] test import::tests::empty_packages_no_latexmk ... ok
[INFO] [stdout] test import::tests::clean_export_strips_galley_paths ... ok
[INFO] [stdout] test import::tests::is_latexmkrc_detects_both_forms ... ok
[INFO] [stdout] test import::tests::latexmkrc_engine_lualatex ... ok
[INFO] [stdout] test import::tests::latexmkrc_engine_xelatex ... ok
[INFO] [stdout] test import::tests::file_entry_derives ... ok
[INFO] [stdout] test import::tests::extracts_bracketed_and_multi_package ... ok
[INFO] [stdout] test import::tests::analyze_skips_binary_entries ... ok
[INFO] [stdout] test import::tests::fontspec_triggers_latexmk ... ok
[INFO] [stdout] test import::tests::file_entry_binary_as_text_returns_none ... ok
[INFO] [stdout] test import::tests::no_font_commands_returns_empty ... ok
[INFO] [stdout] test import::tests::latexmkrc_engine_no_match ... ok
[INFO] [stdout] test import::tests::program_comment_xelatex ... ok
[INFO] [stdout] test import::tests::pstricks_triggers_latexmk ... ok
[INFO] [stdout] test import::tests::latexmkrc_present_but_no_engine_falls_through ... ok
[INFO] [stdout] test import::tests::skips_non_tex_files_for_packages ... ok
[INFO] [stdout] test import::tests::no_inputenc_returns_empty ... ok
[INFO] [stdout] test import::tests::tex_engine_derives ... ok
[INFO] [stdout] test import::tests::no_special_packages_no_latexmk ... ok
[INFO] [stdout] test import::tests::program_comment_pdflatex ... ok
[INFO] [stdout] test import::tests::tex_root_hint_classic_form ... ok
[INFO] [stdout] test import::tests::program_comment_spaced_lualatex ... ok
[INFO] [stdout] test import::tests::project_profile_derives ... ok
[INFO] [stdout] test import::tests::program_comment_absent ... ok
[INFO] [stdout] test import::tests::trailing_comma_in_usepackage_skips_empty_name ... ok
[INFO] [stdout] test import::tests::tex_engine_labels ... ok
[INFO] [stdout] test import::tests::usepackage_without_braces_is_skipped ... ok
[INFO] [stdout] test import::tests::usepackage_unclosed_brace_is_skipped ... ok
[INFO] [stdout] test import::tests::tex_root_hint_empty_content ... ok
[INFO] [stdout] test include_graph::tests::finds_multiple_includes_on_one_line ... ok
[INFO] [stdout] test import::tests::tex_root_hint_empty_value_skipped ... ok
[INFO] [stdout] test include_graph::tests::ignores_empty_braces ... ok
[INFO] [stdout] test import::tests::tex_root_hint_unrelated_line_skipped ... ok
[INFO] [stdout] test import::tests::tex_root_hint_spaced_form ... ok
[INFO] [stdout] test include_graph::tests::empty_source_produces_no_includes ... ok
[INFO] [stdout] test include_graph::tests::resolve_returns_empty_for_empty_input ... ok
[INFO] [stdout] test include_graph::tests::strip_comment_covers_both_arms ... ok
[INFO] [stdout] test include_graph::tests::strips_inline_comment_before_searching ... ok
[INFO] [stdout] test include_graph::tests::finds_input_include_and_subfile ... ok
[INFO] [stdout] test intel::tests::completion_item_falls_back_to_label_for_insertion ... ok
[INFO] [stdout] test include_graph::tests::handles_missing_closing_brace ... ok
[INFO] [stdout] test include_graph::tests::resolve_appends_tex_to_extensionless_paths ... ok
[INFO] [stdout] test intel::tests::completion_kinds_have_stable_labels ... ok
[INFO] [stdout] test include_graph::tests::skips_fully_commented_lines ... ok
[INFO] [stdout] test include_graph::tests::trims_whitespace_in_paths ... ok
[INFO] [stdout] test intel::tests::hover_carries_its_contents ... ok
[INFO] [stdout] test include_graph::tests::resolve_leaves_paths_with_extensions_unchanged ... ok
[INFO] [stdout] test intel::tests::location_pairs_a_file_with_a_position ... ok
[INFO] [stdout] test intel::tests::text_document_holds_uri_and_text ... ok
[INFO] [stdout] test intel::tests::the_port_can_be_implemented_and_driven ... ok
[INFO] [stdout] test intel::tests::position_holds_zero_based_coordinates ... ok
[INFO] [stdout] test manifest::tests::ignores_comments_blank_lines_and_unknown_keys ... ok
[INFO] [stdout] test manifest::tests::manifest_derives_are_usable ... ok
[INFO] [stdout] test intel::tests::symbol_kinds_have_stable_labels ... ok
[INFO] [stdout] test manifest::tests::rejects_malformed_lines ... ok
[INFO] [stdout] test manifest::tests::reports_each_missing_field ... ok
[INFO] [stdout] test manifest::tests::round_trips_through_text ... ok
[INFO] [stdout] test math::tests::display_wraps_with_bracket_notation ... ok
[INFO] [stdout] test manifest::tests::unquote_rejects_bad_quoting ... ok
[INFO] [stdout] test manifest::tests::error_messages_are_distinct ... ok
[INFO] [stdout] test intel::tests::document_symbol_counts_its_subtree ... ok
[INFO] [stdout] test perf::tests::a_measurement_within_every_budget_passes ... ok
[INFO] [stdout] test perf::tests::a_single_overage_fails_the_report ... ok
[INFO] [stdout] test perf::tests::debounce_floor_for_tiny_documents ... ok
[INFO] [stdout] test perf::tests::debounce_is_clamped_at_the_ceiling ... ok
[INFO] [stdout] test perf::tests::debounce_scales_with_size ... ok
[INFO] [stdout] test perf::tests::derived_traits_are_exercised ... ok
[INFO] [stdout] test perf::tests::within_fails_above_budget ... ok
[INFO] [stdout] test perf::tests::within_passes_at_or_below_budget ... ok
[INFO] [stdout] test perf::tests::is_pass_reflects_the_variant ... ok
[INFO] [stdout] test perf::tests::reference_budget_matches_the_plan ... ok
[INFO] [stdout] test project::tests::builds_a_project ... ok
[INFO] [stdout] test project::tests::names_fall_back_at_the_filesystem_root ... ok
[INFO] [stdout] test project::tests::project_derives_are_usable ... ok
[INFO] [stdout] test sandbox::tests::accepts_empty_path ... ok
[INFO] [stdout] test sandbox::tests::accepts_normal_relative_paths ... ok
[INFO] [stdout] test sandbox::tests::combined_violations_both_reported ... ok
[INFO] [stdout] test sandbox::tests::clean_source_produces_clean_report ... ok
[INFO] [stdout] test sandbox::tests::detects_immediate_write18 ... ok
[INFO] [stdout] test sandbox::tests::detects_directlua ... ok
[INFO] [stdout] test sandbox::tests::detects_write18 ... ok
[INFO] [stdout] test sandbox::tests::detects_luaexec ... ok
[INFO] [stdout] test project::tests::names_from_a_normal_path ... ok
[INFO] [stdout] test sandbox::tests::detects_multiple_occurrences ... ok
[INFO] [stdout] test sandbox::tests::detects_shell_escape_macro ... ok
[INFO] [stdout] test sandbox::tests::detects_pipe_input ... ok
[INFO] [stdout] test sandbox::tests::extracts_include_and_subfile ... ok
[INFO] [stdout] test sandbox::tests::extracts_multiple_inputs ... ok
[INFO] [stdout] test math::tests::inline_wraps_with_dollar_signs ... ok
[INFO] [stdout] test sandbox::tests::extracts_simple_input ... ok
[INFO] [stdout] test sandbox::tests::flags_absolute_unix_path ... ok
[INFO] [stdout] test sandbox::tests::flags_absolute_windows_backslash ... ok
[INFO] [stdout] test sandbox::tests::flags_dotdot_traversal ... ok
[INFO] [stdout] test sandbox::tests::flags_pipe_input ... ok
[INFO] [stdout] test sandbox::tests::flags_windows_drive_letter ... ok
[INFO] [stdout] test sandbox::tests::handles_nested_braces_in_argument ... ok
[INFO] [stdout] test sandbox::tests::policy_derives_are_usable ... ok
[INFO] [stdout] test sandbox::tests::policy_displays_stable_labels ... ok
[INFO] [stdout] test sandbox::tests::report_derives_are_usable ... ok
[INFO] [stdout] test sandbox::tests::returns_empty_for_clean_source ... ok
[INFO] [stdout] test sandbox::tests::returns_empty_when_no_inputs ... ok
[INFO] [stdout] test sandbox::tests::shell_escape_makes_report_dirty ... ok
[INFO] [stdout] test sandbox::tests::skips_empty_or_whitespace_only_arguments ... ok
[INFO] [stdout] test sandbox::tests::traversal_input_makes_report_dirty ... ok
[INFO] [stdout] test sandbox::tests::trims_whitespace_in_argument ... ok
[INFO] [stdout] test search::tests::case_sensitive_match ... ok
[INFO] [stdout] test search::tests::case_sensitive_no_match ... ok
[INFO] [stdout] test search::tests::case_insensitive_default ... ok
[INFO] [stdout] test search::tests::empty_pattern_returns_nothing ... ok
[INFO] [stdout] test search::tests::content_with_crlf_endings ... ok
[INFO] [stdout] test search::tests::invalid_regex_returns_nothing ... ok
[INFO] [stdout] test search::tests::literal_dot_not_treated_as_regex ... ok
[INFO] [stdout] test search::tests::line_text_is_full_line ... ok
[INFO] [stdout] test search::tests::multiline_line_numbers ... ok
[INFO] [stdout] test search::tests::multiple_matches_on_same_line ... ok
[INFO] [stdout] test search::tests::no_match_returns_nothing ... ok
[INFO] [stdout] test search::tests::simple_literal_match ... ok
[INFO] [stdout] test synctex::tests::synctex_box_fields_and_derives ... ok
[INFO] [stdout] test search::tests::match_offsets_correct ... ok
[INFO] [stdout] test synctex::tests::synctex_location_fields_and_derives ... ok
[INFO] [stdout] test table::tests::align_derives ... ok
[INFO] [stdout] test search::tests::whole_word_match ... ok
[INFO] [stdout] test search::tests::whole_word_no_match_inside_word ... ok
[INFO] [stdout] test table::tests::align_spec_chars ... ok
[INFO] [stdout] test table::tests::booktabs_empty_data_rows ... ok
[INFO] [stdout] test table::tests::booktabs_with_header_and_data ... ok
[INFO] [stdout] test table::tests::tabular_empty_rows ... ok
[INFO] [stdout] test table::tests::tabular_header_and_data_rows ... ok
[INFO] [stdout] test search::tests::regex_match ... ok
[INFO] [stdout] test table::tests::tabular_one_header_row ... ok
[INFO] [stdout] test tests::brand_constants_are_set ... ok
[INFO] [stdout] test tests::displays_in_canonical_form ... ok
[INFO] [stdout] test tests::orders_and_compares_versions ... ok
[INFO] [stdout] test tests::parse_error_derives_are_usable ... ok
[INFO] [stdout] test tests::parses_a_well_formed_version ... ok
[INFO] [stdout] test tests::rejects_non_numeric_parts ... ok
[INFO] [stdout] test tests::rejects_too_few_parts ... ok
[INFO] [stdout] test tests::parse_error_messages_are_distinct ... ok
[INFO] [stdout] test tests::rejects_too_many_parts ... ok
[INFO] [stdout] test time::tests::formats_known_timestamps ... ok
[INFO] [stdout] test time::tests::formats_the_epoch ... ok
[INFO] [stdout] test vcs::tests::diff_both_empty ... ok
[INFO] [stdout] test vcs::tests::diff_identical_content_all_context ... ok
[INFO] [stdout] test vcs::tests::diff_interleaved_changes ... ok
[INFO] [stdout] test vcs::tests::diff_kind_copy_and_debug ... ok
[INFO] [stdout] test vcs::tests::diff_line_clone_and_eq ... ok
[INFO] [stdout] test vcs::tests::diff_line_construction ... ok
[INFO] [stdout] test vcs::tests::diff_new_empty_removes_all ... ok
[INFO] [stdout] test vcs::tests::diff_new_only_content ... ok
[INFO] [stdout] test vcs::tests::diff_old_empty_adds_all ... ok
[INFO] [stdout] test vcs::tests::diff_replacement ... ok
[INFO] [stdout] test vcs::tests::diff_single_line_addition ... ok
[INFO] [stdout] test vcs::tests::diff_single_line_removal ... ok
[INFO] [stdout] test vcs::tests::snapshot_entry_auto_not_named ... ok
[INFO] [stdout] test vcs::tests::snapshot_entry_clone_eq ... ok
[INFO] [stdout] test vcs::tests::snapshot_entry_constructor_and_fields ... ok
[INFO] [stdout] test vcs::tests::stats_addition ... ok
[INFO] [stdout] test vcs::tests::stats_both_empty ... ok
[INFO] [stdout] test vcs::tests::stats_identical ... ok
[INFO] [stdout] test vcs::tests::stats_mixed ... ok
[INFO] [stdout] test vcs::tests::stats_removal ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 366 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/galley_import-f266145b0806997a)
[INFO] [stdout] 
[INFO] [stdout] running 61 tests
[INFO] [stdout] test archive::tests::archive_error_bad_archive_display ... ok
[INFO] [stdout] test archive::tests::archive_error_io_display_and_source ... ok
[INFO] [stdout] test archive::tests::archive_error_file_too_large_display ... ok
[INFO] [stdout] test archive::tests::archive_error_symlink_display ... ok
[INFO] [stdout] test archive::tests::archive_error_too_many_files_display ... ok
[INFO] [stdout] test archive::tests::archive_error_total_too_large_display ... ok
[INFO] [stdout] test archive::tests::archive_limits_default_and_derives ... ok
[INFO] [stdout] test archive::tests::archive_error_zip_slip_display ... ok
[INFO] [stdout] test archive::tests::extract_from_archive_read_to_end_error ... ok
[INFO] [stdout] test archive::tests::extract_from_archive_bad_entries_on_exhausted_fail_reader ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_bad_bytes ... ok
[INFO] [stdout] test archive::tests::extract_from_archive_entry_error_immediate ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_oversized_file ... ok
[INFO] [stdout] test archive::tests::extract_tarball_bad_archive_entries_called_twice ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_symlinks ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_path_traversal ... ok
[INFO] [stdout] test archive::tests::extract_zip_read_error_on_corrupted_deflate ... ok
[INFO] [stdout] test archive::tests::extract_tarball_returns_file_entries ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_hard_links ... ok
[INFO] [stdout] test archive::tests::extract_tarball_read_error_on_invalid_header_size ... ok
[INFO] [stdout] test archive::tests::extract_zip_empty_archive ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_total_too_large ... ok
[INFO] [stdout] test archive::tests::extract_zip_skips_directory_entries ... ok
[INFO] [stdout] test archive::tests::extract_zip_returns_file_entries ... ok
[INFO] [stdout] test archive::tests::extract_zip_bad_archive_on_corrupted_local_header ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_too_many_files ... ok
[INFO] [stdout] test archive::tests::reject_traversal_allows_normal_paths ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_too_many_files ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_total_too_large ... ok
[INFO] [stdout] test archive::tests::extract_zip_rejects_bad_bytes ... ok
[INFO] [stdout] test tests::errors_display_and_chain ... ok
[INFO] [stdout] test archive::tests::reject_traversal_blocks_absolute_paths ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_symlinks ... ok
[INFO] [stdout] test archive::tests::reject_traversal_blocks_double_dot ... ok
[INFO] [stdout] test tests::create_validates_the_name ... ok
[INFO] [stdout] test archive::tests::reject_traversal_blocks_null_byte ... ok
[INFO] [stdout] test tests::create_reports_a_missing_parent_or_bad_target ... ok
[INFO] [stdout] test tests::creates_a_project_with_starter_and_manifest ... ok
[INFO] [stdout] test archive::tests::extract_tarball_empty_archive ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_path_traversal ... ok
[INFO] [stdout] test archive::tests::extract_tarball_rejects_oversized_file ... ok
[INFO] [stdout] test tests::imported_workspace_derives ... ok
[INFO] [stdout] test archive::tests::extract_tarball_skips_directory_entries ... ok
[INFO] [stdout] test tests::import_from_entries_rejects_invalid_name ... ok
[INFO] [stdout] test tests::import_from_entries_rejects_traversal_path_in_entry ... ok
[INFO] [stdout] test tests::import_from_entries_fails_when_manifest_dir_is_a_file ... ok
[INFO] [stdout] test tests::import_from_entries_rejects_if_project_already_exists ... ok
[INFO] [stdout] test tests::import_from_entries_fails_with_nonexistent_parent ... ok
[INFO] [stdout] test tests::create_refuses_to_clobber_an_existing_project ... ok
[INFO] [stdout] test tests::import_from_entries_fails_when_directory_cannot_be_created ... ok
[INFO] [stdout] test tests::export_clean_bundle_fails_for_missing_root ... ok
[INFO] [stdout] test tests::share_bundle_fails_for_missing_root ... ok
[INFO] [stdout] test tests::export_clean_bundle_produces_zip_without_galley_dir ... ok
[INFO] [stdout] test tests::opens_a_folder_and_detects_the_root_and_files ... ok
[INFO] [stdout] test tests::open_preserves_an_existing_manifest_name ... ok
[INFO] [stdout] test tests::create_surfaces_write_failures ... ok
[INFO] [stdout] test tests::import_from_entries_materialises_project ... ok
[INFO] [stdout] test tests::open_reports_failures ... ok
[INFO] [stdout] test tests::open_recreates_a_corrupt_or_deleted_manifest ... ok
[INFO] [stdout] test tests::share_bundle_includes_source_and_pdf_without_galley ... ok
[INFO] [stdout] test tests::open_propagates_an_unreadable_subdirectory ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::open_propagates_an_unreadable_subdirectory stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::open_propagates_an_unreadable_subdirectory' (1845) panicked at crates/galley-import/src/lib.rs:538:32:
[INFO] [stdout] called `Result::unwrap_err()` on an `Ok` value: Workspace { root: "/tmp/.tmpVTpwRq", project: Project { name: ".tmpVTpwRq", root_document: "", documents: [] } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58cb5be68631 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58cb5be68631 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58cb5be68631 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58cb5be68631 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58cb5be7e25a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58cb5be7e25a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x58cb5be6ce3c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x58cb5be6ce3c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x58cb5be445f6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58cb5be445f6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58cb5be5f269 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58cb5bb31650 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x58cb5bb31650 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x58cb5be5f422 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x58cb5be5f422 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x58cb5be446a2 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x58cb5be3bcb9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58cb5be4535d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x58cb5be7ea2c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58cb5be7e7a2 - core[6883ba1bc0fe4ed1]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x58cb5bb0a6e6 - <core[6883ba1bc0fe4ed1]::result::Result<galley_import[9f851e282435bad8]::Workspace, galley_import[9f851e282435bad8]::ImportError>>::unwrap_err
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1327:22
[INFO] [stdout]   21:     0x58cb5bad4bb1 - galley_import[9f851e282435bad8]::tests::open_propagates_an_unreadable_subdirectory
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/galley-import/src/lib.rs:538:32
[INFO] [stdout]   22:     0x58cb5bacf5f7 - galley_import[9f851e282435bad8]::tests::open_propagates_an_unreadable_subdirectory::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/galley-import/src/lib.rs:531:52
[INFO] [stdout]   23:     0x58cb5bac5f26 - <galley_import[9f851e282435bad8]::tests::open_propagates_an_unreadable_subdirectory::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x58cb5bb2498b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58cb5bb2498b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x58cb5bb31fd5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x58cb5bb31fd5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x58cb5bb31fd5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   29:     0x58cb5bb31fd5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x58cb5bb31fd5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x58cb5bb31fd5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x58cb5bb31fd5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x58cb5bb2ca84 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x58cb5bb2ca84 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x58cb5bb35122 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x58cb5bb35122 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x58cb5bb35122 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   38:     0x58cb5bb35122 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x58cb5bb35122 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x58cb5bb35122 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x58cb5bb35122 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x58cb5be6761f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   43:     0x58cb5be6761f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   44:     0x700c390edaa4 - <unknown>
[INFO] [stdout]   45:     0x700c3917aa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::open_propagates_an_unreadable_subdirectory
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 60 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p galley-import --lib`
[INFO] running `Command { std: "docker" "inspect" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807", kill_on_drop: false }`
[INFO] [stdout] ca477a68f563c35e6070976183d2e8b4c588a23b3a285eb1e598288246ebc807
