[INFO] fetching crate jwt-term 1.1.4... [INFO] testing jwt-term-1.1.4 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate jwt-term 1.1.4 into /workspace/builds/worker-6-tc1/source [INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml [INFO] started tweaking crates.io crate jwt-term 1.1.4 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate jwt-term 1.1.4 [INFO] tweaked toml for crates.io crate jwt-term 1.1.4 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate jwt-term 1.1.4 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate jwt-term 1.1.4 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded simple_asn1 v0.6.4 [INFO] [stderr] Downloaded jsonwebtoken v9.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 227d8139c05d4ecb98d49fe7d1de8a83219ab3d7a69b1a5a29c697383cdea7bb [INFO] running `Command { std: "docker" "start" "-a" "227d8139c05d4ecb98d49fe7d1de8a83219ab3d7a69b1a5a29c697383cdea7bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "227d8139c05d4ecb98d49fe7d1de8a83219ab3d7a69b1a5a29c697383cdea7bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "227d8139c05d4ecb98d49fe7d1de8a83219ab3d7a69b1a5a29c697383cdea7bb", kill_on_drop: false }` [INFO] [stdout] 227d8139c05d4ecb98d49fe7d1de8a83219ab3d7a69b1a5a29c697383cdea7bb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7c9da602db1e2f17c47d7326a478f9e10266d6cf1c0de3bf1c6d8314ddaddc17 [INFO] running `Command { std: "docker" "start" "-a" "7c9da602db1e2f17c47d7326a478f9e10266d6cf1c0de3bf1c6d8314ddaddc17", kill_on_drop: false }` [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling clap_complete v4.5.66 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling simple_asn1 v0.6.4 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling jsonwebtoken v9.3.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling jwt-term v1.1.4 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.48s [INFO] running `Command { std: "docker" "inspect" "7c9da602db1e2f17c47d7326a478f9e10266d6cf1c0de3bf1c6d8314ddaddc17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7c9da602db1e2f17c47d7326a478f9e10266d6cf1c0de3bf1c6d8314ddaddc17", kill_on_drop: false }` [INFO] [stdout] 7c9da602db1e2f17c47d7326a478f9e10266d6cf1c0de3bf1c6d8314ddaddc17 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c01f4d0a0df30d02255bac856f400136cc222ba94e7c3d000f4b5fddc95b9979 [INFO] running `Command { std: "docker" "start" "-a" "c01f4d0a0df30d02255bac856f400136cc222ba94e7c3d000f4b5fddc95b9979", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling jwt-term v1.1.4 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.82s [INFO] running `Command { std: "docker" "inspect" "c01f4d0a0df30d02255bac856f400136cc222ba94e7c3d000f4b5fddc95b9979", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c01f4d0a0df30d02255bac856f400136cc222ba94e7c3d000f4b5fddc95b9979", kill_on_drop: false }` [INFO] [stdout] c01f4d0a0df30d02255bac856f400136cc222ba94e7c3d000f4b5fddc95b9979 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fe2a2c7debc5d844993937f48e7b4a674c6d802c4cf674fdb9e4278a7f52c90f [INFO] running `Command { std: "docker" "start" "-a" "fe2a2c7debc5d844993937f48e7b4a674c6d802c4cf674fdb9e4278a7f52c90f", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/jwt_term-d52e62c3e63c6896) [INFO] [stdout] [INFO] [stdout] running 206 tests [INFO] [stdout] test commands::tests::test_resolve_token_arg_takes_priority_over_env ... ok [INFO] [stdout] test commands::tests::test_resolve_token_empty_arg ... ok [INFO] [stdout] test commands::tests::test_resolve_token_trims_whitespace ... ok [INFO] [stdout] test commands::tests::test_sanitize_io_error_invalid_data ... ok [INFO] [stdout] test commands::tests::test_sanitize_io_error_other_kind ... ok [INFO] [stdout] test commands::tests::test_sanitize_io_error_broken_pipe ... ok [INFO] [stdout] test commands::tests::test_validate_env_var_name_contains_equals ... ok [INFO] [stdout] test commands::tests::test_validate_env_var_name_empty ... ok [INFO] [stdout] test commands::tests::test_resolve_token_whitespace_arg ... ok [INFO] [stdout] test core::decoder::tests::test_decode_segment_json_error_uses_sanitized_message ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_invalid_base64_payload_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_invalid_json_header_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_empty_string_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_empty_header_and_payload_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_invalid_json_payload_fails ... ok [INFO] [stdout] test commands::tests::test_validate_env_var_name_too_long ... ok [INFO] [stdout] test commands::tests::test_sanitize_io_error_unexpected_eof ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_with_four_parts_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_with_one_part_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_empty_payload_fails ... ok [INFO] [stdout] test commands::tests::test_validate_env_var_name_contains_null_byte ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_invalid_base64_header_fails ... ok [INFO] [stdout] test commands::tests::test_sanitize_io_error_timed_out ... ok [INFO] [stdout] test commands::tests::test_resolve_token_from_arg ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_with_two_parts_fails ... ok [INFO] [stdout] test core::decoder::tests::test_decode_valid_hs256_token ... ok [INFO] [stdout] test core::decoder::tests::test_decoded_token_debug_redacts_sensitive_fields ... ok [INFO] [stdout] test core::decoder::tests::test_sanitize_json_error_does_not_leak_content ... ok [INFO] [stdout] test core::decoder::tests::test_sanitize_json_error_format ... ok [INFO] [stdout] test core::jwks::tests::test_extract_header_without_kid ... ok [INFO] [stdout] test core::jwks::tests::test_extract_header_invalid_token ... ok [INFO] [stdout] test core::jwks::tests::test_find_matching_key_no_match ... ok [INFO] [stdout] test core::jwks::tests::test_extract_header_with_kid ... ok [INFO] [stdout] test core::jwks::tests::test_key_algorithm_to_algorithm_all_signing ... ok [INFO] [stdout] test core::jwks::tests::test_resolve_algorithm_from_header_when_jwk_has_no_alg ... ok [INFO] [stdout] test core::jwks::tests::test_find_matching_key_by_kid ... ok [INFO] [stdout] test core::jwks::tests::test_find_matching_key_no_kid_multiple_keys ... ok [INFO] [stdout] test core::jwks::tests::test_key_algorithm_rejects_encryption_algorithms ... ok [INFO] [stdout] test core::jwks::tests::test_find_matching_key_no_kid_single_key ... ok [INFO] [stdout] test core::jwks::tests::test_resolve_algorithm_from_jwk ... ok [INFO] [stdout] test core::jwks::tests::test_fetch_jwks_parses_valid_jwks ... ok [INFO] [stdout] test core::jwks::tests::test_fetch_jwks_rejects_redirect ... ok [INFO] [stdout] test core::jwks::tests::test_resolve_algorithm_returns_jwk_alg_name ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_jwt_error_unknown ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_kid_multibyte_utf8 ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_kid_replaces_ansi_escapes ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_kid_replaces_null_bytes ... ok [INFO] [stdout] test core::jwks::tests::test_rsa_token_key_compatibility ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_kid_short ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_no_sensitive_parts ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_strips_all_sensitive_parts ... ok [INFO] [stdout] test commands::tests::test_resolve_token_env_not_set ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_kid_long ... ok [INFO] [stdout] test core::jwks::tests::test_fetch_jwks_rejects_invalid_json ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_jwt_error_invalid_token ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_accepts_https ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_strips_fragment ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_strips_password ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_strips_query_params ... ok [INFO] [stdout] test core::jwks::tests::test_sanitize_url_for_display_strips_username_only ... ok [INFO] [stdout] test core::jwks::tests::test_validate_token_with_jwk_algorithm_mismatch ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_sanitizes_on_http_error ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_sanitizes_on_success ... ok [INFO] [stdout] test core::time_travel::tests::test_control_char_unit_is_sanitized_in_reason ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_absent_claims ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_boolean_nbf_is_invalid_not_absent ... ok [INFO] [stdout] test core::jwks::tests::test_validate_token_with_jwk_hmac_wrong_key ... ok [INFO] [stdout] test core::jwks::tests::test_fetch_jwks_rejects_server_error ... ok [INFO] [stdout] test core::jwks::tests::test_validate_token_with_jwk_hmac_valid ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_accepts_https_case_insensitive ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_redacts_raw_url_on_parse_failure ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_rejects_empty ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_rejects_ftp ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_empty_header_fails ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_rejects_http ... ok [INFO] [stdout] test core::jwks::tests::test_validate_url_scheme_rejects_no_scheme ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_both_claims_present ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_exp_exactly_at_boundary ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_expired_at_target ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_float_exp_is_valid ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_not_yet_valid_at_target ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_invalid_exp_timestamp ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_invalid_nbf_timestamp ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_nbf_exactly_at_boundary ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_nbf_valid_at_target ... ok [INFO] [stdout] test core::jwks::tests::test_fetch_jwks_rejects_oversized_response ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_preserves_raw_values ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_string_exp_is_invalid_not_absent ... ok [INFO] [stdout] test core::time_travel::tests::test_evaluate_valid_at_target ... ok [INFO] [stdout] test core::time_travel::tests::test_expression_with_ansi_escape_is_sanitized_in_error ... ok [INFO] [stdout] test core::time_travel::tests::test_extract_timestamp_value_float ... ok [INFO] [stdout] test core::time_travel::tests::test_number_str_with_control_chars_is_sanitized_in_reason ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_empty_expression ... ok [INFO] [stdout] test core::time_travel::tests::test_extract_timestamp_value_float_negative ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_expression_too_long ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_days ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_iso8601_with_offset ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_negative_days ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_invalid_number ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_missing_number ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_hours ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_overflow ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_double_negative_rejected ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_plus_minus_rejected ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_years ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_seconds ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_zero ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_unix_epoch ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_signed_digit_only_falls_through_to_epoch ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_whitespace_only ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_unrecognized_format ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_unix_epoch_negative_rejected ... ok [INFO] [stdout] test core::time_travel::tests::test_sanitize_expression_preserves_normal_input ... ok [INFO] [stdout] test core::time_travel::tests::test_sanitize_expression_replaces_control_chars ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_unknown_unit ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_unix_epoch_zero ... ok [INFO] [stdout] test core::time_travel::tests::test_whitespace_only_error_uses_trimmed_expression ... ok [INFO] [stdout] test core::validator::tests::test_hmac_with_pem_key_mismatch ... ok [INFO] [stdout] test core::validator::tests::test_map_algorithm_all_rsa ... ok [INFO] [stdout] test core::validator::tests::test_map_algorithm_unknown ... ok [INFO] [stdout] test core::validator::tests::test_map_algorithm_ec_and_eddsa ... ok [INFO] [stdout] test core::validator::tests::test_rsa_with_secret_mismatch ... ok [INFO] [stdout] test core::validator::tests::test_hmac_with_secret_matches ... ok [INFO] [stdout] test core::validator::tests::test_map_algorithm_all_hmac ... ok [INFO] [stdout] test core::validator::tests::test_rsa_with_pem_matches ... ok [INFO] [stdout] test core::validator::tests::test_validate_eddsa_wrong_key ... ok [INFO] [stdout] test core::validator::tests::test_validate_es256_valid_signature ... ok [INFO] [stdout] test core::validator::tests::test_validate_es256_wrong_key ... ok [INFO] [stdout] test core::validator::tests::test_validate_eddsa_valid_signature ... ok [INFO] [stdout] test core::validator::tests::test_validate_ec_invalid_pem ... ok [INFO] [stdout] test core::validator::tests::test_validate_eddsa_invalid_pem ... ok [INFO] [stdout] test core::validator::tests::test_validate_rejects_alg_none_case_insensitive ... ok [INFO] [stdout] test core::validator::tests::test_validate_hs256_valid_signature ... ok [INFO] [stdout] test core::validator::tests::test_validate_unsupported_algorithm ... ok [INFO] [stdout] test core::validator::tests::test_validate_rsa_invalid_pem ... ok [INFO] [stdout] test core::validator::tests::test_validate_rejects_alg_none ... ok [INFO] [stdout] test core::validator::tests::test_validate_hs256_wrong_secret ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_array_with_elements ... ok [INFO] [stdout] test core::validator::tests::test_validate_hs384_valid_signature ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_bool ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_empty_array ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_empty_object ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_nested_object ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_null ... ok [INFO] [stdout] test core::validator::tests::test_validate_hs512_valid_signature ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_number ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_string ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_value_at_max_depth_boundary ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_object_has_keys_and_values ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_value_beyond_max_depth_scalar ... ok [INFO] [stdout] test display::json_printer::tests::test_json_escape_string ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_string_with_special_chars ... ok [INFO] [stdout] test core::validator::tests::test_validate_rs256_wrong_key ... ok [INFO] [stdout] test display::token_status::tests::test_extract_timestamp_non_numeric ... ok [INFO] [stdout] test display::json_printer::tests::test_plain_json_output ... ok [INFO] [stdout] test display::json_printer::tests::test_colorize_value_at_max_depth_falls_back ... ok [INFO] [stdout] test display::json_printer::tests::test_write_json_colored_output_to_buffer ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_days ... ok [INFO] [stdout] test display::json_printer::tests::test_write_json_plain_output_to_buffer ... ok [INFO] [stdout] test display::token_status::tests::test_extract_timestamp_present ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_hours ... ok [INFO] [stdout] test display::token_status::tests::test_extract_timestamp_missing ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_one_minute ... ok [INFO] [stdout] test display::token_status::tests::test_format_timestamp ... ok [INFO] [stdout] test display::token_status::tests::test_pluralize ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_one_second ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_seconds ... ok [INFO] [stdout] test display::token_status::tests::test_sanitize_for_terminal_replaces_control_chars ... ok [INFO] [stdout] test display::token_status::tests::test_write_time_travel_status_with_expired ... ok [INFO] [stdout] test display::token_status::tests::test_write_validation_result_valid ... ok [INFO] [stdout] test display::token_status::tests::test_write_token_status_with_exp_claim ... ok [INFO] [stdout] test display::token_status::tests::test_write_token_status_with_iat_claim ... ok [INFO] [stdout] test display::token_status::tests::test_write_token_status_no_temporal_claims ... ok [INFO] [stdout] test display::token_status::tests::test_write_validation_result_invalid ... ok [INFO] [stdout] test display::token_status::tests::test_write_time_travel_status_with_valid ... ok [INFO] [stdout] test error::tests::test_conflicting_key_options_display ... ok [INFO] [stdout] test error::tests::test_base64_decode_error_display_includes_segment ... ok [INFO] [stdout] test display::token_status::tests::test_sanitize_for_terminal_preserves_normal_input ... ok [INFO] [stdout] test error::tests::test_error_is_send_and_sync ... ok [INFO] [stdout] test error::tests::test_invalid_env_var_name_display ... ok [INFO] [stdout] test error::tests::test_invalid_time_expression_display ... ok [INFO] [stdout] test error::tests::test_invalid_token_format_display ... ok [INFO] [stdout] test error::tests::test_json_parse_error_display_includes_segment_and_reason ... ok [INFO] [stdout] test error::tests::test_jwks_fetch_error_display ... ok [INFO] [stdout] test error::tests::test_jwks_invalid_key_display ... ok [INFO] [stdout] test error::tests::test_jwks_key_not_found_display ... ok [INFO] [stdout] test error::tests::test_jwks_missing_kid_display ... ok [INFO] [stdout] test error::tests::test_key_file_error_display ... ok [INFO] [stdout] test error::tests::test_key_file_too_large_display ... ok [INFO] [stdout] test error::tests::test_no_key_provided_display ... ok [INFO] [stdout] test error::tests::test_no_token_provided_display ... ok [INFO] [stdout] test error::tests::test_signature_invalid_display ... ok [INFO] [stdout] test error::tests::test_stdin_read_error_display ... ok [INFO] [stdout] test error::tests::test_unsupported_algorithm_display ... ok [INFO] [stdout] test error::tests::test_token_too_large_display ... ok [INFO] [stdout] test error::tests::test_env_var_not_unicode_display ... ok [INFO] [stdout] test display::token_status::tests::test_format_duration_minutes ... ok [INFO] [stdout] test core::validator::tests::test_validate_rs256_valid_signature ... ok [INFO] [stdout] test commands::tests::test_validate_env_var_name_valid ... ok [INFO] [stdout] test commands::tests::test_validate_token_size_exceeds_limit ... ok [INFO] [stdout] test commands::tests::test_validate_token_size_within_limit ... ok [INFO] [stdout] test core::decoder::tests::test_decode_token_with_empty_payload_object ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_iso8601_utc ... ok [INFO] [stdout] test error::tests::test_env_var_not_found_display ... ok [INFO] [stdout] test core::time_travel::tests::test_parse_relative_minutes ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 206 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/cli_test.rs (/opt/rustwide/target/debug/deps/cli_test-2f41965bb4138f4f) [INFO] [stdout] [INFO] [stdout] running 84 tests [INFO] [stdout] test test_completions_invalid_shell_fails ... ok [INFO] [stdout] test test_completions_bash_generates_output ... ok [INFO] [stdout] test test_completions_fish_generates_output ... ok [INFO] [stdout] test test_completions_no_shell_arg_fails ... ok [INFO] [stdout] test test_decode_json_mode_no_section_headers ... ok [INFO] [stdout] test test_decode_invalid_base64_shows_error ... ok [INFO] [stdout] test test_decode_invalid_env_var_name_with_equals ... ok [INFO] [stdout] test test_completions_zsh_generates_output ... ok [INFO] [stdout] test test_completions_help_shows_shell_arg ... ok [INFO] [stdout] test test_decode_env_var_not_set_shows_error ... ok [INFO] [stdout] test test_decode_help_shows_options ... ok [INFO] [stdout] test test_decode_empty_env_var_name ... ok [INFO] [stdout] test test_decode_from_env_var ... ok [INFO] [stdout] test test_decode_empty_token_arg_shows_error ... ok [INFO] [stdout] test test_decode_from_stdin ... ok [INFO] [stdout] test test_decode_valid_token_shows_header ... ok [INFO] [stdout] test test_decode_valid_token_exits_with_zero ... ok [INFO] [stdout] test test_decode_json_mode_outputs_valid_json ... ok [INFO] [stdout] test test_help_exits_with_zero ... ok [INFO] [stdout] test test_decode_valid_token_shows_token_status ... ok [INFO] [stdout] test test_decode_completely_invalid_token_shows_error ... ok [INFO] [stdout] test test_help_flag_shows_description ... ok [INFO] [stdout] test test_decode_from_stdin_with_trailing_newline ... ok [INFO] [stdout] test test_unknown_flag_fails ... ok [INFO] [stdout] test test_no_args_shows_usage_hint ... ok [INFO] [stdout] test test_decode_malformed_token_exits_with_nonzero ... ok [INFO] [stdout] test test_decode_no_token_shows_error ... ok [INFO] [stdout] test test_verify_eddsa_wrong_key_file ... ok [INFO] [stdout] test test_short_help_flag ... ok [INFO] [stdout] test test_decode_valid_token_shows_payload ... ok [INFO] [stdout] test test_no_args_exits_with_nonzero ... ok [INFO] [stdout] test test_unknown_subcommand_fails ... ok [INFO] [stdout] test test_verify_from_env_var ... ok [INFO] [stdout] test test_verify_help_includes_shell_history_warning ... ok [INFO] [stdout] test test_short_version_flag ... ok [INFO] [stdout] test test_verify_from_stdin ... ok [INFO] [stdout] test test_decode_malformed_two_parts_shows_error ... ok [INFO] [stdout] test test_verify_eddsa_valid_key_file ... ok [INFO] [stdout] test test_verify_es256_valid_key_file ... ok [INFO] [stdout] test test_verify_hs256_secret_from_env ... ok [INFO] [stdout] test test_verify_help_shows_options ... ok [INFO] [stdout] test test_verify_hs256_displays_decoded_content ... ok [INFO] [stdout] test test_verify_alg_none_rejected ... ok [INFO] [stdout] test test_verify_hs256_valid_secret ... ok [INFO] [stdout] test test_verify_hs256_wrong_secret ... ok [INFO] [stdout] test test_verify_key_file_not_found ... ok [INFO] [stdout] test test_verify_json_mode_valid ... ok [INFO] [stdout] test test_verify_jwks_conflicts_with_secret_env ... ok [INFO] [stdout] test test_verify_jwks_url_credentials_not_leaked ... ok [INFO] [stdout] test test_verify_jwks_rejects_http_url ... ok [INFO] [stdout] test test_verify_jwks_no_key_provided_includes_jwks_url_hint ... ok [INFO] [stdout] test test_verify_key_file_not_regular_file ... ok [INFO] [stdout] test test_verify_no_token_provided ... ok [INFO] [stdout] test test_verify_jwks_conflicts_with_key_file ... ok [INFO] [stdout] test test_verify_jwks_rejects_non_url ... ok [INFO] [stdout] test test_verify_jwks_conflicts_with_secret ... ok [INFO] [stdout] test test_verify_no_key_provided ... ok [INFO] [stdout] test test_verify_invalid_exits_with_nonzero ... ok [INFO] [stdout] test test_verify_time_travel_json_mode ... ok [INFO] [stdout] test test_verify_time_travel_json_mode_expired ... ok [INFO] [stdout] test test_verify_time_travel_invalid_expression ... ok [INFO] [stdout] test test_verify_jwks_unreachable_host ... ok [INFO] [stdout] test test_verify_time_travel_no_temporal_claims ... ok [INFO] [stdout] test test_verify_key_file_too_large ... ok [INFO] [stdout] test test_verify_rs256_wrong_key_file ... ok [INFO] [stdout] test test_verify_time_travel_shows_valid_at_simulated_time ... ok [INFO] [stdout] test test_verify_time_travel_rejects_flag_like_value ... ok [INFO] [stdout] test test_verify_time_travel_negative_relative ... ok [INFO] [stdout] test test_verify_time_travel_nbf_not_yet_valid ... ok [INFO] [stdout] test test_verify_time_travel_relative_days ... ok [INFO] [stdout] test test_verify_valid_exits_with_zero ... ok [INFO] [stdout] test test_verify_without_time_travel_json_has_no_time_travel_field ... ok [INFO] [stdout] test test_version_flag ... ok [INFO] [stdout] test test_verify_key_file_directory_rejected ... ok [INFO] [stdout] test test_verify_time_travel_exit_code_based_on_signature ... ok [INFO] [stdout] test test_verify_jwks_invalid_url_redacts_raw_input ... ok [INFO] [stdout] test test_verify_time_travel_absolute_iso8601 ... ok [INFO] [stdout] test test_verify_time_travel_shows_expired_at_simulated_time ... ok [INFO] [stdout] test test_verify_rs256_valid_key_file ... ok [INFO] [stdout] test test_verify_json_mode_invalid ... ok [INFO] [stdout] test test_verify_time_travel_without_key_errors ... ok [INFO] [stdout] test test_verify_without_time_travel_has_no_time_travel_section ... ok [INFO] [stdout] test test_verify_secret_env_not_set ... ok [INFO] [stdout] test test_verify_time_travel_empty_expression ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "fe2a2c7debc5d844993937f48e7b4a674c6d802c4cf674fdb9e4278a7f52c90f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe2a2c7debc5d844993937f48e7b4a674c6d802c4cf674fdb9e4278a7f52c90f", kill_on_drop: false }` [INFO] [stdout] fe2a2c7debc5d844993937f48e7b4a674c6d802c4cf674fdb9e4278a7f52c90f