[INFO] fetching crate llm-wasm 0.1.0... [INFO] testing llm-wasm-0.1.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate llm-wasm 0.1.0 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate llm-wasm 0.1.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate llm-wasm 0.1.0 [INFO] tweaked toml for crates.io crate llm-wasm 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate llm-wasm 0.1.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate llm-wasm 0.1.0 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d7a9a266cc5321c3e8f073a3e83c45f3e14fc13777228913012b6465936219d5 [INFO] running `Command { std: "docker" "start" "-a" "d7a9a266cc5321c3e8f073a3e83c45f3e14fc13777228913012b6465936219d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d7a9a266cc5321c3e8f073a3e83c45f3e14fc13777228913012b6465936219d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d7a9a266cc5321c3e8f073a3e83c45f3e14fc13777228913012b6465936219d5", kill_on_drop: false }` [INFO] [stdout] d7a9a266cc5321c3e8f073a3e83c45f3e14fc13777228913012b6465936219d5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b693aae18fbf0d46dcf0c669de8d580ebdd3194a3e441002c707a74d6fe9810e [INFO] running `Command { std: "docker" "start" "-a" "b693aae18fbf0d46dcf0c669de8d580ebdd3194a3e441002c707a74d6fe9810e", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling llm-wasm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.01s [INFO] running `Command { std: "docker" "inspect" "b693aae18fbf0d46dcf0c669de8d580ebdd3194a3e441002c707a74d6fe9810e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b693aae18fbf0d46dcf0c669de8d580ebdd3194a3e441002c707a74d6fe9810e", kill_on_drop: false }` [INFO] [stdout] b693aae18fbf0d46dcf0c669de8d580ebdd3194a3e441002c707a74d6fe9810e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0fec46617094c34d4d64b4d5b0557d8e493fac8c10c979a7dbd76662c1f97995 [INFO] running `Command { std: "docker" "start" "-a" "0fec46617094c34d4d64b4d5b0557d8e493fac8c10c979a7dbd76662c1f97995", kill_on_drop: false }` [INFO] [stderr] Compiling llm-wasm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.97s [INFO] running `Command { std: "docker" "inspect" "0fec46617094c34d4d64b4d5b0557d8e493fac8c10c979a7dbd76662c1f97995", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0fec46617094c34d4d64b4d5b0557d8e493fac8c10c979a7dbd76662c1f97995", kill_on_drop: false }` [INFO] [stdout] 0fec46617094c34d4d64b4d5b0557d8e493fac8c10c979a7dbd76662c1f97995 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] cb2d5e382b353233b8217b2839291b2f3cec848e48fef436f8a82e4b3777fc61 [INFO] running `Command { std: "docker" "start" "-a" "cb2d5e382b353233b8217b2839291b2f3cec848e48fef436f8a82e4b3777fc61", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_wasm-7ae9ff4f183c1c9e) [INFO] [stdout] [INFO] [stdout] running 84 tests [INFO] [stdout] test cache::tests::test_cache_key_includes_messages ... ok [INFO] [stdout] test cache::tests::test_cache_key_includes_model ... ok [INFO] [stdout] test cache::tests::test_fnv1a_hash_different_inputs_differ ... ok [INFO] [stdout] test cache::tests::test_fnv1a_hash_empty_string_is_stable ... ok [INFO] [stdout] test cache::tests::test_fnv1a_hash_is_deterministic ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_expired_returns_none ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_get_missing_returns_none ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_is_empty_initially ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_len_tracks_entries ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_overwrite_updates_timestamp ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_purge_expired_removes_old_entries ... ok [INFO] [stdout] test cache::ttl::tests::test_ttl_cache_set_and_get_returns_value ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_entry_count ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_exceeded_budget_false_under_limit ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_exceeded_budget_true_over_limit ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_record_known_model_ok ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_record_unknown_model_err ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_no_budget_never_exceeded ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_total_accumulates ... ok [INFO] [stdout] test cost::tests::test_cost_ledger_total_always_non_negative ... ok [INFO] [stdout] test cost::tests::test_pricing_cost_usd_calculation ... ok [INFO] [stdout] test cost::tests::test_pricing_for_all_known_models ... ok [INFO] [stdout] test error::tests::test_cache_error_display ... ok [INFO] [stdout] test error::tests::test_budget_exceeded_display ... ok [INFO] [stdout] test error::tests::test_from_serde_json_error ... ok [INFO] [stdout] test error::tests::test_guard_blocked_display ... ok [INFO] [stdout] test error::tests::test_invalid_config_display ... ok [INFO] [stdout] test error::tests::test_no_route_matched_display ... ok [INFO] [stdout] test error::tests::test_retry_exhausted_display ... ok [INFO] [stdout] test error::tests::test_serialization_error_display ... ok [INFO] [stdout] test error::tests::test_template_error_display ... ok [INFO] [stdout] test format::tests::test_json_formatter_extract_array ... ok [INFO] [stdout] test format::tests::test_json_formatter_extract_from_prose ... ok [INFO] [stdout] test format::tests::test_json_formatter_invalid_returns_error ... ok [INFO] [stdout] test format::tests::test_json_formatter_extract_valid_json ... ok [INFO] [stdout] test format::tests::test_json_formatter_is_valid_json_false ... ok [INFO] [stdout] test format::tests::test_json_formatter_is_valid_json_true ... ok [INFO] [stdout] test format::tests::test_json_formatter_nested_object ... ok [INFO] [stdout] test format::tests::test_markdown_has_code_fence_false ... ok [INFO] [stdout] test format::tests::test_markdown_has_code_fence_true ... ok [INFO] [stdout] test format::tests::test_markdown_no_fence_unchanged ... ok [INFO] [stdout] test format::tests::test_markdown_strip_code_fence ... ok [INFO] [stdout] test format::tests::test_markdown_strip_fence_no_language_tag ... ok [INFO] [stdout] test guard::tests::test_content_guard_allows_clean_request ... ok [INFO] [stdout] test guard::tests::test_content_guard_blocks_blocklisted_term ... ok [INFO] [stdout] test guard::tests::test_content_guard_case_insensitive ... ok [INFO] [stdout] test guard::tests::test_guard_chain_allows_clean_request ... ok [INFO] [stdout] test guard::tests::test_guard_chain_empty_allows_everything ... ok [INFO] [stdout] test guard::tests::test_guard_chain_length_blocks ... ok [INFO] [stdout] test guard::tests::test_guard_chain_stops_at_first_block ... ok [INFO] [stdout] test guard::tests::test_length_guard_allows_at_exact_limit ... ok [INFO] [stdout] test guard::tests::test_length_guard_allows_under_limit ... ok [INFO] [stdout] test guard::tests::test_length_guard_blocks_over_limit ... ok [INFO] [stdout] test retry::tests::test_retry_delay_never_exceeds_max ... ok [INFO] [stdout] test retry::tests::test_retry_policy_delay_increases_with_attempts ... ok [INFO] [stdout] test retry::tests::test_retry_policy_exponential_defaults ... ok [INFO] [stdout] test retry::tests::test_retry_policy_new_base_exceeds_max_err ... ok [INFO] [stdout] test retry::tests::test_retry_policy_new_ok ... ok [INFO] [stdout] test retry::tests::test_retry_policy_new_zero_attempts_err ... ok [INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_on_400 ... ok [INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_on_401_403_404 ... ok [INFO] [stdout] test retry::tests::test_retry_policy_should_retry_on_429 ... ok [INFO] [stdout] test retry::tests::test_retry_policy_should_retry_on_500_series ... ok [INFO] [stdout] test routing::tests::test_router_always_condition_matches ... ok [INFO] [stdout] test routing::tests::test_router_first_matching_rule_wins ... ok [INFO] [stdout] test routing::tests::test_router_max_tokens_below_condition ... ok [INFO] [stdout] test routing::tests::test_router_message_count_condition ... ok [INFO] [stdout] test routing::tests::test_router_model_name_contains_condition ... ok [INFO] [stdout] test routing::tests::test_router_returns_fallback_when_no_rules ... ok [INFO] [stdout] test routing::tests::test_routing_condition_serialization_roundtrip ... ok [INFO] [stdout] test template::tests::test_template_render_multiple_variables ... ok [INFO] [stdout] test template::tests::test_template_render_no_tags_passthrough ... ok [INFO] [stdout] test template::tests::test_template_render_partial_substitution ... ok [INFO] [stdout] test template::tests::test_template_render_partial_with_variable ... ok [INFO] [stdout] test template::tests::test_template_render_substitutes_variable ... ok [INFO] [stdout] test template::tests::test_template_render_unknown_partial_errors ... ok [INFO] [stdout] test template::tests::test_template_render_unclosed_tag_errors ... ok [INFO] [stdout] test types::tests::test_chat_message_new ... ok [INFO] [stdout] test template::tests::test_template_render_unknown_variable_leaves_placeholder ... ok [INFO] [stdout] test types::tests::test_chat_request_total_content_chars ... ok [INFO] [stdout] test types::tests::test_chat_response_fields ... ok [INFO] [stdout] test types::tests::test_role_serialization_roundtrip ... ok [INFO] [stdout] test types::tests::test_stream_chunk_finished_flag ... ok [INFO] [stdout] test retry::tests::test_retry_policy_should_not_retry_beyond_max ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running tests/cache_retry_integration.rs (/opt/rustwide/target/debug/deps/cache_retry_integration-417af98b415efe61) [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test cache_key_symmetric_variation ... ok [INFO] [stdout] test cache_key_deterministic_across_calls ... ok [INFO] [stdout] test cached_response_skips_retry_simulation ... ok [INFO] [stdout] test cache_key_model_separator_matters ... ok [INFO] [stdout] test hash_empty_string_is_stable ... ok [INFO] [stdout] test retry_policy_all_retryable_codes ... ok [INFO] [stdout] test cache_stores_multiple_model_responses ... ok [INFO] [stdout] test retry_policy_base_equals_max_is_valid ... ok [INFO] [stdout] test retry_policy_delay_at_attempt_1_is_base ... ok [INFO] [stdout] test hash_long_string_stable ... ok [INFO] [stdout] test retry_policy_delay_caps_at_max ... ok [INFO] [stdout] test hash_case_sensitive ... ok [INFO] [stdout] test retry_policy_base_exceeds_max_is_invalid ... ok [INFO] [stdout] test retry_policy_custom_params ... ok [INFO] [stdout] test hash_different_strings_likely_differ ... ok [INFO] [stdout] test hash_single_char_differs_from_empty ... ok [INFO] [stdout] test retry_policy_exhausted_after_max_attempts ... ok [INFO] [stdout] test retry_policy_invalid_zero_attempts ... ok [INFO] [stdout] test ttl_cache_basic_set_get ... ok [INFO] [stdout] test retry_policy_non_retryable_codes ... ok [INFO] [stderr] Running tests/cost_routing.rs (/opt/rustwide/target/debug/deps/cost_routing-fe32532295774b9d) [INFO] [stdout] test ttl_cache_expired_removes_entry ... ok [INFO] [stderr] Running tests/full_pipeline.rs (/opt/rustwide/target/debug/deps/full_pipeline-338d82781cb308bb) [INFO] [stdout] test ttl_cache_exact_ttl_boundary_is_expired ... ok [INFO] [stdout] test ttl_cache_just_under_ttl_is_fresh ... ok [INFO] [stdout] test ttl_cache_is_empty_after_purge_all ... ok [INFO] [stdout] test ttl_cache_multiple_entries_independent_ttls ... ok [INFO] [stdout] test ttl_cache_miss_returns_none ... ok [INFO] [stdout] test ttl_cache_overwrite_refreshes_timestamp ... ok [INFO] [stdout] test ttl_cache_purge_expired_removes_correct_count ... ok [INFO] [stdout] test ttl_cache_purge_on_empty_is_zero ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_budget_enforced_after_routing ... ok [INFO] [stdout] test test_ledger_accumulates_across_multiple_routed_requests ... ok [INFO] [stdout] test test_route_then_record_cost ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 47 tests [INFO] [stdout] test chat_message_stores_role_and_content ... ok [INFO] [stdout] test chat_request_empty_messages ... ok [INFO] [stdout] test chat_request_total_chars ... ok [INFO] [stdout] test chat_response_token_sum ... ok [INFO] [stdout] test content_guard_multiple_blocked_terms ... ok [INFO] [stdout] test content_guard_partial_word_match ... ok [INFO] [stdout] test cost_ledger_budget_exceeded_on_single_expensive_call ... ok [INFO] [stdout] test cost_ledger_just_at_budget_succeeds ... ok [INFO] [stdout] test cost_ledger_new_is_empty ... ok [INFO] [stdout] test cost_ledger_no_budget_never_exceeds ... ok [INFO] [stdout] test cost_ledger_records_accumulate ... ok [INFO] [stdout] test guard_chain_all_pass_returns_none ... ok [INFO] [stdout] test guard_chain_empty_allows_all ... ok [INFO] [stdout] test guard_chain_first_guard_blocks_second_not_evaluated ... ok [INFO] [stdout] test json_extract_array_of_objects ... ok [INFO] [stdout] test json_extract_from_long_prose ... ok [INFO] [stdout] test markdown_strip_json_fence ... ok [INFO] [stdout] test json_extract_nested ... ok [INFO] [stdout] test json_is_valid_accepts_primitives ... ok [INFO] [stdout] test json_is_valid_rejects_incomplete ... ok [INFO] [stdout] test length_guard_counts_all_messages ... ok [INFO] [stdout] test markdown_has_fence_detection ... ok [INFO] [stdout] test markdown_strip_rust_fence ... ok [INFO] [stdout] test pipeline_guard_allows_then_routes_then_costs ... ok [INFO] [stdout] test pipeline_guard_blocks_before_routing ... ok [INFO] [stdout] test pipeline_template_generates_request ... ok [INFO] [stdout] test pricing_cost_only_input_tokens ... ok [INFO] [stdout] test pricing_cost_only_output_tokens ... ok [INFO] [stdout] test pricing_for_all_claude_models ... ok [INFO] [stdout] test pricing_opus_more_expensive_than_sonnet ... ok [INFO] [stdout] test role_variants_serialize ... ok [INFO] [stdout] test router_always_condition_overrides_fallback ... ok [INFO] [stdout] test router_max_tokens_below ... ok [INFO] [stdout] test markdown_strip_no_fence_unchanged ... ok [INFO] [stdout] test router_message_count_threshold ... ok [INFO] [stdout] test router_model_name_contains ... ok [INFO] [stdout] test router_no_rules_uses_fallback ... ok [INFO] [stdout] test routing_condition_serialization ... ok [INFO] [stdout] test stream_chunk_delta_field ... ok [INFO] [stdout] test stream_chunk_finished_flag_true ... ok [INFO] [stdout] test template_missing_var_preserved ... ok [INFO] [stdout] test template_render_multiple_same_var ... ok [INFO] [stdout] test template_render_no_vars_passthrough ... ok [INFO] [stdout] test template_render_whitespace_in_tag ... ok [INFO] [stdout] test template_system_prompt_rendering ... ok [INFO] [stdout] test template_unknown_partial_errors ... ok [INFO] [stderr] Running tests/guard_chain_pipeline.rs (/opt/rustwide/target/debug/deps/guard_chain_pipeline-74c295be313c398b) [INFO] [stdout] test template_nested_partials ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_chain_allows_clean_short_message ... ok [INFO] [stdout] test test_chain_blocks_on_content_before_length_checked ... ok [INFO] [stdout] test test_chain_blocks_on_length_when_content_clean ... ok [INFO] [stdout] test test_chain_multiple_messages_content_checked_all ... ok [INFO] [stdout] test test_empty_chain_always_allows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/template_format.rs (/opt/rustwide/target/debug/deps/template_format-f897873f6f1e06c8) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stderr] Doc-tests llm_wasm [INFO] [stdout] test test_extract_json_from_prose_response ... ok [INFO] [stdout] test test_template_with_unknown_var_leaves_placeholder ... ok [INFO] [stdout] test test_render_then_extract_json ... ok [INFO] [stdout] test test_render_json_template_multiple_vars ... ok [INFO] [stdout] test test_render_partial_then_strip_fence ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test src/guard/mod.rs - guard::ContentGuard (line 42) ... ok [INFO] [stdout] test src/retry/mod.rs - retry::RetryPolicy (line 23) ... ok [INFO] [stdout] test src/cost/mod.rs - cost::CostLedger (line 85) ... ok [INFO] [stdout] test src/guard/mod.rs - guard::GuardChain (line 126) ... ok [INFO] [stdout] test src/routing/mod.rs - routing::Router (line 63) ... ok [INFO] [stdout] test src/cache/mod.rs - cache::fnv1a_hash (line 35) ... ok [INFO] [stdout] test src/cache/ttl.rs - cache::ttl::TtlCache (line 23) ... ok [INFO] [stdout] test src/guard/mod.rs - guard::LengthGuard (line 84) ... ok [INFO] [stdout] test src/template/mod.rs - template::TemplateEngine (line 19) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "cb2d5e382b353233b8217b2839291b2f3cec848e48fef436f8a82e4b3777fc61", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb2d5e382b353233b8217b2839291b2f3cec848e48fef436f8a82e4b3777fc61", kill_on_drop: false }` [INFO] [stdout] cb2d5e382b353233b8217b2839291b2f3cec848e48fef436f8a82e4b3777fc61