[INFO] cloning repository https://github.com/Kamyil/work-tuimer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kamyil/work-tuimer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKamyil%2Fwork-tuimer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKamyil%2Fwork-tuimer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d3eebc56e247af015dbe417f0ed7f27716109589 [INFO] testing Kamyil/work-tuimer against 1.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKamyil%2Fwork-tuimer" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Kamyil/work-tuimer [INFO] finished tweaking git repo https://github.com/Kamyil/work-tuimer [INFO] tweaked toml for git repo https://github.com/Kamyil/work-tuimer written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Kamyil/work-tuimer on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Kamyil/work-tuimer already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml v0.8.23 [INFO] [stderr] Downloaded toml_write v0.1.2 [INFO] [stderr] Downloaded quote v1.0.41 [INFO] [stderr] Downloaded unicode-ident v1.0.22 [INFO] [stderr] Downloaded time-macros v0.2.24 [INFO] [stderr] Downloaded signal-hook-mio v0.2.5 [INFO] [stderr] Downloaded unicode-truncate v1.1.0 [INFO] [stderr] Downloaded fallible-streaming-iterator v0.1.9 [INFO] [stderr] Downloaded once_cell_polyfill v1.70.2 [INFO] [stderr] Downloaded lru v0.12.5 [INFO] [stderr] Downloaded toml_edit v0.22.27 [INFO] [stderr] Downloaded serde_spanned v0.6.9 [INFO] [stderr] Downloaded windows-targets v0.53.5 [INFO] [stderr] Downloaded powerfmt v0.2.0 [INFO] [stderr] Downloaded anstyle-query v1.1.4 [INFO] [stderr] Downloaded fuzzy-matcher v0.3.7 [INFO] [stderr] Downloaded deranged v0.5.5 [INFO] [stderr] Downloaded anstyle-parse v0.2.7 [INFO] [stderr] Downloaded utf8parse v0.2.2 [INFO] [stderr] Downloaded signal-hook v0.3.18 [INFO] [stderr] Downloaded anyhow v1.0.100 [INFO] [stderr] Downloaded clap_derive v4.5.49 [INFO] [stderr] Downloaded clap v4.5.51 [INFO] [stderr] Downloaded crossterm v0.27.0 [INFO] [stderr] Downloaded itertools v0.13.0 [INFO] [stderr] Downloaded serde_json v1.0.145 [INFO] [stderr] Downloaded clap_builder v4.5.51 [INFO] [stderr] Downloaded regex v1.12.2 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] [stderr] Downloaded hashbrown v0.16.0 [INFO] [stderr] Downloaded syn v2.0.108 [INFO] [stderr] Downloaded hashbrown v0.14.5 [INFO] [stderr] Downloaded unicode-width v0.1.14 [INFO] [stderr] Downloaded zerocopy v0.8.39 [INFO] [stderr] Downloaded wasip2 v1.0.1+wasi-0.2.4 [INFO] [stderr] Downloaded time v0.3.44 [INFO] [stderr] Downloaded winnow v0.7.13 [INFO] [stderr] Downloaded zerocopy-derive v0.8.39 [INFO] [stderr] Downloaded regex-syntax v0.8.8 [INFO] [stderr] Downloaded indexmap v2.12.0 [INFO] [stderr] Downloaded mio v0.8.11 [INFO] [stderr] Downloaded rustix v1.1.2 [INFO] [stderr] Downloaded ratatui v0.26.3 [INFO] [stderr] Downloaded anstyle v1.0.13 [INFO] [stderr] Downloaded compact_str v0.7.1 [INFO] [stderr] Downloaded log v0.4.28 [INFO] [stderr] Downloaded fallible-iterator v0.3.0 [INFO] [stderr] Downloaded hashlink v0.9.1 [INFO] [stderr] Downloaded wit-bindgen v0.46.0 [INFO] [stderr] Downloaded regex-automata v0.4.13 [INFO] [stderr] Downloaded tempfile v3.23.0 [INFO] [stderr] Downloaded clap_lex v0.7.6 [INFO] [stderr] Downloaded static_assertions v1.1.0 [INFO] [stderr] Downloaded anstream v0.6.21 [INFO] [stderr] Downloaded option-ext v0.2.0 [INFO] [stderr] Downloaded cassowary v0.3.0 [INFO] [stderr] Downloaded pkg-config v0.3.32 [INFO] [stderr] Downloaded bitflags v2.10.0 [INFO] [stderr] Downloaded is_terminal_polyfill v1.70.2 [INFO] [stderr] Downloaded libc v0.2.177 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.53.1 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.53.1 [INFO] [stderr] Downloaded windows_i686_gnullvm v0.53.1 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.53.1 [INFO] [stderr] Downloaded libredox v0.1.10 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.53.1 [INFO] [stderr] Downloaded windows_i686_msvc v0.53.1 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.53.1 [INFO] [stderr] Downloaded windows_i686_gnu v0.53.1 [INFO] [stderr] Downloaded redox_users v0.4.6 [INFO] [stderr] Downloaded dirs-sys v0.4.1 [INFO] [stderr] Downloaded dirs v5.0.1 [INFO] [stderr] Downloaded castaway v0.2.4 [INFO] [stderr] Downloaded strum_macros v0.26.4 [INFO] [stderr] Downloaded memchr v2.7.6 [INFO] [stderr] Downloaded anstyle-wincon v3.0.10 [INFO] [stderr] Downloaded colorchoice v1.0.4 [INFO] [stderr] Downloaded stability v0.2.1 [INFO] [stderr] Downloaded errno v0.3.14 [INFO] [stderr] Downloaded num-conv v0.1.0 [INFO] [stderr] Downloaded time-core v0.1.6 [INFO] [stderr] Downloaded strum v0.26.3 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded proc-macro2 v1.0.103 [INFO] [stderr] Downloaded linux-raw-sys v0.11.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.30.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2584648e6e8685ac66ced7e42d158b427926dd445bd93f3eaf5842ea4638ec24 [INFO] running `Command { std: "docker" "start" "-a" "2584648e6e8685ac66ced7e42d158b427926dd445bd93f3eaf5842ea4638ec24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2584648e6e8685ac66ced7e42d158b427926dd445bd93f3eaf5842ea4638ec24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2584648e6e8685ac66ced7e42d158b427926dd445bd93f3eaf5842ea4638ec24", kill_on_drop: false }` [INFO] [stdout] 2584648e6e8685ac66ced7e42d158b427926dd445bd93f3eaf5842ea4638ec24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7f2384a000a965cbb01fd07f0e66aa5b8a564e15cf3de34bb2a06e4059ed3d4d [INFO] running `Command { std: "docker" "start" "-a" "7f2384a000a965cbb01fd07f0e66aa5b8a564e15cf3de34bb2a06e4059ed3d4d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling clap_lex v0.7.6 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.6 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling clap_builder v4.5.51 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling compact_str v0.7.1 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossterm v0.27.0 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling ratatui v0.26.3 [INFO] [stderr] Compiling clap v4.5.51 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling work-tuimer v0.6.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.81s [INFO] running `Command { std: "docker" "inspect" "7f2384a000a965cbb01fd07f0e66aa5b8a564e15cf3de34bb2a06e4059ed3d4d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7f2384a000a965cbb01fd07f0e66aa5b8a564e15cf3de34bb2a06e4059ed3d4d", kill_on_drop: false }` [INFO] [stdout] 7f2384a000a965cbb01fd07f0e66aa5b8a564e15cf3de34bb2a06e4059ed3d4d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 58cccb6873b50d0993f408997ccd1d140559ca6b1f6103c744225e3d1a6bb776 [INFO] running `Command { std: "docker" "start" "-a" "58cccb6873b50d0993f408997ccd1d140559ca6b1f6103c744225e3d1a6bb776", kill_on_drop: false }` [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling crossterm v0.27.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling ratatui v0.26.3 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling work-tuimer v0.6.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 15.07s [INFO] running `Command { std: "docker" "inspect" "58cccb6873b50d0993f408997ccd1d140559ca6b1f6103c744225e3d1a6bb776", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "58cccb6873b50d0993f408997ccd1d140559ca6b1f6103c744225e3d1a6bb776", kill_on_drop: false }` [INFO] [stdout] 58cccb6873b50d0993f408997ccd1d140559ca6b1f6103c744225e3d1a6bb776 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e9b2440537048f4601721583c85a7a63e4ab67a25e6a7bad757ea7323788c4a6 [INFO] running `Command { std: "docker" "start" "-a" "e9b2440537048f4601721583c85a7a63e4ab67a25e6a7bad757ea7323788c4a6", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/work_tuimer-13f9c930fccc8381) [INFO] [stdout] [INFO] [stdout] running 176 tests [INFO] [stdout] test cli::export::tests::test_format_total_time_as_hh_mm ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_date_parse ... ok [INFO] [stdout] test cli::export::tests::test_csv_escape_quotes_and_commas ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_range_dates_parse ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_range_all_parse ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_bounded ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_all ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_rejects_invalid_single_value ... ok [INFO] [stdout] test cli::export::tests::test_validate_output_args_rejects_stdout_with_individual ... ok [INFO] [stdout] test cli::export::tests::test_validate_output_args_rejects_stdout_with_out_dir ... ok [INFO] [stdout] test cli::tests::test_cli_session_start_parses_project_and_customer ... ok [INFO] [stdout] test cli::tests::test_cli_doctor_command_parse ... ok [INFO] [stdout] test cli::tests::test_format_duration_hours_minutes_seconds ... ok [INFO] [stdout] test cli::tests::test_format_duration_minutes_seconds ... ok [INFO] [stdout] test cli::tests::test_format_duration_seconds_only ... ok [INFO] [stdout] test cli::tests::test_cli_has_version ... ok [INFO] [stdout] test cli::tests::test_format_duration_zero ... ok [INFO] [stdout] test cli::tests::test_format_time ... ok [INFO] [stdout] test config::tests::test_all_predefined_theme_methods ... ok [INFO] [stdout] test config::tests::test_columns_config_deserialization ... ok [INFO] [stdout] test config::tests::test_columns_config_partial_defaults ... ok [INFO] [stdout] test config::tests::test_config_get_theme ... ok [INFO] [stdout] test config::tests::test_config_serialization ... ok [INFO] [stdout] test config::tests::test_config_deserialization ... ok [INFO] [stdout] test config::tests::test_custom_theme_colors_all_formats ... ok [INFO] [stdout] test config::tests::test_custom_theme_deserialization ... ok [INFO] [stdout] test config::tests::test_custom_theme_from_config ... ok [INFO] [stdout] test config::tests::test_custom_theme_overrides_predefined ... ok [INFO] [stdout] test config::tests::test_default_theme_config ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test config::tests::test_fallback_to_default_when_custom_not_found ... ok [INFO] [stdout] test config::tests::test_parse_color_empty_and_whitespace ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_3_digit ... ok [INFO] [stdout] test config::tests::test_multiple_custom_themes_in_config ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_6_digit ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_edge_cases ... ok [INFO] [stdout] test config::tests::test_parse_color_invalid_fallback ... ok [INFO] [stdout] test config::tests::test_parse_color_named_colors ... ok [INFO] [stdout] test config::tests::test_parse_color_named_variations ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_edge_cases ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_tuple ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_with_parentheses_and_spaces ... ok [INFO] [stdout] test config::tests::test_parse_color_whitespace_handling ... ok [INFO] [stdout] test config::tests::test_theme_color_consistency ... ok [INFO] [stdout] test config::tests::test_theme_config_case_sensitivity ... ok [INFO] [stdout] test config::tests::test_theme_config_get_all_predefined_themes ... ok [INFO] [stdout] test config::tests::test_theme_config_get_default_theme ... ok [INFO] [stdout] test config::tests::test_theme_config_get_kanagawa_theme ... ok [INFO] [stdout] test config::tests::test_theme_from_custom_colors ... ok [INFO] [stdout] test config::tests::test_theme_serialization ... ok [INFO] [stdout] test config::tests::test_tracker_config_defaults ... ok [INFO] [stdout] test integrations::tests::test_build_url_browse ... ok [INFO] [stdout] test integrations::tests::test_build_url_github ... ok [INFO] [stdout] test integrations::tests::test_build_url_complex_query_string ... ok [INFO] [stdout] test integrations::tests::test_build_url_with_query_params_in_browse_url ... ok [INFO] [stdout] test integrations::tests::test_build_url_with_ticket_in_query_params ... ok [INFO] [stdout] test integrations::tests::test_build_url_worklog ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_no_match_no_default ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_bracketed ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_default_fallback ... ok [INFO] [stdout] test models::day_data::tests::test_add_multiple_records ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_multiple_trackers ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_in_middle ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_lin_format ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_by_pattern ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_no_ticket ... ok [INFO] [stdout] test models::day_data::tests::test_add_record ... ok [INFO] [stdout] test models::day_data::tests::test_add_record_updates_last_id ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_invalid_format ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_empty ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_simple ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_multiple_different_tasks ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_wl_format ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_same_task_multiple_times ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_single_task ... ok [INFO] [stdout] test models::day_data::tests::test_clone ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_overlapping_patterns_first_wins ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_stable_sort_on_tied_durations ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_empty ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_sorted_by_duration ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_already_sorted ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_same_start_time ... ok [INFO] [stdout] test integrations::tests::test_extract_first_ticket_only ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_unsorted ... ok [INFO] [stdout] test models::day_data::tests::test_new_day_data ... ok [INFO] [stdout] test models::day_data::tests::test_next_id ... ok [INFO] [stdout] test models::day_data::tests::test_remove_nonexistent_record ... ok [INFO] [stdout] test models::day_data::tests::test_remove_record ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_single ... ok [INFO] [stdout] test models::time_point::tests::test_clone_and_copy ... ok [INFO] [stdout] test models::time_point::tests::test_display_format ... ok [INFO] [stdout] test models::time_point::tests::test_from_minutes_invalid ... ok [INFO] [stdout] test models::day_data::tests::test_next_id_after_add_record ... ok [INFO] [stdout] test models::time_point::tests::test_from_minutes_since_midnight ... ok [INFO] [stdout] test models::time_point::tests::test_from_str_trait ... ok [INFO] [stdout] test models::time_point::tests::test_new_boundary_values ... ok [INFO] [stdout] test models::time_point::tests::test_new_invalid_hour ... ok [INFO] [stdout] test models::time_point::tests::test_new_invalid_minute ... ok [INFO] [stdout] test models::time_point::tests::test_new_valid_time ... ok [INFO] [stdout] test models::time_point::tests::test_ordering ... ok [INFO] [stdout] test integrations::tests::test_matches_patterns ... ok [INFO] [stdout] test models::time_point::tests::test_parse_invalid_format ... ok [INFO] [stdout] test models::time_point::tests::test_parse_invalid_values ... ok [INFO] [stdout] test models::time_point::tests::test_parse_valid_time ... ok [INFO] [stdout] test models::time_point::tests::test_parse_with_leading_zeros ... ok [INFO] [stdout] test models::time_point::tests::test_parse_without_leading_zeros ... ok [INFO] [stdout] test models::time_point::tests::test_roundtrip_conversion ... ok [INFO] [stdout] test models::time_point::tests::test_to_minutes_since_midnight ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_almost_full_day ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_full_day ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_one_minute ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_overnight ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_overnight_complex ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_zero ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_same_day ... ok [INFO] [stdout] test models::work_record::tests::test_description_field ... ok [INFO] [stdout] test models::work_record::tests::test_clone ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_hours_and_minutes ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_hours_only ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_long ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_zero ... ok [INFO] [stdout] test models::work_record::tests::test_new_work_record ... ok [INFO] [stdout] test models::work_record::tests::test_project_and_customer_fields ... ok [INFO] [stdout] test models::work_record::tests::test_update_duration ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_minutes_only ... ok [INFO] [stdout] test storage::tests::test_json_migration_fails_on_malformed_legacy_day_file ... ok [INFO] [stdout] test storage::tests::test_new_storage_with_temp_dir_initializes_database ... ok [INFO] [stdout] test storage::tests::test_json_migration_imports_legacy_day_data_and_timer ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_returns_error_when_no_dates_match ... ok [INFO] [stdout] test storage::tests::test_json_migration_prefers_running_timer_when_both_timer_files_exist ... ok [INFO] [stdout] test cli::export::tests::test_build_csv_for_dates_includes_customer_column ... ok [INFO] [stdout] test storage::tests::test_json_migration_is_idempotent ... ok [INFO] [stdout] test storage::tests::test_save_and_load_day_data_round_trip ... ok [INFO] [stdout] test storage::tests::test_storage_diagnostics_reports_expected_values ... ok [INFO] [stdout] test storage::tests::test_storage_manager_check_and_reload_detects_external_changes ... ok [INFO] [stdout] test storage::tests::test_save_load_and_clear_active_timer ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_all_individual_creates_one_file_per_date_with_records ... ok [INFO] [stdout] test storage::tests::test_get_file_modified_time_uses_revision_token ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_writes_only_dates_inside_bounds ... ok [INFO] [stdout] test storage::tests::test_list_dates_with_records_only_returns_non_empty_days ... ok [INFO] [stdout] test timer::tests::test_cannot_stop_without_running_timer ... ok [INFO] [stdout] test storage::tests::test_schema_migration_adds_project_and_customer_columns ... ok [INFO] [stdout] test timer::tests::test_cannot_pause_paused_timer ... ok [INFO] [stdout] test timer::tests::test_cannot_resume_running_timer ... ok [INFO] [stdout] test timer::tests::test_timer_serialization ... ok [INFO] [stdout] test timer::tests::test_timer_state_creation ... ok [INFO] [stdout] test ui::history::tests::test_multiple_undos_and_redos ... ok [INFO] [stdout] test ui::history::tests::test_new_history ... ok [INFO] [stdout] test ui::history::tests::test_push_clears_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_push_max_depth_removes_oldest ... ok [INFO] [stdout] test ui::history::tests::test_push_multiple_states ... ok [INFO] [stdout] test ui::history::tests::test_push_respects_max_depth ... ok [INFO] [stdout] test ui::history::tests::test_push_single_state ... ok [INFO] [stdout] test ui::history::tests::test_redo_after_undo ... ok [INFO] [stdout] test ui::history::tests::test_redo_empty_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_redo_moves_to_undo_stack ... ok [INFO] [stdout] test ui::history::tests::test_undo_empty_history ... ok [INFO] [stdout] test ui::history::tests::test_undo_moves_to_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_undo_multiple_times ... ok [INFO] [stdout] test ui::history::tests::test_undo_redo_cycle ... ok [INFO] [stdout] test ui::history::tests::test_undo_single_state ... ok [INFO] [stdout] test timer::tests::test_cannot_start_when_already_running ... ok [INFO] [stdout] test timer::tests::test_pause_without_running_timer ... ok [INFO] [stdout] test timer::tests::test_get_elapsed_duration_running ... ok [INFO] [stdout] test timer::tests::test_status_returns_none_when_no_timer ... ok [INFO] [stdout] test timer::tests::test_get_elapsed_duration_with_pause ... ok [INFO] [stdout] test timer::tests::test_pause_running_timer ... ok [INFO] [stdout] test timer::tests::test_start_timer ... ok [INFO] [stdout] test timer::tests::test_status_returns_running_timer ... ok [INFO] [stdout] test timer::tests::test_resume_paused_timer ... ok [INFO] [stdout] test timer::tests::test_resume_updates_paused_duration ... ok [INFO] [stdout] test timer::tests::test_stop_returns_work_record_with_description ... ok [INFO] [stdout] test timer::tests::test_stop_returns_work_record_with_project_and_customer ... ok [INFO] [stdout] test timer::tests::test_stop_running_timer ... ok [INFO] [stdout] test timer::tests::test_stop_updates_existing_record ... ok [INFO] [stdout] test timer::tests::test_full_timer_lifecycle ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 176 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.61s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/work_tuimer-77c15763c486f8c9) [INFO] [stdout] [INFO] [stdout] running 180 tests [INFO] [stdout] test cli::export::tests::test_csv_escape_quotes_and_commas ... ok [INFO] [stdout] test cli::export::tests::test_format_total_time_as_hh_mm ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_date_parse ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_range_dates_parse ... ok [INFO] [stdout] test cli::export::tests::test_cli_export_range_all_parse ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_all ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_bounded ... ok [INFO] [stdout] test cli::export::tests::test_parse_range_spec_rejects_invalid_single_value ... ok [INFO] [stdout] test cli::export::tests::test_validate_output_args_rejects_stdout_with_individual ... ok [INFO] [stdout] test cli::export::tests::test_validate_output_args_rejects_stdout_with_out_dir ... ok [INFO] [stdout] test cli::tests::test_format_duration_hours_minutes_seconds ... ok [INFO] [stdout] test cli::tests::test_cli_has_version ... ok [INFO] [stdout] test cli::tests::test_format_duration_minutes_seconds ... ok [INFO] [stdout] test cli::tests::test_format_duration_seconds_only ... ok [INFO] [stdout] test cli::tests::test_format_duration_zero ... ok [INFO] [stdout] test cli::tests::test_cli_doctor_command_parse ... ok [INFO] [stdout] test config::tests::test_all_predefined_theme_methods ... ok [INFO] [stdout] test cli::tests::test_cli_session_start_parses_project_and_customer ... ok [INFO] [stdout] test cli::tests::test_format_time ... ok [INFO] [stdout] test config::tests::test_config_serialization ... ok [INFO] [stdout] test config::tests::test_columns_config_deserialization ... ok [INFO] [stdout] test config::tests::test_custom_theme_from_config ... ok [INFO] [stdout] test config::tests::test_columns_config_partial_defaults ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test config::tests::test_config_deserialization ... ok [INFO] [stdout] test config::tests::test_custom_theme_overrides_predefined ... ok [INFO] [stdout] test config::tests::test_default_theme_config ... ok [INFO] [stdout] test config::tests::test_fallback_to_default_when_custom_not_found ... ok [INFO] [stdout] test config::tests::test_custom_theme_deserialization ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_6_digit ... ok [INFO] [stdout] test config::tests::test_config_get_theme ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_edge_cases ... ok [INFO] [stdout] test config::tests::test_parse_color_invalid_fallback ... ok [INFO] [stdout] test config::tests::test_parse_color_named_colors ... ok [INFO] [stdout] test config::tests::test_parse_color_named_variations ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_edge_cases ... ok [INFO] [stdout] test config::tests::test_custom_theme_colors_all_formats ... ok [INFO] [stdout] test config::tests::test_parse_color_hex_3_digit ... ok [INFO] [stdout] test config::tests::test_parse_color_empty_and_whitespace ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_tuple ... ok [INFO] [stdout] test config::tests::test_parse_color_rgb_with_parentheses_and_spaces ... ok [INFO] [stdout] test config::tests::test_parse_color_whitespace_handling ... ok [INFO] [stdout] test config::tests::test_theme_color_consistency ... ok [INFO] [stdout] test config::tests::test_theme_config_case_sensitivity ... ok [INFO] [stdout] test config::tests::test_theme_config_get_all_predefined_themes ... ok [INFO] [stdout] test config::tests::test_theme_config_get_default_theme ... ok [INFO] [stdout] test config::tests::test_theme_config_get_kanagawa_theme ... ok [INFO] [stdout] test config::tests::test_theme_from_custom_colors ... ok [INFO] [stdout] test config::tests::test_tracker_config_defaults ... ok [INFO] [stdout] test config::tests::test_theme_serialization ... ok [INFO] [stdout] test config::tests::test_multiple_custom_themes_in_config ... ok [INFO] [stdout] test integrations::tests::test_build_url_browse ... ok [INFO] [stdout] test integrations::tests::test_build_url_github ... ok [INFO] [stdout] test integrations::tests::test_build_url_complex_query_string ... ok [INFO] [stdout] test integrations::tests::test_build_url_with_query_params_in_browse_url ... ok [INFO] [stdout] test integrations::tests::test_build_url_with_ticket_in_query_params ... ok [INFO] [stdout] test integrations::tests::test_build_url_worklog ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_default_fallback ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_no_match_no_default ... ok [INFO] [stdout] test integrations::tests::test_extract_first_ticket_only ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_no_ticket ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_invalid_format ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_in_middle ... ok [INFO] [stdout] test models::day_data::tests::test_add_record_updates_last_id ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_lin_format ... ok [INFO] [stdout] test models::day_data::tests::test_add_record ... ok [INFO] [stdout] test models::day_data::tests::test_clone ... ok [INFO] [stdout] test models::day_data::tests::test_add_multiple_records ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_empty ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_bracketed ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_multiple_different_tasks ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_sorted_by_duration ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_already_sorted ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_stable_sort_on_tied_durations ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_overlapping_patterns_first_wins ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_same_task_multiple_times ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_empty ... ok [INFO] [stdout] test models::day_data::tests::test_get_grouped_totals_single_task ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_simple ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_same_start_time ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_single ... ok [INFO] [stdout] test models::day_data::tests::test_new_day_data ... ok [INFO] [stdout] test models::day_data::tests::test_next_id ... ok [INFO] [stdout] test models::day_data::tests::test_get_sorted_records_unsorted ... ok [INFO] [stdout] test integrations::tests::test_extract_ticket_wl_format ... ok [INFO] [stdout] test models::day_data::tests::test_remove_record ... ok [INFO] [stdout] test models::day_data::tests::test_remove_nonexistent_record ... ok [INFO] [stdout] test models::time_point::tests::test_clone_and_copy ... ok [INFO] [stdout] test models::time_point::tests::test_from_minutes_invalid ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_by_pattern ... ok [INFO] [stdout] test models::time_point::tests::test_from_minutes_since_midnight ... ok [INFO] [stdout] test models::time_point::tests::test_from_str_trait ... ok [INFO] [stdout] test models::time_point::tests::test_new_boundary_values ... ok [INFO] [stdout] test models::time_point::tests::test_new_invalid_hour ... ok [INFO] [stdout] test models::time_point::tests::test_new_invalid_minute ... ok [INFO] [stdout] test models::time_point::tests::test_display_format ... ok [INFO] [stdout] test models::day_data::tests::test_next_id_after_add_record ... ok [INFO] [stdout] test integrations::tests::test_detect_tracker_multiple_trackers ... ok [INFO] [stdout] test models::time_point::tests::test_ordering ... ok [INFO] [stdout] test models::time_point::tests::test_parse_invalid_format ... ok [INFO] [stdout] test models::time_point::tests::test_parse_without_leading_zeros ... ok [INFO] [stdout] test models::time_point::tests::test_parse_invalid_values ... ok [INFO] [stdout] test models::time_point::tests::test_roundtrip_conversion ... ok [INFO] [stdout] test models::time_point::tests::test_parse_valid_time ... ok [INFO] [stdout] test models::time_point::tests::test_to_minutes_since_midnight ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_almost_full_day ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_full_day ... ok [INFO] [stdout] test models::time_point::tests::test_new_valid_time ... ok [INFO] [stdout] test models::time_point::tests::test_parse_with_leading_zeros ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_overnight_complex ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_same_day ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_overnight ... ok [INFO] [stdout] test models::work_record::tests::test_clone ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_zero ... ok [INFO] [stdout] test models::work_record::tests::test_description_field ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_hours_and_minutes ... ok [INFO] [stdout] test models::work_record::tests::test_calculate_duration_one_minute ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_minutes_only ... ok [INFO] [stdout] test models::work_record::tests::test_new_work_record ... ok [INFO] [stdout] test models::work_record::tests::test_project_and_customer_fields ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_zero ... ok [INFO] [stdout] test models::work_record::tests::test_update_duration ... ok [INFO] [stdout] test integrations::tests::test_matches_patterns ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_hours_only ... ok [INFO] [stdout] test models::work_record::tests::test_format_duration_long ... ok [INFO] [stdout] test storage::tests::test_json_migration_fails_on_malformed_legacy_day_file ... ok [INFO] [stdout] test storage::tests::test_new_storage_with_temp_dir_initializes_database ... ok [INFO] [stdout] test storage::tests::test_json_migration_imports_legacy_day_data_and_timer ... ok [INFO] [stdout] test storage::tests::test_json_migration_is_idempotent ... ok [INFO] [stdout] test tests::test_recognizes_keypad_enter_variants ... ok [INFO] [stdout] test storage::tests::test_json_migration_prefers_running_timer_when_both_timer_files_exist ... ok [INFO] [stdout] test cli::export::tests::test_build_csv_for_dates_includes_customer_column ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_returns_error_when_no_dates_match ... ok [INFO] [stdout] test storage::tests::test_save_and_load_day_data_round_trip ... ok [INFO] [stdout] test storage::tests::test_storage_manager_check_and_reload_detects_external_changes ... ok [INFO] [stdout] test storage::tests::test_storage_diagnostics_reports_expected_values ... ok [INFO] [stdout] test tests::test_ctrl_j_enters_edit_mode_in_browse ... ok [INFO] [stdout] test storage::tests::test_save_load_and_clear_active_timer ... ok [INFO] [stdout] test storage::tests::test_get_file_modified_time_uses_revision_token ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_writes_only_dates_inside_bounds ... ok [INFO] [stdout] test cli::export::tests::test_handle_export_range_all_individual_creates_one_file_per_date_with_records ... ok [INFO] [stdout] test storage::tests::test_list_dates_with_records_only_returns_non_empty_days ... ok [INFO] [stdout] test storage::tests::test_schema_migration_adds_project_and_customer_columns ... ok [INFO] [stdout] test tests::test_ctrl_j_saves_in_edit_mode ... ok [INFO] [stdout] test timer::tests::test_cannot_stop_without_running_timer ... ok [INFO] [stdout] test tests::test_escape_saves_in_edit_mode ... ok [INFO] [stdout] test timer::tests::test_cannot_resume_running_timer ... ok [INFO] [stdout] test timer::tests::test_cannot_start_when_already_running ... ok [INFO] [stdout] test timer::tests::test_timer_serialization ... ok [INFO] [stdout] test timer::tests::test_timer_state_creation ... ok [INFO] [stdout] test ui::history::tests::test_multiple_undos_and_redos ... ok [INFO] [stdout] test ui::history::tests::test_new_history ... ok [INFO] [stdout] test ui::history::tests::test_push_clears_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_push_max_depth_removes_oldest ... ok [INFO] [stdout] test ui::history::tests::test_push_multiple_states ... ok [INFO] [stdout] test ui::history::tests::test_push_respects_max_depth ... ok [INFO] [stdout] test ui::history::tests::test_push_single_state ... ok [INFO] [stdout] test ui::history::tests::test_redo_after_undo ... ok [INFO] [stdout] test ui::history::tests::test_redo_empty_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_redo_moves_to_undo_stack ... ok [INFO] [stdout] test ui::history::tests::test_undo_empty_history ... ok [INFO] [stdout] test ui::history::tests::test_undo_moves_to_redo_stack ... ok [INFO] [stdout] test ui::history::tests::test_undo_multiple_times ... ok [INFO] [stdout] test ui::history::tests::test_undo_redo_cycle ... ok [INFO] [stdout] test ui::history::tests::test_undo_single_state ... ok [INFO] [stdout] test timer::tests::test_pause_without_running_timer ... ok [INFO] [stdout] test timer::tests::test_get_elapsed_duration_running ... ok [INFO] [stdout] test timer::tests::test_cannot_pause_paused_timer ... ok [INFO] [stdout] test timer::tests::test_status_returns_none_when_no_timer ... ok [INFO] [stdout] test timer::tests::test_get_elapsed_duration_with_pause ... ok [INFO] [stdout] test timer::tests::test_pause_running_timer ... ok [INFO] [stdout] test timer::tests::test_start_timer ... ok [INFO] [stdout] test timer::tests::test_status_returns_running_timer ... ok [INFO] [stdout] test timer::tests::test_resume_paused_timer ... ok [INFO] [stdout] test timer::tests::test_stop_returns_work_record_with_description ... ok [INFO] [stdout] test timer::tests::test_resume_updates_paused_duration ... ok [INFO] [stdout] test timer::tests::test_stop_returns_work_record_with_project_and_customer ... ok [INFO] [stdout] test timer::tests::test_stop_running_timer ... ok [INFO] [stdout] test timer::tests::test_full_timer_lifecycle ... ok [INFO] [stdout] test timer::tests::test_stop_updates_existing_record ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 180 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.88s [INFO] [stdout] [INFO] [stderr] Running tests/sqlite_storage_integration.rs (/opt/rustwide/target/debug/deps/sqlite_storage_integration-65d43e3ec39593ef) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_sqlite_day_data_persistence_is_queryable ... ok [INFO] [stdout] test test_sqlite_active_timer_persistence_is_queryable ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s [INFO] [stdout] [INFO] [stderr] Running tests/storage_manager_integration.rs (/opt/rustwide/target/debug/deps/storage_manager_integration-03a8d6d798175f35) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test test_concurrent_external_modification_detection ... ok [INFO] [stdout] test test_load_with_tracking_updates_internal_state ... ok [INFO] [stdout] test test_transactional_operations_rollback_on_error ... ok [INFO] [stdout] test test_multiple_saves_update_tracking ... ok [INFO] [stdout] test test_multiple_days_isolation ... ok [INFO] [stdout] test test_add_update_remove_workflow ... ok [INFO] [stdout] test test_timer_lifecycle_start_stop ... ok [INFO] [stdout] test test_timer_cleared_after_stop ... ok [INFO] [stdout] test test_end_to_end_workflow_timer_to_saved_record ... ok [INFO] [stdout] test test_timer_with_source_record ... ok [INFO] [stdout] test test_timer_pause_resume ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- test_timer_pause_resume stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_timer_pause_resume' (386) panicked at tests/storage_manager_integration.rs:93:5: [INFO] [stdout] Elapsed time increased too much during pause: 353 ms [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5a05b538b40a - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5a05b538b40a - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5a05b538b40a - std[e28293b1aa0f68bd]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5a05b538b40a - <::print::DisplayBacktrace as core[c1f1a4ba060b9bfa]::fmt::Display>::fmt [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5a05b53a0bba - ::fmt [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5a05b53a0bba - core[c1f1a4ba060b9bfa]::fmt::write [INFO] [stdout] 6: 0x5a05b53904c2 - std[e28293b1aa0f68bd]::io::default_write_fmt::> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5a05b53904c2 - as std[e28293b1aa0f68bd]::io::Write>::write_fmt [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5a05b536819f - ::print [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5a05b536819f - std[e28293b1aa0f68bd]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5a05b5382cc9 - std[e28293b1aa0f68bd]::panicking::default_hook [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5a05b50f4b1c - core[c1f1a4ba060b9bfa]::ops::function::Fn<(&'a std[e28293b1aa0f68bd]::panic::PanicHookInfo<'b>,), Output = ()> + core[c1f1a4ba060b9bfa]::marker::Sync + core[c1f1a4ba060b9bfa]::marker::Send> as core[c1f1a4ba060b9bfa]::ops::function::Fn<(&std[e28293b1aa0f68bd]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5a05b50f4b1c - test[273d7611820c9051]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5a05b5382e82 - core[c1f1a4ba060b9bfa]::ops::function::Fn<(&'a std[e28293b1aa0f68bd]::panic::PanicHookInfo<'b>,), Output = ()> + core[c1f1a4ba060b9bfa]::marker::Sync + core[c1f1a4ba060b9bfa]::marker::Send> as core[c1f1a4ba060b9bfa]::ops::function::Fn<(&std[e28293b1aa0f68bd]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5a05b5382e82 - std[e28293b1aa0f68bd]::panicking::panic_with_hook [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5a05b5368258 - std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5a05b535f3d9 - std[e28293b1aa0f68bd]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5a05b536905d - __rustc[b7974e8690430dd9]::rust_begin_unwind [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5a05b53a149c - core[c1f1a4ba060b9bfa]::panicking::panic_fmt [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5a05b50df1d7 - storage_manager_integration::test_timer_pause_resume::hbd2f963b984403f1 [INFO] [stdout] at /opt/rustwide/workdir/tests/storage_manager_integration.rs:93:5 [INFO] [stdout] 20: 0x5a05b50df4f7 - storage_manager_integration::test_timer_pause_resume::{{closure}}::had494e534ad0b740 [INFO] [stdout] at /opt/rustwide/workdir/tests/storage_manager_integration.rs:64:33 [INFO] [stdout] 21: 0x5a05b50e65d6 - core::ops::function::FnOnce::call_once::h3eae97020ac542a3 [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 22: 0x5a05b50e8bfb - core[c1f1a4ba060b9bfa]::result::Result<(), alloc[fdfd2bd8633a6659]::string::String> as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5a05b50e8bfb - test[273d7611820c9051]::__rust_begin_short_backtrace::, fn() -> core[c1f1a4ba060b9bfa]::result::Result<(), alloc[fdfd2bd8633a6659]::string::String>> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:663:18 [INFO] [stdout] 24: 0x5a05b50f55eb - test[273d7611820c9051]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:686:74 [INFO] [stdout] 25: 0x5a05b50f55eb - as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 26: 0x5a05b50f55eb - std[e28293b1aa0f68bd]::panicking::catch_unwind::do_call::, core[c1f1a4ba060b9bfa]::result::Result<(), alloc[fdfd2bd8633a6659]::string::String>> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:581:40 [INFO] [stdout] 27: 0x5a05b50f55eb - std[e28293b1aa0f68bd]::panicking::catch_unwind::, core[c1f1a4ba060b9bfa]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:544:19 [INFO] [stdout] 28: 0x5a05b50f55eb - std[e28293b1aa0f68bd]::panic::catch_unwind::, core[c1f1a4ba060b9bfa]::result::Result<(), alloc[fdfd2bd8633a6659]::string::String>> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panic.rs:359:14 [INFO] [stdout] 29: 0x5a05b50f55eb - test[273d7611820c9051]::run_test_in_process [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:686:27 [INFO] [stdout] 30: 0x5a05b50f55eb - test[273d7611820c9051]::run_test::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:607:43 [INFO] [stdout] 31: 0x5a05b50f0d04 - test[273d7611820c9051]::run_test::{closure#1} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/test/src/lib.rs:637:41 [INFO] [stdout] 32: 0x5a05b50f0d04 - std[e28293b1aa0f68bd]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 33: 0x5a05b50f81f2 - std[e28293b1aa0f68bd]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 34: 0x5a05b50f81f2 - ::{closure#1}::{closure#0}> as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 35: 0x5a05b50f81f2 - std[e28293b1aa0f68bd]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:581:40 [INFO] [stdout] 36: 0x5a05b50f81f2 - std[e28293b1aa0f68bd]::panicking::catch_unwind::<(), core[c1f1a4ba060b9bfa]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:544:19 [INFO] [stdout] 37: 0x5a05b50f81f2 - std[e28293b1aa0f68bd]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panic.rs:359:14 [INFO] [stdout] 38: 0x5a05b50f81f2 - std[e28293b1aa0f68bd]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 39: 0x5a05b50f81f2 - ::{closure#1} as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 40: 0x5a05b538a9bf - + core[c1f1a4ba060b9bfa]::marker::Send> as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 41: 0x5a05b538a9bf - ::new::thread_start [INFO] [stdout] at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 42: 0x739fd6afdaa4 - [INFO] [stdout] 43: 0x739fd6b8aa64 - clone [INFO] [stdout] 44: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] test_timer_pause_resume [INFO] [stdout] [INFO] [stdout] test result: FAILED. 10 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.46s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test storage_manager_integration` [INFO] running `Command { std: "docker" "inspect" "e9b2440537048f4601721583c85a7a63e4ab67a25e6a7bad757ea7323788c4a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e9b2440537048f4601721583c85a7a63e4ab67a25e6a7bad757ea7323788c4a6", kill_on_drop: false }` [INFO] [stdout] e9b2440537048f4601721583c85a7a63e4ab67a25e6a7bad757ea7323788c4a6