[INFO] cloning repository https://github.com/hakula139/oxide-code [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hakula139/oxide-code" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhakula139%2Foxide-code", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhakula139%2Foxide-code'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fbe9a78e133e3f7d7f233b85966f47c4e2a5924b [INFO] testing hakula139/oxide-code against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhakula139%2Foxide-code" "/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/hakula139/oxide-code [INFO] finished tweaking git repo https://github.com/hakula139/oxide-code [INFO] tweaked toml for git repo https://github.com/hakula139/oxide-code written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hakula139/oxide-code on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hakula139/oxide-code 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1ff5f7648f1282a772a11318a90536dafcaadbdbdbed8603e10e4a8276354100 [INFO] running `Command { std: "docker" "start" "-a" "1ff5f7648f1282a772a11318a90536dafcaadbdbdbed8603e10e4a8276354100", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1ff5f7648f1282a772a11318a90536dafcaadbdbdbed8603e10e4a8276354100", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ff5f7648f1282a772a11318a90536dafcaadbdbdbed8603e10e4a8276354100", kill_on_drop: false }` [INFO] [stdout] 1ff5f7648f1282a772a11318a90536dafcaadbdbdbed8603e10e4a8276354100 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6ada0a4dbde45e6ef04c8b268fce14d76efa005381e1e6549999a1bd202374ec [INFO] running `Command { std: "docker" "start" "-a" "6ada0a4dbde45e6ef04c8b268fce14d76efa005381e1e6549999a1bd202374ec", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling lru v0.16.4 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling onig_sys v69.9.1 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling pulldown-cmark v0.13.3 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling platform-info v2.1.0 [INFO] [stderr] Compiling xxhash-rust v0.8.15 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [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 displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling onig v6.5.1 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling fancy-regex v0.16.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [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 darling v0.23.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling plist v1.8.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling syntect v5.3.0 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui-textarea v0.9.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling oxide-code v0.1.0 (/opt/rustwide/workdir/crates/oxide-code) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s [INFO] running `Command { std: "docker" "inspect" "6ada0a4dbde45e6ef04c8b268fce14d76efa005381e1e6549999a1bd202374ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ada0a4dbde45e6ef04c8b268fce14d76efa005381e1e6549999a1bd202374ec", kill_on_drop: false }` [INFO] [stdout] 6ada0a4dbde45e6ef04c8b268fce14d76efa005381e1e6549999a1bd202374ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3c83b82e8964f596561620972542e77625dedc31e9c53836b81eca9f764938a9 [INFO] running `Command { std: "docker" "start" "-a" "3c83b82e8964f596561620972542e77625dedc31e9c53836b81eca9f764938a9", kill_on_drop: false }` [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling insta v1.47.2 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling ratatui-textarea v0.9.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling temp-env v0.3.6 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.8 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling oxide-code v0.1.0 (/opt/rustwide/workdir/crates/oxide-code) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 39.81s [INFO] running `Command { std: "docker" "inspect" "3c83b82e8964f596561620972542e77625dedc31e9c53836b81eca9f764938a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3c83b82e8964f596561620972542e77625dedc31e9c53836b81eca9f764938a9", kill_on_drop: false }` [INFO] [stdout] 3c83b82e8964f596561620972542e77625dedc31e9c53836b81eca9f764938a9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 248872a492a95b15d5af64f34cb0277daaa31c09ee1fa59cf7362c52e1107243 [INFO] running `Command { std: "docker" "start" "-a" "248872a492a95b15d5af64f34cb0277daaa31c09ee1fa59cf7362c52e1107243", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ox-abc39d51495d4290) [INFO] [stdout] [INFO] [stdout] running 811 tests [INFO] [stdout] visibletest agent::event::tests::send_error_routes_message_to_stderr ... ok [INFO] [stdout] test agent::event::tests::send_session_title_updated_is_silent_ok ... ok [INFO] [stdout] test agent::event::tests::send_thinking_token_respects_show_thinking_flag ... ok [INFO] [stdout] test agent::event::tests::send_turn_complete_emits_trailing_newline_without_error ... ok [INFO] [stdout] test agent::tests::apply_delta_mismatched_pair_is_a_noop ... ok [INFO] [stdout] test agent::tests::apply_delta_server_tool_use_appends_to_json_buf ... ok [INFO] [stdout] test agent::tests::apply_delta_tool_use_appends_to_json_buf ... ok [INFO] [stdout] test agent::tests::init_accumulator_server_tool_use_starts_with_empty_buf ... ok [INFO] [stdout] test agent::event::tests::send_tool_call_start_renders_label_and_falls_back_to_name ... ok [INFO] [stdout] test agent::tests::apply_delta_signature_updates_signature_field ... ok [INFO] [stdout] test agent::tests::init_accumulator_thinking_preserves_fields ... ok [INFO] [stdout] test agent::tests::init_accumulator_text_starts_with_initial_text ... ok [INFO] [stdout] test agent::tests::init_accumulator_tool_use_starts_with_empty_buf ... ok [INFO] [stdout] hellotest agent::tests::agent_turn_strips_trailing_thinking_before_next_round ... ok [INFO] [stdout] test agent::tests::agent_turn_single_tool_call_dispatches_and_completes_on_follow_up ... ok [INFO] [stdout] test agent::tests::apply_delta_text_appends_and_emits_stream_token ... ok [INFO] [stdout] test agent::tests::agent_turn_mid_stream_error_event_surfaces_as_bail ... ok [INFO] [stdout] test agent::tests::agent_turn_unknown_tool_name_emits_error_result_and_retries ... ok [INFO] [stdout] test agent::event::tests::send_tool_call_end_handles_every_field_nullability ... ok [INFO] [stdout] test agent::tests::agent_turn_text_only_response_records_assistant_message_and_returns ... ok [INFO] [stdout] test agent::tests::init_accumulator_redacted_thinking_preserves_data ... ok [INFO] [stdout] test agent::tests::apply_delta_thinking_appends_and_emits_thinking_token ... ok [INFO] [stdout] test agent::event::tests::send_stream_token_writes_body_without_error ... ok [INFO] [stdout] test agent::tests::into_content_block_redacted_thinking_preserves_data ... ok [INFO] [stdout] test agent::tests::into_content_block_server_tool_use_yields_server_tool_use_block ... ok [INFO] [stdout] test agent::tests::agent_turn_max_tool_rounds_bails_with_safety_cap_message ... ok [INFO] [stdout] test agent::tests::agent_turn_drives_real_client_over_wiremock ... ok [INFO] [stdout] test agent::tests::init_accumulator_unknown_yields_skipped ... ok [INFO] [stdout] test client::anthropic::tests::build_metadata_wraps_session_id_in_stringified_json ... ok [INFO] [stdout] test agent::tests::into_content_block_text_yields_text_block ... ok [INFO] [stdout] test agent::tests::into_content_block_tool_use_yields_tool_use_block ... ok [INFO] [stdout] test agent::tests::parse_tool_json_malformed ... ok [INFO] [stdout] test client::anthropic::tests::build_completion_body_system_blocks_match_auth_mode ... ok [INFO] [stdout] test agent::tests::into_content_block_skipped_yields_none ... ok [INFO] [stdout] test client::anthropic::tests::build_completion_body_omits_tools_thinking_and_output_config_by_default ... ok [INFO] [stdout] test client::anthropic::tests::api_model_id_strips_1m_tag_case_insensitively ... ok [INFO] [stdout] test client::anthropic::tests::build_completion_body_with_output_format_emits_output_config ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_haiku_4_5_agentic_omits_1m_effort_and_thinking ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_non_haiku_non_agentic_keeps_claude_code_tag ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_oauth_adds_oauth_header ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_structured_outputs_gated_by_model_capability ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_haiku_4_5_with_1m_tag_silently_drops_1m ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_haiku_non_agentic_minimal ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_third_party_base_url_drops_prompt_caching_scope ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_opus_46_with_1m_tag_adds_context_1m ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_redacted_thinking ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_thinking ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_tool_use ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_server_tool_use ... ok [INFO] [stdout] test client::anthropic::tests::delta_text ... ok [INFO] [stdout] test client::anthropic::tests::delta_thinking ... ok [INFO] [stdout] test client::anthropic::tests::delta_input_json ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_unknown_type ... ok [INFO] [stdout] test client::anthropic::tests::content_block_info_text ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_sonnet_45_has_thinking_but_not_effort ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_agentic_opus_46_plain_carries_full_set_except_1m ... ok [INFO] [stdout] test client::anthropic::tests::complete_happy_path_returns_assistant_text ... ok [INFO] [stdout] test client::anthropic::tests::first_user_text_returns_empty_when_absent ... ok [INFO] [stdout] test client::anthropic::tests::has_1m_tag_is_case_insensitive ... ok [INFO] [stdout] test client::anthropic::tests::delta_unknown_type ... ok [INFO] [stdout] test client::anthropic::tests::join_text_blocks_returns_empty_for_tool_only_response ... ok [INFO] [stdout] test client::anthropic::tests::first_user_text_extracts_from_first_user_message ... ok [INFO] [stdout] test client::anthropic::tests::join_text_blocks_concatenates_text_and_drops_non_text_blocks ... ok [INFO] [stdout] test client::anthropic::tests::is_first_party_base_url_accepts_official_hosts ... ok [INFO] [stdout] test client::anthropic::tests::new_none_session_id_generates_uuid_v4 ... ok [INFO] [stdout] test client::anthropic::tests::complete_oauth_haiku_carries_billing_block_but_not_gateway_tag ... ok [INFO] [stdout] test client::anthropic::tests::new_preserves_explicit_session_id ... ok [INFO] [stdout] test client::anthropic::tests::new_rejects_auth_values_containing_invalid_header_bytes ... ok [INFO] [stdout] test client::anthropic::tests::is_first_party_base_url_rejects_proxies_and_malformed_urls ... ok [INFO] [stdout] test client::anthropic::tests::new_with_api_key_exposes_model ... ok [INFO] [stdout] test client::anthropic::tests::normalize_arch_maps_known_and_falls_back_to_unknown ... ok [INFO] [stdout] test client::anthropic::tests::normalize_platform_maps_known_and_falls_back_to_unknown ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_accepts_data_prefix_without_space ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_invalid_json_errors ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_ping ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_message_start ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_text_delta ... ok [INFO] [stdout] test client::anthropic::tests::new_with_oauth_token_exposes_model ... ok [INFO] [stdout] test client::anthropic::tests::output_format_json_schema_serializes_with_type_and_schema ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_unknown_event_type ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_without_data_line_yields_none ... ok [INFO] [stdout] test client::anthropic::tests::split_at_boundary_without_marker_treats_all_as_static ... ok [INFO] [stdout] test client::anthropic::tests::static_prefix_cache_control_emits_global_scope_on_first_party_only ... ok [INFO] [stdout] test client::anthropic::tests::stream_event_content_block_start_text ... ok [INFO] [stdout] test client::anthropic::tests::split_at_boundary_separates_static_and_dynamic ... ok [INFO] [stdout] test client::anthropic::tests::stream_event_content_block_stop ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_concatenates_multiple_data_lines_with_newline ... ok [INFO] [stdout] test client::anthropic::tests::stream_event_message_delta_with_usage ... ok [INFO] [stdout] test client::anthropic::tests::stream_event_message_stop ... ok [INFO] [stdout] test client::anthropic::tests::split_at_boundary_filters_empty_sections ... ok [INFO] [stdout] test client::anthropic::tests::split_at_boundary_at_extremes_yields_empty_side ... ok [INFO] [stdout] test client::anthropic::tests::compute_betas_opus_47_matches_opus_46_family ... ok [INFO] [stdout] test client::anthropic::tests::complete_structured_output_gated_by_model_capability ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_mid_stream_error_event_is_delivered_with_api_payload ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_happy_text_emits_start_delta_stop_in_order ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_malformed_frame_is_skipped_without_poisoning_stream ... ok [INFO] [stdout] test client::anthropic::tests::supports_structured_outputs_reflects_capability_table ... ok [INFO] [stdout] test client::billing::tests::build_billing_header_format ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_oauth_sends_bearer_plus_oauth_and_gateway_beta_tags ... ok [INFO] [stdout] test client::billing::tests::compute_fingerprint_known_vector ... ok [INFO] [stdout] test client::billing::tests::compute_fingerprint_partial_bounds ... ok [INFO] [stdout] test client::anthropic::tests::parse_sse_frame_error_event ... ok [INFO] [stdout] test client::billing::tests::compute_fingerprint_short_message_pads_with_zero ... ok [INFO] [stdout] test client::billing::tests::compute_fingerprint_varies_with_version ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_third_party_base_url_drops_global_scope_and_its_beta ... ok [INFO] [stdout] test client::billing::tests::inject_cch_produces_five_hex_chars ... ok [INFO] [stdout] test client::billing::tests::inject_cch_replaces_placeholder ... ok [INFO] [stdout] test client::billing::tests::inject_cch_deterministic ... ok [INFO] [stdout] test config::file::tests::find_project_config_from_returns_none_when_absent ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_billing_block_is_oauth_only_with_cch_populated ... ok [INFO] [stdout] test config::file::tests::find_project_config_from_in_start_dir ... ok [INFO] [stdout] test config::file::tests::find_project_config_from_walks_upward ... ok [INFO] [stdout] test client::billing::tests::inject_cch_replaces_only_first_occurrence ... ok [INFO] [stdout] test config::file::tests::load_file_all_fields ... ok [INFO] [stdout] test config::file::tests::load_file_empty_toml_returns_defaults ... ok [INFO] [stdout] test config::file::tests::load_file_invalid_toml_returns_none ... ok [INFO] [stdout] test config::file::tests::load_file_missing_file_returns_none ... ok [INFO] [stdout] test config::file::tests::load_file_rejects_unknown_section_key ... ok [INFO] [stdout] test config::file::tests::merge_cross_section_fills_gaps ... ok [INFO] [stdout] test config::file::tests::merge_falls_back_to_base_when_other_is_none ... ok [INFO] [stdout] test config::file::tests::load_file_rejects_unknown_top_level_key ... ok [INFO] [stdout] test config::file::tests::load_file_single_section ... ok [INFO] [stdout] test config::file::tests::merge_both_empty_produces_empty ... ok [INFO] [stdout] test config::file::tests::merge_other_wins_when_both_set ... ok [INFO] [stdout] test config::oauth::tests::expires_at_ms_negative_clamps_to_zero ... ok [INFO] [stdout] test config::oauth::tests::is_expired_far_future ... ok [INFO] [stdout] test config::oauth::tests::is_expired_zero ... ok [INFO] [stdout] test config::oauth::tests::acquire_lock_creates_and_drop_removes ... ok [INFO] [stdout] test config::oauth::tests::is_near_expiry_far_future ... ok [INFO] [stdout] test config::oauth::tests::is_near_expiry_zero_is_expired ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_returns_existing_when_far_from_expiry ... ok [INFO] [stdout] test agent::tests::into_content_block_thinking_preserves_signature ... ok [INFO] [stdout] test agent::tests::parse_tool_json_valid_object ... ok [INFO] [stdout] test client::anthropic::tests::build_completion_body_routes_session_id_into_metadata ... ok [INFO] [stdout] test client::anthropic::tests::delta_signature ... ok [INFO] [stdout] test config::oauth::tests::read_credentials_missing_file ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_without_refresh_token_returns_nonexpired_as_is ... ok [INFO] [stdout] test client::anthropic::tests::complete_http_error_propagates_status_and_body ... ok [INFO] [stdout] test config::oauth::tests::read_credentials_missing_oauth_key ... ok [INFO] [stdout] test config::oauth::tests::read_credentials_missing_refresh_token_field ... ok [INFO] [stdout] test config::oauth::tests::read_credentials_valid_with_refresh_token ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_api_key_sends_x_api_key_and_session_id ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_refreshes_near_expiry_and_writes_back ... ok [INFO] [stdout] test config::oauth::tests::expires_at_ms_positive_value ... ok [INFO] [stdout] test config::oauth::tests::write_refreshed_credentials_preserves_unknown_fields ... ok [INFO] [stdout] test client::anthropic::tests::build_completion_body_empty_system_keeps_identity_prefix_alone ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_refresh_endpoint_down_bails_if_expired ... ok [INFO] [stdout] test config::tests::load_adaptive_thinking_is_always_enabled ... ok [INFO] [stdout] test config::tests::load_defaults_apply_when_no_config_and_no_env ... ok [INFO] [stdout] test config::tests::load_env_api_key_beats_file_api_key ... ok [INFO] [stdout] test config::oauth::tests::read_credentials_invalid_json ... ok [INFO] [stdout] test config::tests::load_env_overrides_every_client_field ... ok [INFO] [stdout] test config::oauth::tests::load_token_resolves_credentials_relative_to_home ... ok [INFO] [stdout] test config::tests::load_env_beats_config_file_field_by_field ... ok [INFO] [stdout] test config::oauth::tests::refresh_oauth_token_propagates_http_error_with_status_and_body ... ok [INFO] [stdout] test config::tests::load_file_api_key_used_when_env_is_empty ... ok [INFO] [stdout] test config::oauth::tests::refresh_oauth_token_malformed_json_errors_with_context ... ok [INFO] [stdout] test config::tests::load_user_config_supplies_values_without_env_overrides ... ok [INFO] [stdout] test config::tests::thinking_config_adaptive_serializes ... ok [INFO] [stdout] test message::tests::assistant_creates_assistant_role_with_text ... ok [INFO] [stdout] test message::tests::redacted_thinking_round_trips_through_json ... ok [INFO] [stdout] test message::tests::server_tool_use_round_trips_through_json ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_removes_multiple_consecutive ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_removes_thinking_at_end ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_skips_user_messages ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_targets_only_last_assistant ... ok [INFO] [stdout] test message::tests::tool_result_deserializes_missing_is_error_as_false ... ok [INFO] [stdout] test message::tests::tool_result_serializes_is_error_when_true ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_inserts_placeholder_for_thinking_only ... ok [INFO] [stdout] test message::tests::tool_result_omits_is_error_when_false ... ok [INFO] [stdout] test message::tests::strip_trailing_thinking_preserves_non_trailing ... ok [INFO] [stdout] test message::tests::thinking_round_trips_through_json ... ok [INFO] [stdout] test config::tests::load_invalid_max_tokens_env_falls_through_to_file ... ok [INFO] [stdout] test model::tests::lookup_returns_none_for_unknown_model_family ... ok [INFO] [stdout] test model::tests::opus_4_7_is_treated_as_4_6_equivalent ... ok [INFO] [stdout] test model::tests::capability_flags_match_upstream_substring_predicates ... ok [INFO] [stdout] test model::tests::lookup_ignores_1m_suffix_tag_for_matching ... ok [INFO] [stdout] test model::tests::lookup_matches_most_specific_row_before_family_base ... ok [INFO] [stdout] test model::tests::structured_outputs_flag_tracks_upstream_allowlist ... ok [INFO] [stdout] test prompt::environment::tests::detect_os_version_returns_nonempty ... ok [INFO] [stdout] test prompt::environment::tests::detect_shell_returns_basename ... ok [INFO] [stdout] test prompt::environment::tests::current_date_matches_iso_format ... ok [INFO] [stdout] test prompt::environment::tests::date_returns_formatted_string ... ok [INFO] [stdout] test prompt::environment::tests::detect_inside_repo_sets_is_git_true ... ok [INFO] [stdout] test message::tests::user_creates_user_role_with_text ... ok [INFO] [stdout] test prompt::environment::tests::detect_with_cwd_but_no_git_root_sets_is_git_false ... ok [INFO] [stdout] test config::oauth::tests::write_refreshed_credentials_skips_scopes_when_absent ... ok [INFO] [stdout] test prompt::environment::tests::marketing_name_unknown_model ... ok [INFO] [stdout] test prompt::environment::tests::detect_without_cwd_uses_unknown_and_skips_git ... ok [INFO] [stdout] test prompt::environment::tests::knowledge_cutoff_known_models ... ok [INFO] [stdout] test config::oauth::tests::write_refreshed_credentials_tolerates_whitespace_in_scope_field ... ok [INFO] [stdout] test prompt::environment::tests::normalize_node_platform_unknown_value ... ok [INFO] [stdout] test prompt::environment::tests::marketing_name_known_models ... ok [INFO] [stdout] test prompt::environment::tests::marketing_name_with_suffix ... ok [INFO] [stdout] test prompt::environment::tests::render_with_known_model_shows_all_fields ... ok [INFO] [stdout] test prompt::environment::tests::normalize_node_platform_known_values ... ok [INFO] [stdout] test prompt::environment::tests::render_without_git_shows_false ... ok [INFO] [stdout] test prompt::environment::tests::render_unknown_model_uses_fallback_description ... ok [INFO] [stdout] test prompt::environment::tests::knowledge_cutoff_unknown_model ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_without_refresh_token_bails_when_expired ... ok [INFO] [stdout] test prompt::instructions::tests::candidate_slots_cwd_equals_root ... ok [INFO] [stdout] test prompt::instructions::tests::candidate_slots_walks_root_to_cwd ... ok [INFO] [stdout] test prompt::instructions::tests::candidate_slots_without_project_root_still_includes_global ... ok [INFO] [stdout] test config::oauth::tests::refresh_oauth_token_sends_grant_and_client_id_and_returns_parsed_response ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_preserves_multibyte_codepoints_in_deltas ... ok [INFO] [stdout] test config::oauth::tests::load_token_from_refresh_endpoint_down_keeps_existing_token_if_unexpired ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_prepends_user_context_as_synthetic_user_message ... ok [INFO] [stdout] test prompt::instructions::tests::walk_root_to_cwd_none_returns_root_only ... ok [INFO] [stdout] test prompt::instructions::tests::load_files_collects_one_file_per_slot ... ok [INFO] [stdout] test prompt::instructions::tests::load_files_prefers_first_candidate ... ok [INFO] [stdout] test prompt::instructions::tests::walk_root_to_cwd_nested ... ok [INFO] [stdout] test prompt::instructions::tests::render_single_file ... ok [INFO] [stdout] test prompt::instructions::tests::load_files_returns_empty_when_no_files_exist ... ok [INFO] [stdout] test prompt::instructions::tests::load_discovers_claude_dir_instructions ... ok [INFO] [stdout] test prompt::instructions::tests::load_uses_cwd_as_fallback_root_when_git_root_is_none ... ok [INFO] [stdout] test prompt::instructions::tests::load_files_skips_whitespace_only_files ... ok [INFO] [stdout] test prompt::instructions::tests::render_formats_files_with_header_and_preserves_order ... ok [INFO] [stdout] test prompt::tests::build_user_context_empty_claude_md_returns_none ... ok [INFO] [stdout] test prompt::instructions::tests::walk_root_to_cwd_outside_root_returns_root_only ... ok [INFO] [stdout] test prompt::instructions::tests::walk_root_to_cwd_same_directory ... ok [INFO] [stdout] test prompt::tests::prompt_constants_have_no_leading_whitespace ... ok [INFO] [stdout] test prompt::instructions::tests::load_files_falls_back_to_second_candidate ... ok [INFO] [stdout] test session::entry::tests::header_missing_version_defaults_to_current ... ok [INFO] [stdout] test session::entry::tests::entries_parse_from_jsonl_lines ... ok [INFO] [stdout] test session::entry::tests::header_round_trips_with_correct_discriminator_and_version ... ok [INFO] [stdout] test session::entry::tests::message_omits_parent_uuid_when_none ... ok [INFO] [stdout] test session::entry::tests::message_round_trips_with_uuid_and_parent_uuid ... ok [INFO] [stdout] test session::entry::tests::message_missing_parent_uuid_defaults_to_none ... ok [INFO] [stdout] test prompt::tests::find_git_root_outside_repo ... ok [INFO] [stdout] test prompt::tests::find_git_root_inside_repo ... ok [INFO] [stdout] test prompt::tests::build_prompt_returns_user_context_with_claude_md ... ok [INFO] [stdout] test prompt::tests::build_prompt_system_starts_with_intro ... ok [INFO] [stdout] test prompt::tests::build_prompt_system_does_not_contain_user_instructions ... ok [INFO] [stdout] test prompt::tests::build_prompt_system_contains_all_static_sections ... ok [INFO] [stdout] test session::entry::tests::summary_round_trips_without_title_field ... ok [INFO] [stdout] test session::entry::tests::title_round_trips_with_source ... ok [INFO] [stdout] test session::history::tests::walk_transcript_drops_whitespace_only_thinking ... ok [INFO] [stdout] test session::history::tests::walk_transcript_emits_server_tool_use_as_tool_call ... ok [INFO] [stdout] test session::history::tests::walk_transcript_empty_returns_empty ... ok [INFO] [stdout] test session::history::tests::walk_transcript_flushes_text_before_tool_call ... ok [INFO] [stdout] test session::history::tests::walk_transcript_joins_adjacent_text_blocks_with_newline ... ok [INFO] [stdout] test session::history::tests::walk_transcript_orphan_result_in_user_only_message ... ok [INFO] [stdout] test session::history::tests::walk_transcript_pairs_multiple_calls_in_order_even_across_batched_results ... ok [INFO] [stdout] test session::history::tests::walk_transcript_pairs_tool_call_and_result_inline ... ok [INFO] [stdout] test session::history::tests::walk_transcript_drops_whitespace_only_text ... ok [INFO] [stdout] test session::history::tests::walk_transcript_preserves_orphan_tool_result_at_original_position ... ok [INFO] [stdout] test session::list_view::tests::render_list_empty_store_returns_no_sessions_notice ... ok [INFO] [stdout] test session::history::tests::walk_transcript_emits_thinking_and_drops_redacted ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_empty_project_scope_mentions_project ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_all_mode_inserts_project_column_aligned_to_widest_cwd ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_leaves_title_untruncated_without_term_width ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_populated_row_has_header_prefix_and_title_defaults ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_project_col_width_respects_maximum ... ok [INFO] [stdout] test session::list_view::tests::truncate_to_width_accounts_for_cjk_double_width ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_shows_message_count_and_title_when_available ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_truncates_title_when_term_width_too_narrow ... ok [INFO] [stdout] test session::list_view::tests::truncate_to_width_drops_ellipsis_when_budget_below_ellipsis_width ... ok [INFO] [stdout] test session::list_view::tests::truncate_to_width_passes_through_strings_that_fit ... ok [INFO] [stdout] test session::list_view::tests::truncate_to_width_returns_empty_when_max_width_is_zero ... ok [INFO] [stdout] test session::list_view::tests::truncate_to_width_appends_ellipsis_on_ascii_overflow ... ok [INFO] [stdout] test session::manager::tests::collapse_consecutive_same_role_merges_runs_and_preserves_alternation ... ok [INFO] [stdout] test session::manager::tests::collapse_consecutive_same_role_noop_on_alternating_transcript ... ok [INFO] [stdout] test session::manager::tests::extract_user_text_finds_text_after_tool_result ... ok [INFO] [stdout] test session::manager::tests::extract_user_text_from_user_message ... ok [INFO] [stdout] test session::manager::tests::extract_user_text_returns_none_for_tool_result_only ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_skips_truncation_when_title_budget_below_minimum ... ok [INFO] [stdout] test session::manager::tests::extract_user_text_skips_assistant ... ok [INFO] [stdout] test session::manager::tests::append_ai_title_errors_before_session_file_materializes ... ok [INFO] [stdout] test session::manager::tests::extract_user_text_skips_empty ... ok [INFO] [stdout] test session::manager::tests::finish_empty_session_leaves_no_file ... ok [INFO] [stdout] test session::manager::tests::append_ai_title_writes_title_entry_and_supersedes_first_prompt_on_list ... ok [INFO] [stdout] test session::list_view::tests::render_sessions_empty_all_scope_omits_project_qualifier ... ok [INFO] [stdout] test session::manager::tests::finish_is_idempotent ... ok [INFO] [stdout] test session::manager::tests::finish_skips_summary_on_empty_resume ... ok [INFO] [stdout] test session::manager::tests::record_message_increments_count_and_chains_parent ... ok [INFO] [stdout] test session::manager::tests::record_message_no_title_for_tool_result_only ... ok [INFO] [stdout] test session::manager::tests::record_write_failure_first_call_returns_true_then_false ... ok [INFO] [stdout] test session::manager::tests::resume_after_mid_stream_abort_yields_clean_user_ending_transcript ... ok [INFO] [stdout] test session::manager::tests::resume_appends_and_updates_summary ... ok [INFO] [stdout] test prompt::tests::assemble_without_project_claude_md_keeps_system_clean ... ok [INFO] [stdout] test session::manager::tests::resume_empty_session_returns_error ... ok [INFO] [stdout] test session::entry::tests::unknown_discriminator_parses_as_unknown_variant ... ok [INFO] [stdout] test session::manager::tests::resume_drops_unresolved_trailing_tool_use ... ok [INFO] [stdout] test session::manager::tests::finish_writes_summary_with_count ... ok [INFO] [stdout] test session::manager::tests::record_message_writes_title_before_first_user_message ... ok [INFO] [stdout] test session::manager::tests::resume_drops_assistant_message_with_only_unresolved_tool_use ... ok [INFO] [stdout] test session::manager::tests::sanitize_collapses_adjacent_assistants_after_orphan_user_drop ... ok [INFO] [stdout] test session::manager::tests::sanitize_collapses_adjacent_users_after_empty_assistant_drop ... ok [INFO] [stdout] test session::manager::tests::sanitize_drops_orphan_tool_result_block_and_keeps_siblings ... ok [INFO] [stdout] test session::manager::tests::record_message_writes_title_only_once ... ok [INFO] [stdout] test session::manager::tests::sanitize_drops_orphan_when_assistant_tool_use_was_dropped ... ok [INFO] [stdout] test session::manager::tests::sanitize_drops_user_message_with_only_orphan_tool_result ... ok [INFO] [stdout] test session::manager::tests::sanitize_noop_for_clean_transcript ... ok [INFO] [stdout] test session::manager::tests::resume_errors_when_sanitize_empties_transcript ... ok [INFO] [stdout] test session::manager::tests::resume_appends_sentinel_when_last_is_user_tool_results_only ... ok [INFO] [stdout] test session::manager::tests::sanitize_pairs_tool_use_with_result ... ok [INFO] [stdout] test session::manager::tests::sanitize_prepends_head_sentinel_when_leading_user_is_dropped ... ok [INFO] [stdout] test session::manager::tests::truncate_title_empty_string ... ok [INFO] [stdout] test session::manager::tests::truncate_title_exact_max_len_unchanged ... ok [INFO] [stdout] test session::manager::tests::truncate_title_multibyte_respects_character_count ... ok [INFO] [stdout] test session::manager::tests::truncate_title_short_string_unchanged ... ok [INFO] [stdout] test session::manager::tests::truncate_title_takes_first_line_only ... ok [INFO] [stdout] test session::manager::tests::truncate_title_long_string_adds_ellipsis ... ok [INFO] [stdout] test session::manager::tests::truncate_title_trims_whitespace ... ok [INFO] [stdout] test prompt::tests::build_prompt_sections_joined_with_double_newline ... ok [INFO] [stdout] test session::manager::tests::resume_works_on_unfinished_session ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_distinguishes_non_utf8_paths_with_same_lossy_form ... ok [INFO] [stdout] test session::manager::tests::resume_preserves_parent_chain_on_next_record ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_is_deterministic ... ok [INFO] [stdout] test session::manager::tests::take_ai_title_seed_is_empty_on_resume_even_when_file_has_first_prompt_only ... ok [INFO] [stdout] test session::manager::tests::take_ai_title_seed_yields_first_prompt_once_on_fresh_session ... ok [INFO] [stdout] test prompt::tests::assemble_in_git_repo_has_system_and_user_context ... ok [INFO] [stdout] test session::manager::tests::start_does_not_materialize_file_until_first_record ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_replaces_backslash_and_drive_letter ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_replaces_other_reserved_chars_with_dash ... ok [INFO] [stdout] test session::manager::tests::resume_loads_messages_and_keeps_session_id ... ok [INFO] [stdout] test session::history::tests::walk_transcript_emits_user_and_assistant_text ... ok [INFO] [stdout] test prompt::tests::build_user_context_with_claude_md ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_http_error_propagates_status_and_body ... ok [INFO] [stdout] test prompt::tests::assemble_walks_root_to_cwd_for_instruction_discovery ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_preserves_dots_underscores_and_dashes ... ok [INFO] [stdout] test prompt::tests::build_prompt_system_includes_model_name ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_replaces_slashes_and_trims_leading ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_truncates_long_paths_with_stable_hash_suffix ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_truncation_distinguishes_similar_long_paths ... ok [INFO] [stdout] test session::path::tests::sanitize_cwd_returns_unknown_for_empty_result ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_classifies_path_arguments ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_keeps_uuid_shaped_prefix_as_prefix ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_rejects_empty_and_whitespace_prefix ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_trims_valid_prefix ... ok [INFO] [stdout] test session::resolver::tests::format_session_id_preview_caps_at_five_and_appends_ellipsis ... ok [INFO] [stdout] test session::resolver::tests::format_session_id_preview_truncates_ids_to_eight_chars ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_bare_continue_errors_without_sessions ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_prefix_errors_on_no_match ... ok [INFO] [stdout] test session::resolver::tests::format_session_id_preview_no_ellipsis_at_limit ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_path_errors_on_missing_file ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_prefix_resumes_single_match ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_all_widens_scope_to_list_all ... ok [INFO] [stdout] test session::store::tests::create_rejects_non_header_entry ... ok [INFO] [stdout] test session::store::tests::append_writes_multiple_entries ... ok [INFO] [stdout] test session::store::tests::create_writes_header_to_new_file ... ok [INFO] [stdout] test session::store::tests::find_session_path_falls_back_to_other_projects ... ok [INFO] [stdout] test session::store::tests::create_fails_when_file_already_exists ... ok [INFO] [stdout] test session::store::tests::create_sets_user_only_file_permissions_on_unix ... ok [INFO] [stdout] test session::store::tests::list_all_spans_every_project_subdirectory ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_starts_fresh_when_no_continue_flag ... ok [INFO] [stdout] test session::store::tests::list_mtime_overrides_header_created_at_order ... ok [INFO] [stdout] test session::store::tests::list_returns_sessions_in_mtime_order_newest_first ... ok [INFO] [stdout] test session::store::tests::list_picks_latest_title_when_re_appended ... ok [INFO] [stdout] test session::store::tests::load_session_data_breaks_chain_walk_on_cycle ... ok [INFO] [stdout] test session::store::tests::load_session_data_picks_newest_leaf_on_fork ... ok [INFO] [stdout] test session::store::tests::find_session_path_errors_for_unknown_session ... ok [INFO] [stdout] test session::store::tests::list_skips_non_session_files_and_malformed_jsonl ... ok [INFO] [stdout] test session::store::tests::load_session_data_nonexistent_session_returns_error ... ok [INFO] [stdout] test session::store::tests::list_finds_ai_title_buried_between_head_and_tail ... ok [INFO] [stdout] test session::store::tests::load_session_data_recovers_from_truncated_utf8_at_eof ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_resumes_from_external_path ... ok [INFO] [stdout] test session::store::tests::list_finds_first_prompt_title_in_long_session ... ok [INFO] [stdout] test session::store::tests::load_session_data_rejects_future_format_version ... ok [INFO] [stdout] test session::store::tests::load_session_data_rejects_malicious_session_ids ... ok [INFO] [stdout] test session::store::tests::load_session_data_returns_only_messages_with_last_uuid ... ok [INFO] [stdout] test session::store::tests::open_falls_back_to_home_local_share_when_xdg_unset ... ok [INFO] [stdout] test session::store::tests::open_append_allows_concurrent_resumes_without_blocking ... ok [INFO] [stdout] test session::store::tests::open_append_fails_for_nonexistent_session ... ok [INFO] [stdout] test session::store::tests::load_session_data_prefers_later_duplicate_uuid ... ok [INFO] [stdout] test session::store::tests::list_works_without_title_or_summary ... ok [INFO] [stdout] test session::store::tests::read_session_id_from_path_returns_header_session_id ... ok [INFO] [stdout] test session::title_generator::tests::generate_and_record_conversational_reply_bails_without_updating_title ... ok [INFO] [stdout] test session::store::tests::load_session_data_recovers_from_missing_trailing_newline ... ok [INFO] [stdout] test session::store::tests::load_session_data_skips_corrupt_empty_and_unknown_lines ... ok [INFO] [stdout] test session::store::tests::load_session_data_terminates_at_orphan_parent_reference ... ok [INFO] [stdout] test session::store::tests::open_creates_private_dirs_with_mode_0o700_on_unix ... ok [INFO] [stdout] test session::title_generator::tests::generate_and_record_happy_path_appends_title_and_notifies_sink ... ok [INFO] [stdout] test session::store::tests::read_session_id_from_path_errors_when_file_missing ... ok [INFO] [stdout] test session::store::tests::read_session_id_from_path_rejects_unparsable_first_line ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_errors_on_empty_response ... ok [INFO] [stdout] test session::store::tests::open_append_writes_to_existing_file ... ok [INFO] [stdout] test session::title_generator::tests::generate_and_record_http_error_bails_with_context ... ok [INFO] [stdout] test session::resolver::tests::resolve_session_prefix_reports_ambiguous_matches ... ok [INFO] [stdout] test session::title_generator::tests::generate_and_record_unwraps_code_fenced_json_envelope ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_errors_on_empty_title_field ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_errors_on_plain_text_response ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_extracts_json_title_field ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_trims_whitespace_inside_json_envelope ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_unwraps_bare_code_fence ... ok [INFO] [stdout] test session::title_generator::tests::parse_title_unwraps_json_code_fence ... ok [INFO] [stdout] test session::title_generator::tests::strip_code_fence_handles_language_tag ... ok [INFO] [stdout] test session::title_generator::tests::strip_code_fence_handles_no_opening_newline ... ok [INFO] [stdout] test session::title_generator::tests::strip_code_fence_leaves_unwrapped_text_alone ... ok [INFO] [stdout] test session::title_generator::tests::title_output_format_matches_title_envelope_shape ... ok [INFO] [stdout] test session::title_generator::tests::truncate_for_log_caps_long_strings_with_ellipsis ... ok [INFO] [stdout] test session::title_generator::tests::truncate_for_log_passes_short_strings_through ... ok [INFO] [stdout] test session::title_generator::tests::truncate_prompt_keeps_the_tail_of_long_text ... ok [INFO] [stdout] test session::title_generator::tests::truncate_prompt_passes_short_text_through ... ok [INFO] [stdout] test session::title_generator::tests::truncate_prompt_respects_char_boundaries_for_multibyte ... ok [INFO] [stdout] test session::writer::tests::log_session_err_err_without_sink_only_warns ... ok [INFO] [stdout] test session::writer::tests::log_session_err_is_noop_on_ok ... ok [INFO] [stdout] test session::writer::tests::log_session_err_first_failure_notifies_via_sink ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_maps_bare_flag_to_latest ... ok [INFO] [stdout] test session::writer::tests::log_session_err_subsequent_failure_stays_silent ... ok [INFO] [stdout] test session::store::tests::open_uses_xdg_data_home_when_set ... ok [INFO] [stdout] test session::writer::tests::record_session_message_writes_through_to_manager ... ok [INFO] [stdout] test session::store::tests::read_session_id_from_path_rejects_non_header_first_line ... ok [INFO] [stdout] test session::store::tests::list_is_scoped_to_current_project ... ok [INFO] [stdout] test session::resolver::tests::normalize_resume_arg_maps_none_to_fresh ... ok [INFO] [stdout] test tool::bash::tests::run_missing_command_field ... ok [INFO] [stdout] test tool::bash::tests::truncate_output_barely_over_limit_unchanged ... ok [INFO] [stdout] test tool::edit::tests::apply_eol_inserts_cr_for_crlf ... ok [INFO] [stdout] test tool::edit::tests::dominant_eol_crlf_only ... ok [INFO] [stdout] test tool::bash::tests::truncate_output_multibyte_at_split_boundary ... ok [INFO] [stdout] test tool::bash::tests::truncate_output_short_content_unchanged ... ok [INFO] [stdout] test tool::edit::tests::apply_eol_lf_unchanged ... ok [INFO] [stdout] test tool::edit::tests::dominant_eol_lf_only ... ok [INFO] [stdout] test tool::edit::tests::dominant_eol_mixed_favors_majority ... ok [INFO] [stdout] test tool::edit::tests::dominant_eol_no_newlines ... ok [INFO] [stdout] test tool::edit::tests::dominant_eol_tie_defaults_to_lf ... ok [INFO] [stdout] test tool::bash::tests::execute_output_with_nonzero_exit ... ok [INFO] [stdout] test tool::edit::tests::edit_file_crlf_in_new_string_not_doubled ... ok [INFO] [stdout] test tool::edit::tests::edit_file_crlf_matching_preserves_line_endings ... ok [INFO] [stdout] test tool::bash::tests::run_valid_command ... ok [INFO] [stdout] test tool::edit::tests::edit_file_mixed_eol_multiline_match ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_empty_old_string ... ok [INFO] [stdout] test tool::edit::tests::edit_file_mixed_eol_normalized_to_dominant ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_ambiguous_match ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_identical_strings ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_nonexistent_file ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_string_not_found ... ok [INFO] [stdout] test tool::edit::tests::edit_file_replace_all_single_match ... ok [INFO] [stdout] test tool::edit::tests::edit_file_rejects_too_large_file ... ok [INFO] [stdout] test tool::edit::tests::edit_file_replace_all ... ok [INFO] [stdout] test tool::bash::tests::truncate_output_keeps_head_and_tail ... ok [INFO] [stdout] test tool::edit::tests::normalize_eol_converts_crlf_to_lf ... ok [INFO] [stdout] test tool::edit::tests::run_missing_required_fields ... ok [INFO] [stdout] test tool::edit::tests::normalize_eol_lf_unchanged ... ok [INFO] [stdout] test tool::glob::tests::glob_files_invalid_directory ... ok [INFO] [stdout] test client::anthropic::tests::stream_message_receiver_dropped_mid_stream_does_not_deadlock ... ok [INFO] [stdout] test tool::glob::tests::glob_files_invalid_pattern ... ok [INFO] [stdout] test tool::glob::tests::glob_files_basic ... ok [INFO] [stdout] test tool::edit::tests::edit_file_replaces_unique_string ... ok [INFO] [stdout] test tool::glob::tests::glob_files_recursive ... ok [INFO] [stdout] test tool::glob::tests::run_missing_pattern ... ok [INFO] [stdout] test tool::glob::tests::glob_files_no_matches ... ok [INFO] [stdout] test tool::glob::tests::glob_files_respects_gitignore ... ok [INFO] [stdout] test tool::grep::tests::grep_files_basic ... ok [INFO] [stdout] test tool::edit::tests::run_valid_edit ... ok [INFO] [stdout] test tool::grep::tests::grep_files_count_mode ... ok [INFO] [stdout] test tool::glob::tests::glob_files_skips_hidden_dirs ... ok [INFO] [stdout] test tool::grep::tests::grep_files_count_mode_singular ... ok [INFO] [stdout] test tool::glob::tests::run_finds_files ... ok [INFO] [stdout] test tool::grep::tests::grep_files_count_mode_truncated ... ok [INFO] [stdout] test tool::grep::tests::grep_files_files_with_matches_no_matches ... ok [INFO] [stdout] test tool::grep::tests::grep_files_case_insensitive ... ok [INFO] [stdout] test tool::grep::tests::grep_files_files_with_matches_mode ... ok [INFO] [stdout] test tool::grep::tests::grep_files_invalid_include_pattern ... ok [INFO] [stdout] test tool::glob::tests::glob_files_truncated_at_max_results ... ok [INFO] [stdout] test tool::grep::tests::grep_files_invalid_regex ... ok [INFO] [stdout] test tool::grep::tests::grep_files_nonexistent_path ... ok [INFO] [stdout] test tool::grep::tests::grep_files_no_matches ... ok [INFO] [stdout] test tool::grep::tests::grep_files_head_limit_across_multiple_files ... ok [INFO] [stdout] test tool::grep::tests::grep_files_files_with_matches_truncated ... ok [INFO] [stdout] test tool::grep::tests::grep_files_head_limit ... ok [INFO] [stdout] test tool::grep::tests::grep_files_single_file_too_large ... ok [INFO] [stdout] test tool::grep::tests::grep_files_single_file ... ok [INFO] [stdout] test tool::grep::tests::grep_files_warns_about_skipped_large_files ... ok [INFO] [stdout] test tool::grep::tests::grep_files_skips_binary ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_context_merges_adjacent_ranges ... ok [INFO] [stdout] test tool::grep::tests::grep_files_skips_hidden_dirs ... ok [INFO] [stdout] test tool::grep::tests::grep_files_regex ... ok [INFO] [stdout] test tool::bash::tests::execute_stderr_output ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_context_respects_head_limit ... ok [INFO] [stdout] test tool::grep::tests::run_missing_pattern ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_include_filter ... ok [INFO] [stdout] test tool::grep::tests::run_finds_pattern ... ok [INFO] [stdout] test tool::read::tests::read_file_directory ... ok [INFO] [stdout] test tool::read::tests::read_file_empty ... ok [INFO] [stdout] test tool::bash::tests::execute_no_output ... ok [INFO] [stdout] test tool::bash::tests::execute_combined_stdout_and_stderr ... ok [INFO] [stdout] test tool::bash::tests::execute_echo ... ok [INFO] [stdout] test tool::grep::tests::grep_files_respects_gitignore ... ok [INFO] [stdout] test tool::grep::tests::grep_files_head_limit_zero_means_unlimited ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_context_no_matches_in_file ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_context ... ok [INFO] [stdout] test tool::read::tests::read_file_not_found ... ok [INFO] [stdout] test tool::read::tests::read_file_offset_beyond_end ... ok [INFO] [stdout] test tool::grep::tests::grep_files_with_context_separates_distant_ranges ... ok [INFO] [stdout] test tool::read::tests::read_file_binary_detected ... ok [INFO] [stdout] test tool::bash::tests::execute_nonzero_exit_not_flagged_as_error ... ok [INFO] [stdout] test tool::read::tests::strip_bom_no_bom_unchanged ... ok [INFO] [stdout] test tool::read::tests::strip_bom_removes_bom ... ok [INFO] [stdout] test tool::tests::definitions_returns_tool_with_valid_schema ... ok [INFO] [stdout] test tool::tests::display_path_outside_base_stays_absolute ... ok [INFO] [stdout] test tool::tests::display_path_relative_inside_base ... ok [INFO] [stdout] test tool::tests::display_path_same_path_returns_filename ... ok [INFO] [stdout] test tool::tests::file_name_bare_name_unchanged ... ok [INFO] [stdout] test tool::read::tests::run_missing_file_path ... ok [INFO] [stdout] test tool::tests::from_result_err_sets_is_error ... ok [INFO] [stdout] test tool::tests::get_returns_registered_tool ... ok [INFO] [stdout] test tool::tests::get_unknown_tool ... ok [INFO] [stdout] test tool::tests::file_name_extracts_basename ... ok [INFO] [stdout] test tool::tests::icon_delegates_to_registered_tool ... ok [INFO] [stdout] test tool::tests::icon_unknown_tool_falls_back_to_default ... ok [INFO] [stdout] test tool::tests::label_delegates_to_registered_tool ... ok [INFO] [stdout] test tool::tests::label_unknown_tool_falls_back_to_raw_name ... ok [INFO] [stdout] test tool::tests::resolve_base_dir_none_returns_cwd ... ok [INFO] [stdout] test tool::tests::resolve_base_dir_some_returns_given_path ... ok [INFO] [stdout] test tool::tests::title_case_capitalizes_first_char_only ... ok [INFO] [stdout] test tool::tests::tool_catalog_icons_match_the_published_prefix_set ... ok [INFO] [stdout] test tool::tests::tool_catalog_names_and_icons_are_unique ... ok [INFO] [stdout] test tool::tests::tool_summarize_call_falls_back_to_bare_name_when_arg_missing ... ok [INFO] [stdout] test tool::tests::tool_summarize_call_wraps_arg_in_title_cased_name ... ok [INFO] [stdout] test tool::tests::tool_summarize_input_plucks_the_primary_field ... ok [INFO] [stdout] test tool::tests::tool_summarize_input_returns_none_when_primary_field_missing ... ok [INFO] [stdout] test tool::tests::truncate_line_long_gets_truncated ... ok [INFO] [stdout] test tool::tests::truncate_line_multibyte_safe ... ok [INFO] [stdout] test tool::tests::truncate_line_short_unchanged ... ok [INFO] [stdout] test tool::write::tests::run_missing_required_fields ... ok [INFO] [stdout] test tool::tests::every_tool_exposes_non_empty_name_description_and_object_schema ... ok [INFO] [stdout] test tool::read::tests::read_file_rejects_non_regular_file ... ok [INFO] [stdout] test tool::read::tests::run_reads_file ... ok [INFO] [stdout] test tool::read::tests::read_file_too_large ... ok [INFO] [stdout] test tool::read::tests::read_file_with_line_numbers ... ok [INFO] [stdout] test tool::write::tests::run_creates_file ... ok [INFO] [stdout] test tool::write::tests::write_file_creates_new ... ok [INFO] [stdout] test tool::read::tests::read_file_byte_budget_truncates_large_output ... ok [INFO] [stdout] test tui::app::tests::dispatch_quit_sets_should_quit_and_leaves_chat_untouched ... ok [INFO] [stdout] test tui::app::tests::dispatch_submit_prompt_updates_chat_status_and_forwards_action ... ok [INFO] [stdout] test tool::write::tests::write_file_fails_when_parent_is_a_file ... ok [INFO] [stdout] test tool::read::tests::read_file_respects_offset_and_limit ... ok [INFO] [stdout] test tool::write::tests::write_file_creates_parent_directories ... ok [INFO] [stdout] test tool::tests::from_result_ok_clears_is_error ... ok [INFO] [stdout] test tool::write::tests::write_file_fails_when_path_is_a_directory ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_key_submit_forwards_through_input_to_dispatch ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_mouse_is_forwarded_to_chat ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_key_ctrl_c_triggers_quit_from_any_mode ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_resize_schedules_dirty_for_relayout ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_scroll_key_routes_to_chat_while_input_disabled ... ok [INFO] [stdout] test tool::write::tests::write_file_empty_content ... ok [INFO] [stdout] test tool::read::tests::read_file_strips_bom ... ok [INFO] [stdout] test tool::read::tests::read_file_offset_zero_treated_as_one ... ok [INFO] [stdout] test tool::bash::tests::run_timeout ... ok [INFO] [stdout] test tui::app::tests::handle_error_pushes_error_entry_and_finishes_turn ... ok [INFO] [stdout] test tui::app::tests::handle_session_title_updated_refreshes_status_bar ... ok [INFO] [stdout] test tui::app::tests::handle_session_title_updated_replaces_existing_title ... ok [INFO] [stdout] test tui::app::tests::handle_tool_call_end_with_title_pushes_result_entry ... ok [INFO] [stdout] test tui::app::tests::handle_stream_token_switches_to_streaming_and_disables_input ... ok [INFO] [stdout] test tool::write::tests::write_file_overwrites_existing ... ok [INFO] [stdout] test tui::app::tests::handle_crossterm_unknown_event_is_a_noop ... ok [INFO] [stdout] test tui::app::tests::handle_tool_call_start_switches_to_tool_running ... ok [INFO] [stdout] test tui::app::tests::handle_turn_complete_returns_to_idle_and_reenables_input ... ok [INFO] [stdout] test tui::components::chat::blocks::tests::prepend_markdown_prefix_adds_styled_prefix ... ok [INFO] [stdout] test tui::app::tests::new_plumbs_resumed_title_into_status_bar ... ok [INFO] [stdout] test tui::components::chat::blocks::tool::tests::border_continuation_prefix_preserves_bar_position ... ok [INFO] [stdout] test tui::app::tests::new_without_title_leaves_slot_unset ... ok [INFO] [stdout] test tui::components::chat::blocks::tests::push_icon_wrapped_short_text_single_line ... ok [INFO] [stdout] test tui::components::chat::blocks::tool::tests::truncate_to_bytes_exact_boundary_no_split ... ok [INFO] [stdout] test tui::components::chat::blocks::tool::tests::truncate_to_bytes_over_limit_appends_ellipsis ... ok [INFO] [stdout] test tui::app::tests::handle_tool_call_end_without_title_skips_result_entry ... ok [INFO] [stdout] test tui::app::tests::new_whitespace_title_is_filtered_by_status_bar ... ok [INFO] [stdout] test tui::components::chat::blocks::tests::push_icon_wrapped_uses_display_width_not_bytes ... ok [INFO] [stdout] test tui::components::chat::blocks::tests::push_icon_wrapped_wraps_long_text_with_indent ... ok [INFO] [stdout] test tui::components::chat::blocks::tool::tests::truncate_to_bytes_respects_char_boundary ... ok [INFO] [stdout] test tui::components::chat::blocks::tool::tests::truncate_to_bytes_under_limit_returns_input ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_defers_until_viewport_measured ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_incremental_inserts_paragraph_gaps ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_line_boundary_does_not_commit ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_paragraph_boundary_commits ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_trailing_paragraph_break_only ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_after_committed_assistant_omits_duplicate_icon ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_clears_thinking ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_preserves_blank_before_partial_list_item_trailing ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_cached_and_tail_both_visible ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_inserts_blank_separator_after_tool_output ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_multiple_paragraphs_commit_to_last_break ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_no_spurious_blank_between_consecutive_list_items ... ok [INFO] [stdout] test tui::components::chat::tests::advance_streaming_cache_no_newline_keeps_boundary_zero ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_preserves_blank_between_committed_paragraphs ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_preserves_blank_between_cache_and_live_tail ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_shows_partial_text ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_renders_buffer_ending_in_newline_before_cache_advance ... ok [INFO] [stdout] test tui::components::chat::tests::append_thinking_token_after_user_has_separator ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_trailing_newline_with_empty_tail ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_uncommitted_newlines_all_render ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_without_prior_assistant_shows_icon ... ok [INFO] [stdout] test tui::components::chat::tests::append_thinking_token_after_tool_call_has_separator ... ok [INFO] [stdout] test tui::components::chat::tests::append_thinking_token_hidden_when_disabled ... ok [INFO] [stdout] test tui::components::chat::tests::append_thinking_token_visible_when_enabled ... ok [INFO] [stdout] test tui::components::chat::tests::append_stream_token_renders_committed_and_trailing_before_cache_advance ... ok [INFO] [stdout] test tui::components::chat::tests::build_text_empty_shows_welcome ... ok [INFO] [stdout] test tui::components::chat::tests::consecutive_tool_calls_have_no_gap ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_ctrl_end_scrolls_to_bottom ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_ctrl_home_scrolls_to_top ... ok [INFO] [stdout] test tui::components::chat::tests::build_text_full_conversation ... ok [INFO] [stdout] test tui::components::chat::tests::commit_streaming_clears_state ... ok [INFO] [stdout] test tui::components::chat::tests::commit_streaming_empty_buffer_no_block ... ok [INFO] [stdout] test tui::components::chat::tests::commit_streaming_moves_buffer_to_block ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_arrow_down_scrolls_down ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_arrow_up_scrolls_up ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_mouse_scroll_down ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_unhandled_key_returns_none ... ok [INFO] [stdout] test tui::components::chat::tests::last_is_error_false_for_non_error_blocks ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_empty_slice_is_noop ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_mouse_scroll_up ... ok [INFO] [stdout] test tool::glob::tests::glob_files_sorted_by_mtime ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_hides_resumed_thinking_when_show_thinking_disabled ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_page_down ... ok [INFO] [stdout] test tui::components::chat::tests::handle_event_page_up ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_renders_resumed_thinking_when_show_thinking_enabled ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_renders_tool_result_after_paired_tool_use ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_restores_tool_call_after_assistant_text ... ok [INFO] [stdout] test tui::components::chat::tests::last_is_error_false_when_no_blocks ... ok [INFO] [stdout] test tui::components::chat::tests::last_is_error_true_after_push_error ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_multi_tool_turn_pairs_inline_with_orphan_fallback ... ok [INFO] [stdout] test tui::components::chat::tests::push_error_shows_error_indicator ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_populates_user_and_assistant_entries ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_joins_multiple_text_blocks ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_redacted_thinking_is_dropped ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_call_after_assistant_has_blank_separator ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_call_shows_icon_and_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_dedup_collapses_body_when_only_line_matches_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_call_wraps_long_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_dedup_drops_first_body_line_matching_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_dedup_leaves_unrelated_first_line_intact ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_tool_result_without_matching_tool_use_uses_fallback_label ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_server_tool_use_renders_like_local_tool_call ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_empty_content_adds_nothing ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_success ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_long_line_is_truncated ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_error ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_truncation ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_exactly_max_no_truncation ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_unknown_tool_falls_back_to_tool_name_as_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_one_over_max_shows_singular_line ... ok [INFO] [stdout] test tui::components::chat::tests::push_tool_result_wraps_long_label ... ok [INFO] [stdout] test tui::components::chat::tests::push_user_message_enables_auto_scroll ... ok [INFO] [stdout] test tui::components::chat::tests::push_user_message_multiline_renders_every_line ... ok [INFO] [stdout] test tui::components::chat::tests::push_user_message_has_icon_and_content ... ok [INFO] [stdout] test tui::components::chat::tests::push_user_message_has_trailing_blank_before_tool_call ... ok [INFO] [stdout] test tui::components::chat::tests::push_welcome_centered_for_width ... ok [INFO] [stdout] test tui::components::chat::tests::load_history_skips_whitespace_only_text ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_down_clamps_to_max_and_enables_auto_scroll ... ok [INFO] [stdout] test tui::app::tests::draw_frame_narrow_width_still_renders_all_three_panels ... ok [INFO] [stdout] test tui::app::tests::draw_frame_lays_out_status_chat_and_input_in_order ... ok [INFO] [stdout] test tui::components::chat::tests::render_history_with_resumed_thinking_block ... ok [INFO] [stdout] test tui::app::tests::draw_frame_with_conversation_and_tool_call ... ok [INFO] [stdout] test tui::app::tests::draw_frame_streaming_shows_spinner_in_status_bar ... ok [INFO] [stdout] test tui::components::chat::tests::render_tool_call_followed_by_result ... ok [INFO] [stdout] test tui::components::chat::tests::render_empty_shows_welcome_screen ... ok [INFO] [stdout] test tui::components::chat::tests::render_updates_content_height ... ok [INFO] [stdout] test tui::components::chat::tests::render_tool_result_overflow_shows_line_count ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_down_increases_offset ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_to_bottom_sets_offset_correctly ... ok [INFO] [stdout] test tui::components::chat::tests::render_user_and_assistant_interleaved ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_to_bottom_zero_when_content_fits ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_up_saturates_at_zero ... ok [INFO] [stdout] test tui::components::chat::tests::scroll_up_decreases_offset_and_disables_auto_scroll ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_enter_submits_nonempty ... ok [INFO] [stdout] test tui::components::chat::tests::update_layout_auto_scrolls_when_enabled ... ok [INFO] [stdout] test tui::components::chat::tests::render_error_entry_is_styled_distinctly ... ok [INFO] [stdout] test tui::components::chat::tests::update_layout_invalidates_streaming_cache_on_width_change ... ok [INFO] [stdout] test tui::components::chat::tests::update_layout_sets_viewport_height ... ok [INFO] [stdout] test tui::components::chat::tests::user_followed_by_assistant_has_no_double_blank ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_alt_enter_inserts_newline ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_ctrl_c_quits_even_when_disabled ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_ctrl_c_returns_quit ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_ctrl_d_returns_quit ... ok [INFO] [stdout] test tui::components::input::tests::height_capped_at_max ... ok [INFO] [stdout] test tui::components::input::tests::height_empty_input_is_three ... ok [INFO] [stdout] test tui::components::input::tests::height_grows_with_content ... ok [INFO] [stdout] test tui::components::input::tests::render_empty_shows_placeholder_and_hint_line ... ok [INFO] [stdout] test tui::components::input::tests::render_with_text_shows_typed_content ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_disabled_ignores_input ... ok [INFO] [stdout] test tui::components::input::tests::handle_event_shift_enter_inserts_newline ... ok [INFO] [stdout] test tui::components::input::tests::submit_trims_whitespace ... ok [INFO] [stdout] test tui::components::input::tests::height_accounts_for_visual_wrapping ... ok [INFO] [stdout] test tui::components::input::tests::render_disabled_applies_dim_foreground_to_text ... ok [INFO] [stdout] test tui::components::input::tests::submit_empty_returns_none ... ok [INFO] [stdout] test tui::components::input::tests::submit_clears_textarea ... ok [INFO] [stdout] test tui::components::input::tests::visual_line_count_no_width_falls_back_to_logical ... ok [INFO] [stdout] test tui::components::input::tests::render_multiline_grows_textarea_region ... ok [INFO] [stdout] test tui::components::input::tests::visual_line_count_mixed_logical_and_wrapped ... ok [INFO] [stdout] test tui::components::status::tests::fit_layout_drops_both_when_nothing_extra_fits ... ok [INFO] [stdout] test tui::components::status::tests::fit_layout_drops_title_before_cwd_when_combined_too_wide ... ok [INFO] [stdout] test tui::components::status::tests::fit_layout_keeps_both_slots_when_everything_fits ... ok [INFO] [stdout] test tui::components::status::tests::fit_layout_keeps_title_when_cwd_is_too_wide_to_fit_alone ... ok [INFO] [stdout] test tui::components::status::tests::handle_event_is_inert ... ok [INFO] [stdout] test tui::components::input::tests::render_long_line_wraps_and_engages_scroll_offset ... ok [INFO] [stdout] test tui::components::status::tests::render_empty_cwd_drops_cwd_slot_entirely ... ok [INFO] [stdout] test tui::components::status::tests::render_idle_with_title_shows_model_title_and_cwd ... ok [INFO] [stdout] test tui::components::status::tests::render_narrow_omits_cwd ... ok [INFO] [stdout] test tui::components::status::tests::render_idle_without_title_leaves_slot_unused ... ok [INFO] [stdout] test tui::components::status::tests::render_idle_shows_ready ... ok [INFO] [stdout] test tui::components::input::tests::set_enabled_toggles_state ... ok [INFO] [stdout] test tui::components::input::tests::visual_line_count_wraps_long_line ... ok [INFO] [stdout] test tui::components::status::tests::render_streaming_shows_spinner ... ok [INFO] [stdout] test tui::components::status::tests::render_drops_title_first_when_tight ... ok [INFO] [stdout] test tui::components::status::tests::render_no_title_still_shows_cwd_wide ... ok [INFO] [stdout] test tui::components::status::tests::set_status_resets_spinner_on_transition ... ok [INFO] [stdout] test tui::components::status::tests::set_status_to_idle_resets_spinner ... ok [INFO] [stdout] test tui::components::status::tests::set_title_stores_non_empty_title ... ok [INFO] [stdout] test tui::components::status::tests::tick_idle_returns_false ... ok [INFO] [stdout] test tui::components::status::tests::tick_streaming_advances_frame_at_threshold ... ok [INFO] [stdout] test tui::components::status::tests::tick_streaming_increments_counter_before_threshold ... ok [INFO] [stdout] test tui::components::status::tests::render_narrow_width_drops_cwd_and_title_slots ... ok [INFO] [stdout] test tui::components::status::tests::render_wide_shows_cwd ... ok [INFO] [stdout] test tui::components::status::tests::render_tool_running_shows_spinner ... ok [INFO] [stdout] test tui::components::status::tests::render_truncates_long_title_with_ellipsis ... ok [INFO] [stdout] test tui::components::status::tests::set_status_same_status_preserves_spinner ... ok [INFO] [stdout] test tui::components::status::tests::set_title_drops_whitespace_only ... ok [INFO] [stdout] test tui::components::status::tests::set_title_none_clears_title ... ok [INFO] [stdout] test tui::components::status::tests::render_tool_running_status ... ok [INFO] [stdout] test tui::components::status::tests::render_wide_shows_title_between_model_and_status ... ok [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_empty_language_uses_fallback ... ok [INFO] [stdout] test tui::components::status::tests::truncate_title_adds_ellipsis_when_over ... ok [INFO] [stdout] test tui::components::status::tests::truncate_title_respects_cjk_width ... ok [INFO] [stdout] test tui::event::tests::channel_sink_delivers_events ... ok [INFO] [stdout] test tui::markdown::render::tests::blockquote_text_and_style ... ok [INFO] [stdout] test tui::markdown::render::tests::blockquote_list_item_wraps_with_blockquote_marker_only ... ok [INFO] [stdout] test tui::markdown::render::tests::bold_and_italic ... ok [INFO] [stdout] test tui::markdown::render::tests::blockquote_wraps_with_marker_on_continuations ... ok [INFO] [stdout] test tui::components::status::tests::tick_wraps_spinner_frames ... ok [INFO] [stdout] test tui::components::status::tests::truncate_title_short_unchanged ... ok [INFO] [stdout] test tui::markdown::render::tests::bold_italic_combined ... ok [INFO] [stdout] test tui::markdown::render::tests::fenced_code_block_plain ... ok [INFO] [stdout] test tui::markdown::render::tests::heading_levels_text_and_styles ... ok [INFO] [stdout] test tui::markdown::render::tests::heading_wraps_at_width ... ok [INFO] [stdout] test tui::components::status::tests::render_streaming_shows_spinner_and_status_label ... ok [INFO] [stdout] test tui::markdown::render::tests::horizontal_rule_text_and_style ... ok [INFO] [stdout] test tui::markdown::render::tests::html_block_rendered_as_text ... ok [INFO] [stdout] test tui::markdown::render::tests::inline_html_preserved ... ok [INFO] [stdout] test tui::markdown::render::tests::inline_code_in_list_item ... ok [INFO] [stdout] test tui::markdown::render::tests::link_appends_url ... ok [INFO] [stdout] test tui::markdown::render::tests::link_url_has_accent_underline_style ... ok [INFO] [stdout] test tui::markdown::render::tests::list_marker_uses_accent_color ... ok [INFO] [stdout] test tui::markdown::render::tests::loose_unordered_list ... ok [INFO] [stdout] test tui::markdown::render::tests::loose_ordered_list ... ok [INFO] [stdout] test tui::markdown::render::tests::nested_blockquote ... ok [INFO] [stdout] test tui::markdown::render::tests::nested_blockquote_wraps_with_nested_markers ... ok [INFO] [stdout] test tui::markdown::render::tests::nested_list ... ok [INFO] [stdout] test tui::markdown::render::tests::paragraph_separation ... ok [INFO] [stdout] test tui::markdown::render::tests::ordered_list_double_digit_alignment ... ok [INFO] [stdout] test tui::markdown::render::tests::strikethrough ... ok [INFO] [stdout] test tui::markdown::render::tests::inline_code ... ok [INFO] [stdout] test tui::markdown::render::tests::link_in_list_item ... ok [INFO] [stdout] test tui::markdown::render::tests::table_alignment ... ok [INFO] [stdout] test tui::markdown::render::tests::table_empty_cells ... ok [INFO] [stdout] test tui::markdown::render::tests::table_basic ... ok [INFO] [stdout] test tui::markdown::render::tests::paragraph_soft_break_joins ... ok [INFO] [stdout] test tui::markdown::render::tests::paragraph_wraps_at_width ... ok [INFO] [stdout] test tui::markdown::render::tests::table_inline_styles ... ok [INFO] [stdout] test tui::markdown::render::tests::plain_text ... ok [INFO] [stdout] test tui::markdown::render::tests::table_header_only ... ok [INFO] [stdout] test tui::markdown::render::tests::table_mismatched_column_counts ... ok [INFO] [stdout] test tui::markdown::render::tests::tight_list_item_wraps_without_repeating_marker ... ok [INFO] [stdout] test tui::markdown::render::tests::tight_unordered_list ... ok [INFO] [stdout] test tui::markdown::render::tests::tight_ordered_list ... ok [INFO] [stdout] test tui::markdown::render::tests::table_header_style ... ok [INFO] [stdout] test tui::theme::tests::accent_is_bold ... ok [INFO] [stdout] test tui::theme::tests::default_theme_has_distinct_colors ... ok [INFO] [stdout] test tui::theme::tests::blockquote_uses_success_color ... ok [INFO] [stdout] test tui::theme::tests::border_focused_uses_accent ... ok [INFO] [stdout] test tui::theme::tests::horizontal_rule_uses_dim_color ... ok [INFO] [stdout] test tui::theme::tests::heading_styles_use_fg_with_expected_modifiers ... ok [INFO] [stdout] test tui::theme::tests::list_marker_uses_accent_color ... ok [INFO] [stdout] test tui::theme::tests::link_uses_accent_with_underline ... ok [INFO] [stdout] test tui::theme::tests::separator_span_contains_pipe ... ok [INFO] [stdout] test tui::terminal::tests::draw_sync_brackets_the_render_with_sync_update_bytes ... ok [INFO] [stdout] test tui::theme::tests::border_unfocused_uses_dim ... ok [INFO] [stdout] test tui::theme::tests::style_helpers_return_expected_foreground ... ok [INFO] [stdout] test tui::theme::tests::table_border_uses_dim_color ... ok [INFO] [stdout] test tui::theme::tests::table_header_is_bold_fg ... ok [INFO] [stdout] test tui::theme::tests::thinking_is_italic ... ok [INFO] [stdout] test tui::theme::tests::tool_border_uses_muted_foreground ... ok [INFO] [stdout] test tui::theme::tests::tool_icon_uses_accent_foreground ... ok [INFO] [stdout] test tui::wrap::tests::continuation_indent_applied ... ok [INFO] [stdout] test tui::wrap::tests::continuation_prefix_spans_applied ... ok [INFO] [stdout] test tui::wrap::tests::force_break_on_long_word ... ok [INFO] [stdout] test tui::wrap::tests::short_line_unchanged ... ok [INFO] [stdout] test tui::wrap::tests::styled_continuation_indent ... ok [INFO] [stdout] test tui::wrap::tests::wraps_at_word_boundary ... ok [INFO] [stdout] test tui::wrap::tests::zero_width_returns_unchanged ... ok [INFO] [stdout] test util::env::tests::bool_any_other_set_value_is_explicit_false ... ok [INFO] [stdout] test tui::wrap::tests::expand_tabs_line_number_format ... ok [INFO] [stdout] test tui::wrap::tests::expand_tabs_no_tabs_unchanged ... ok [INFO] [stdout] test tui::wrap::tests::expand_tabs_mid_line_aligns_to_stop ... ok [INFO] [stdout] test util::env::tests::bool_unset_and_empty_both_return_none ... ok [INFO] [stdout] test util::env::tests::string_empty_returns_none ... ok [INFO] [stdout] test util::env::tests::string_non_empty_returns_owned_value ... ok [INFO] [stdout] test tui::wrap::tests::preserves_styles_across_wrap ... ok [INFO] [stdout] test util::env::tests::bool_recognizes_true_values ... ok [INFO] [stdout] test util::lock::tests::retry_acquire_returns_immediately_on_success ... ok [INFO] [stdout] test util::path::tests::tildify_leaves_home_itself_as_tilde ... ok [INFO] [stdout] test util::path::tests::tildify_preserves_paths_outside_home ... ok [INFO] [stdout] test util::path::tests::tildify_rewrites_home_prefix_to_tilde ... ok [INFO] [stdout] test util::path::tests::xdg_dir_falls_back_to_home_when_xdg_unset ... ok [INFO] [stdout] test util::path::tests::xdg_dir_ignores_relative_xdg_and_uses_home ... ok [INFO] [stdout] test util::env::tests::string_unset_returns_none ... ok [INFO] [stdout] test util::path::tests::xdg_dir_prefers_absolute_xdg_over_home_fallback ... ok [INFO] [stdout] test util::path::tests::xdg_dir_returns_none_without_home_or_xdg ... ok [INFO] [stdout] test util::lock::tests::retry_acquire_retries_until_success_within_budget ... ok [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_unknown_language_uses_fallback ... ok [INFO] [stdout] test tool::edit::tests::edit_file_fails_if_write_is_rejected ... FAILED [INFO] [stdout] test tui::event::tests::channel_sink_send_after_receiver_dropped ... ok [INFO] [stdout] test util::lock::tests::retry_acquire_propagates_fatal_errors_without_retrying ... ok [INFO] [stdout] test util::lock::tests::retry_acquire_returns_contention_err_after_exhausting_retries ... ok [INFO] [stdout] test tool::write::tests::write_file_fails_on_read_only_file ... FAILED [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_empty_code_returns_empty ... ok [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_info_string_with_extra_tokens ... ok [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_known_language_produces_rgb ... ok [INFO] [stdout] test tui::markdown::highlight::tests::highlight_code_multiline_preserves_lines ... ok [INFO] [stdout] test tui::markdown::render::tests::fenced_code_block_with_lang_highlights ... ok [INFO] [stdout] test tool::bash::tests::execute_timeout_kills_backgrounded_children ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- tool::edit::tests::edit_file_fails_if_write_is_rejected stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tool::edit::tests::edit_file_fails_if_write_is_rejected' (505) panicked at crates/oxide-code/src/tool/edit.rs:441:14: [INFO] [stdout] called `Result::unwrap_err()` on an `Ok` value: "Successfully edited /tmp/.tmp3L8AzU/readonly.txt." [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5d2bc00c3eba - std[128c3efe2914e152]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5d2bc00c3eba - std[128c3efe2914e152]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5d2bc00c3eba - std[128c3efe2914e152]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5d2bc00c3eba - <::print::DisplayBacktrace as core[6771d259883166e6]::fmt::Display>::fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5d2bc00de56a - ::fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5d2bc00de56a - core[6771d259883166e6]::fmt::write [INFO] [stdout] 6: 0x5d2bc00ca162 - std[128c3efe2914e152]::io::default_write_fmt::> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:621:11 [INFO] [stdout] 7: 0x5d2bc00ca162 - as std[128c3efe2914e152]::io::Write>::write_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:1976:13 [INFO] [stdout] 8: 0x5d2bc009c30f - ::print [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5d2bc009c30f - std[128c3efe2914e152]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5d2bc00b9389 - std[128c3efe2914e152]::panicking::default_hook [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5d2bbf4c76ec - core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9 [INFO] [stdout] 12: 0x5d2bbf4c76ec - test[b137923399915ecf]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5d2bc00b9602 - core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9 [INFO] [stdout] 14: 0x5d2bc00b9602 - std[128c3efe2914e152]::panicking::panic_with_hook [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5d2bc009c3c8 - std[128c3efe2914e152]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5d2bc0090b79 - std[128c3efe2914e152]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5d2bc009d69d - __rustc[752cc74e29381ccc]::rust_begin_unwind [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5d2bc00dedac - core[6771d259883166e6]::panicking::panic_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5d2bc00deb22 - core[6771d259883166e6]::result::unwrap_failed [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x5d2bbf168a57 - core::result::Result::unwrap_err::h26d4a3cf623090b5 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:1329:22 [INFO] [stdout] 21: 0x5d2bbf1febd0 - ox::tool::edit::tests::edit_file_fails_if_write_is_rejected::{{closure}}::hd5cefe56127a62a9 [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/edit.rs:441:14 [INFO] [stdout] 22: 0x5d2bbef17fd2 - as core::future::future::Future>::poll::h7055f3321f22eeb3 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x5d2bbef181ad - as core::future::future::Future>::poll::hd778092b3d8bebf7 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x5d2bbf12b48d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::he800fe778cba0098 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:70 [INFO] [stdout] 25: 0x5d2bbf12afeb - tokio::task::coop::with_budget::h36b31072806855ed [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:167:5 [INFO] [stdout] 26: 0x5d2bbf12afeb - tokio::task::coop::budget::h32611defbe700232 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:133:5 [INFO] [stdout] 27: 0x5d2bbf12afeb - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::hd0aba18e865671ed [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:25 [INFO] [stdout] 28: 0x5d2bbf125540 - tokio::runtime::scheduler::current_thread::Context::enter::h869f732325751273 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:451:19 [INFO] [stdout] 29: 0x5d2bbf12840d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h20b148bddbf06c9d [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:777:44 [INFO] [stdout] 30: 0x5d2bbf127f74 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h65fe4e7d82b2e1ec [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:68 [INFO] [stdout] 31: 0x5d2bbf02b19b - tokio::runtime::context::scoped::Scoped::set::h7eee6131e07d41e7 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 32: 0x5d2bbee3ca69 - tokio::runtime::context::set_scheduler::{{closure}}::hab03ee820633396f [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:38 [INFO] [stdout] 33: 0x5d2bbf166802 - std::thread::local::LocalKey::try_with::hf17449f1013e655e [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 34: 0x5d2bbf163fde - std::thread::local::LocalKey::with::h7ee114a53595313a [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 35: 0x5d2bbee3c89d - tokio::runtime::context::set_scheduler::h27721eb61da7be77 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:17 [INFO] [stdout] 36: 0x5d2bbf127ce0 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hc6bf007ffe15dd0b [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:27 [INFO] [stdout] 37: 0x5d2bbf127fd6 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h381791b9bdf267b4 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:765:24 [INFO] [stdout] 38: 0x5d2bbf122800 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h12c23e1d0a5ef1a7 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:205:33 [INFO] [stdout] 39: 0x5d2bbf24c983 - tokio::runtime::context::runtime::enter_runtime::h421045720f546a13 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 40: 0x5d2bbf1225c1 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::he6e2e2a654153a74 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:193:9 [INFO] [stdout] 41: 0x5d2bbf1798c4 - tokio::runtime::runtime::Runtime::block_on_inner::hab65a9af1e97ad17 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:371:52 [INFO] [stdout] 42: 0x5d2bbf179c3f - tokio::runtime::runtime::Runtime::block_on::h66d5ef4ef5e9864d [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:345:18 [INFO] [stdout] 43: 0x5d2bbf1fe331 - ox::tool::edit::tests::edit_file_fails_if_write_is_rejected::h06c1d930aba98800 [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/edit.rs:442:49 [INFO] [stdout] 44: 0x5d2bbf1fecf7 - ox::tool::edit::tests::edit_file_fails_if_write_is_rejected::{{closure}}::hec25d737ac565dff [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/edit.rs:428:52 [INFO] [stdout] 45: 0x5d2bbedef0f6 - core::ops::function::FnOnce::call_once::h5707276216dc55d3 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 46: 0x5d2bbf4bb7eb - core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x5d2bbf4bb7eb - test[b137923399915ecf]::__rust_begin_short_backtrace::, fn() -> core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:663:18 [INFO] [stdout] 48: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:74 [INFO] [stdout] 49: 0x5d2bbf4c81bb - as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 50: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panicking::catch_unwind::do_call::, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40 [INFO] [stdout] 51: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panicking::catch_unwind::, core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19 [INFO] [stdout] 52: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panic::catch_unwind::, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14 [INFO] [stdout] 53: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test_in_process [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:27 [INFO] [stdout] 54: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:607:43 [INFO] [stdout] 55: 0x5d2bbf4c2614 - test[b137923399915ecf]::run_test::{closure#1} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:637:41 [INFO] [stdout] 56: 0x5d2bbf4c2614 - std[128c3efe2914e152]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 57: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 58: 0x5d2bbf4cadc2 - ::{closure#1}::{closure#0}> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 59: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40 [INFO] [stdout] 60: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panicking::catch_unwind::<(), core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19 [INFO] [stdout] 61: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14 [INFO] [stdout] 62: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 63: 0x5d2bbf4cadc2 - ::{closure#1} as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 64: 0x5d2bc00c2b7f - + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2249:9 [INFO] [stdout] 65: 0x5d2bc00c2b7f - ::new::thread_start [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 66: 0x74782fe13aa4 - [INFO] [stdout] 67: 0x74782fea0a64 - clone [INFO] [stdout] 68: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tool::write::tests::write_file_fails_on_read_only_file stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tool::write::tests::write_file_fails_on_read_only_file' (646) panicked at crates/oxide-code/src/tool/write.rs:201:26: [INFO] [stdout] called `Result::unwrap_err()` on an `Ok` value: "Successfully updated /tmp/.tmplgiENe/locked.txt." [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5d2bc00c3eba - std[128c3efe2914e152]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5d2bc00c3eba - std[128c3efe2914e152]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5d2bc00c3eba - std[128c3efe2914e152]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5d2bc00c3eba - <::print::DisplayBacktrace as core[6771d259883166e6]::fmt::Display>::fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5d2bc00de56a - ::fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5d2bc00de56a - core[6771d259883166e6]::fmt::write [INFO] [stdout] 6: 0x5d2bc00ca162 - std[128c3efe2914e152]::io::default_write_fmt::> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:621:11 [INFO] [stdout] 7: 0x5d2bc00ca162 - as std[128c3efe2914e152]::io::Write>::write_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:1976:13 [INFO] [stdout] 8: 0x5d2bc009c30f - ::print [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5d2bc009c30f - std[128c3efe2914e152]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5d2bc00b9389 - std[128c3efe2914e152]::panicking::default_hook [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5d2bbf4c76ec - core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9 [INFO] [stdout] 12: 0x5d2bbf4c76ec - test[b137923399915ecf]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5d2bc00b9602 - core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9 [INFO] [stdout] 14: 0x5d2bc00b9602 - std[128c3efe2914e152]::panicking::panic_with_hook [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5d2bc009c3c8 - std[128c3efe2914e152]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5d2bc0090b79 - std[128c3efe2914e152]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5d2bc009d69d - __rustc[752cc74e29381ccc]::rust_begin_unwind [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5d2bc00dedac - core[6771d259883166e6]::panicking::panic_fmt [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5d2bc00deb22 - core[6771d259883166e6]::result::unwrap_failed [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x5d2bbf168a57 - core::result::Result::unwrap_err::h26d4a3cf623090b5 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:1329:22 [INFO] [stdout] 21: 0x5d2bbf1bfb40 - ox::tool::write::tests::write_file_fails_on_read_only_file::{{closure}}::h1d8cd354f07be2e3 [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/write.rs:201:26 [INFO] [stdout] 22: 0x5d2bbef17fd2 - as core::future::future::Future>::poll::h7055f3321f22eeb3 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x5d2bbef181ad - as core::future::future::Future>::poll::hd778092b3d8bebf7 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x5d2bbf12b48d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::he800fe778cba0098 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:70 [INFO] [stdout] 25: 0x5d2bbf12afeb - tokio::task::coop::with_budget::h36b31072806855ed [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:167:5 [INFO] [stdout] 26: 0x5d2bbf12afeb - tokio::task::coop::budget::h32611defbe700232 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:133:5 [INFO] [stdout] 27: 0x5d2bbf12afeb - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::hd0aba18e865671ed [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:25 [INFO] [stdout] 28: 0x5d2bbf125540 - tokio::runtime::scheduler::current_thread::Context::enter::h869f732325751273 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:451:19 [INFO] [stdout] 29: 0x5d2bbf12840d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h20b148bddbf06c9d [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:777:44 [INFO] [stdout] 30: 0x5d2bbf127f74 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h65fe4e7d82b2e1ec [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:68 [INFO] [stdout] 31: 0x5d2bbf02b19b - tokio::runtime::context::scoped::Scoped::set::h7eee6131e07d41e7 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 32: 0x5d2bbee3ca69 - tokio::runtime::context::set_scheduler::{{closure}}::hab03ee820633396f [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:38 [INFO] [stdout] 33: 0x5d2bbf166802 - std::thread::local::LocalKey::try_with::hf17449f1013e655e [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 34: 0x5d2bbf163fde - std::thread::local::LocalKey::with::h7ee114a53595313a [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 35: 0x5d2bbee3c89d - tokio::runtime::context::set_scheduler::h27721eb61da7be77 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:17 [INFO] [stdout] 36: 0x5d2bbf127ce0 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hc6bf007ffe15dd0b [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:27 [INFO] [stdout] 37: 0x5d2bbf127fd6 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h381791b9bdf267b4 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:765:24 [INFO] [stdout] 38: 0x5d2bbf122800 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h12c23e1d0a5ef1a7 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:205:33 [INFO] [stdout] 39: 0x5d2bbf24c983 - tokio::runtime::context::runtime::enter_runtime::h421045720f546a13 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 40: 0x5d2bbf1225c1 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::he6e2e2a654153a74 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:193:9 [INFO] [stdout] 41: 0x5d2bbf1798c4 - tokio::runtime::runtime::Runtime::block_on_inner::hab65a9af1e97ad17 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:371:52 [INFO] [stdout] 42: 0x5d2bbf179c3f - tokio::runtime::runtime::Runtime::block_on::h66d5ef4ef5e9864d [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:345:18 [INFO] [stdout] 43: 0x5d2bbf1bf3a1 - ox::tool::write::tests::write_file_fails_on_read_only_file::hbe83ecf326cfcdf7 [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/write.rs:207:72 [INFO] [stdout] 44: 0x5d2bbf1bfeb7 - ox::tool::write::tests::write_file_fails_on_read_only_file::{{closure}}::hffa6fa57efeb29c9 [INFO] [stdout] at /opt/rustwide/workdir/crates/oxide-code/src/tool/write.rs:192:50 [INFO] [stdout] 45: 0x5d2bbedf35d6 - core::ops::function::FnOnce::call_once::h9a51933d2518a230 [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 46: 0x5d2bbf4bb7eb - core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x5d2bbf4bb7eb - test[b137923399915ecf]::__rust_begin_short_backtrace::, fn() -> core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:663:18 [INFO] [stdout] 48: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:74 [INFO] [stdout] 49: 0x5d2bbf4c81bb - as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 50: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panicking::catch_unwind::do_call::, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40 [INFO] [stdout] 51: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panicking::catch_unwind::, core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19 [INFO] [stdout] 52: 0x5d2bbf4c81bb - std[128c3efe2914e152]::panic::catch_unwind::, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14 [INFO] [stdout] 53: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test_in_process [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:27 [INFO] [stdout] 54: 0x5d2bbf4c81bb - test[b137923399915ecf]::run_test::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:607:43 [INFO] [stdout] 55: 0x5d2bbf4c2614 - test[b137923399915ecf]::run_test::{closure#1} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:637:41 [INFO] [stdout] 56: 0x5d2bbf4c2614 - std[128c3efe2914e152]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 57: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 58: 0x5d2bbf4cadc2 - ::{closure#1}::{closure#0}> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 59: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40 [INFO] [stdout] 60: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panicking::catch_unwind::<(), core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19 [INFO] [stdout] 61: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14 [INFO] [stdout] 62: 0x5d2bbf4cadc2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 63: 0x5d2bbf4cadc2 - ::{closure#1} as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 64: 0x5d2bc00c2b7f - + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2249:9 [INFO] [stdout] 65: 0x5d2bc00c2b7f - ::new::thread_start [INFO] [stdout] at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 66: 0x74782fe13aa4 - [INFO] [stdout] 67: 0x74782fea0a64 - clone [INFO] [stdout] 68: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] tool::edit::tests::edit_file_fails_if_write_is_rejected [INFO] [stdout] tool::write::tests::write_file_fails_on_read_only_file [INFO] [stdout] [INFO] [stdout] test result: FAILED. 809 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.81s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin ox` [INFO] running `Command { std: "docker" "inspect" "248872a492a95b15d5af64f34cb0277daaa31c09ee1fa59cf7362c52e1107243", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "248872a492a95b15d5af64f34cb0277daaa31c09ee1fa59cf7362c52e1107243", kill_on_drop: false }` [INFO] [stdout] 248872a492a95b15d5af64f34cb0277daaa31c09ee1fa59cf7362c52e1107243