[INFO] fetching crate rhtmx-router 0.1.0... [INFO] testing rhtmx-router-0.1.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate rhtmx-router 0.1.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate rhtmx-router 0.1.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate rhtmx-router 0.1.0 [INFO] tweaked toml for crates.io crate rhtmx-router 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rhtmx-router 0.1.0 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 rhtmx-router 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rstest_macros v0.22.0 [INFO] [stderr] Downloaded toml_edit v0.23.7 [INFO] [stderr] Downloaded rstest v0.22.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 0da024e25d6a74d3f50bfd9c88f6aee179fb0ce662403550e5355ab73ba24b0e [INFO] running `Command { std: "docker" "start" "-a" "0da024e25d6a74d3f50bfd9c88f6aee179fb0ce662403550e5355ab73ba24b0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0da024e25d6a74d3f50bfd9c88f6aee179fb0ce662403550e5355ab73ba24b0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0da024e25d6a74d3f50bfd9c88f6aee179fb0ce662403550e5355ab73ba24b0e", kill_on_drop: false }` [INFO] [stdout] 0da024e25d6a74d3f50bfd9c88f6aee179fb0ce662403550e5355ab73ba24b0e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 0d9e54314e800684d0f812c05e84052cae9cf0e7d41cb72047e9db5fdd3aaf47 [INFO] running `Command { std: "docker" "start" "-a" "0d9e54314e800684d0f812c05e84052cae9cf0e7d41cb72047e9db5fdd3aaf47", kill_on_drop: false }` [INFO] [stderr] Compiling rhtmx-router v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.66s [INFO] running `Command { std: "docker" "inspect" "0d9e54314e800684d0f812c05e84052cae9cf0e7d41cb72047e9db5fdd3aaf47", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0d9e54314e800684d0f812c05e84052cae9cf0e7d41cb72047e9db5fdd3aaf47", kill_on_drop: false }` [INFO] [stdout] 0d9e54314e800684d0f812c05e84052cae9cf0e7d41cb72047e9db5fdd3aaf47 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] f0cd13fd895c18cc54c138d1b55cfbf596c4f83e044ddbb8ad0a12e477444905 [INFO] running `Command { std: "docker" "start" "-a" "f0cd13fd895c18cc54c138d1b55cfbf596c4f83e044ddbb8ad0a12e477444905", kill_on_drop: false }` [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling toml_datetime v0.7.3 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling rstest_macros v0.22.0 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling toml_parser v1.0.4 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling toml_edit v0.23.7 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling rstest v0.22.0 [INFO] [stderr] Compiling rhtmx-router v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/nextjs_parity_tests.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 14.93s [INFO] running `Command { std: "docker" "inspect" "f0cd13fd895c18cc54c138d1b55cfbf596c4f83e044ddbb8ad0a12e477444905", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f0cd13fd895c18cc54c138d1b55cfbf596c4f83e044ddbb8ad0a12e477444905", kill_on_drop: false }` [INFO] [stdout] f0cd13fd895c18cc54c138d1b55cfbf596c4f83e044ddbb8ad0a12e477444905 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 45f118d6adf94c551a6a3baa768cd26ba92d495770fb959899c9994f92b43dd9 [INFO] running `Command { std: "docker" "start" "-a" "45f118d6adf94c551a6a3baa768cd26ba92d495770fb959899c9994f92b43dd9", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> tests/nextjs_parity_tests.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `rhtmx-router` (test "nextjs_parity_tests") generated 1 warning (run `cargo fix --test "nextjs_parity_tests" -p rhtmx-router` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rhtmx_router-6b05310a9bb86189) [INFO] [stdout] [INFO] [stdout] running 43 tests [INFO] [stdout] test path::tests::test_normalize_path_trailing_slash ... ok [INFO] [stdout] test path::tests::test_path_hierarchy ... ok [INFO] [stdout] test path::tests::test_normalize_path_valid ... ok [INFO] [stdout] test route::detection::tests::test_detect_intercepting_route_from_root ... ok [INFO] [stdout] test path::tests::test_path_hierarchy_short_circuit ... ok [INFO] [stdout] test path::tests::test_is_valid_path ... ok [INFO] [stdout] test path::tests::test_normalize_path_backslash ... ok [INFO] [stdout] test path::tests::test_normalize_path_empty ... ok [INFO] [stdout] test route::detection::tests::test_detect_intercepting_route_no_intercept ... ok [INFO] [stdout] test route::detection::tests::test_detect_parallel_route_multiple_slots ... ok [INFO] [stdout] test path::tests::test_normalize_path_double_slash ... ok [INFO] [stdout] test route::parser::tests::test_calculate_priority_dynamic ... ok [INFO] [stdout] test route::parser::tests::test_calculate_priority_optional_catch_all ... ok [INFO] [stdout] test route::parser::tests::test_calculate_priority_static ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_catch_all ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_dynamic ... ok [INFO] [stdout] test route::detection::tests::test_detect_parallel_route_with_slot ... ok [INFO] [stdout] test route::detection::tests::test_detect_parallel_route_without_slot ... ok [INFO] [stdout] test route::pattern::tests::test_classify_catch_all_with_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_classify_optional ... ok [INFO] [stdout] test route::pattern::tests::test_classify_optional_catch_all ... ok [INFO] [stdout] test route::pattern::tests::test_classify_optional_catch_all_with_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_classify_optional_with_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_classify_required ... ok [INFO] [stdout] test route::pattern::tests::test_classify_required_with_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_classify_static ... ok [INFO] [stdout] test route::pattern::tests::test_parse_param_no_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_parse_param_uuid_constraint ... ok [INFO] [stdout] test route::pattern::tests::test_parse_param_with_constraint ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_skips_special_files ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_static ... ok [INFO] [stdout] test route::detection::tests::test_extract_layout_name_with_name ... ok [INFO] [stdout] test route::detection::tests::test_detect_intercepting_route_one_level_up ... ok [INFO] [stdout] test route::detection::tests::test_detect_intercepting_route_same_level ... ok [INFO] [stdout] test route::detection::tests::test_detect_intercepting_route_two_levels_up ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_optional_catch_all ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_optional_param ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_skips_parallel_slots ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_skips_route_groups ... ok [INFO] [stdout] test route::pattern::tests::test_classify_catch_all ... ok [INFO] [stdout] test route::parser::tests::test_calculate_priority_required_catch_all ... ok [INFO] [stdout] test route::parser::tests::test_parse_pattern_skips_intercept_markers ... ok [INFO] [stdout] test route::detection::tests::test_extract_layout_name_without_name ... ok [INFO] [stderr] Running tests/nextjs_parity_tests.rs (/opt/rustwide/target/debug/deps/nextjs_parity_tests-4e9edb4a2c6fc77d) [INFO] [stdout] [INFO] [stdout] test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test test_functional_composition ... ok [INFO] [stdout] test test_nextjs_basic_routing ... ok [INFO] [stdout] test test_nextjs_catch_all_segments ... ok [INFO] [stdout] test test_nextjs_dynamic_segments ... ok [INFO] [stdout] test test_metadata_and_constraints ... ok [INFO] [stdout] test test_nextjs_error_handling ... ok [INFO] [stdout] test test_nextjs_intercepting_one_up ... ok [INFO] [stdout] test test_nextjs_intercepting_same_level ... ok [INFO] [stdout] test test_nextjs_intercepting_from_root ... ok [INFO] [stdout] test test_nextjs_ecommerce_app ... ok [INFO] [stdout] test test_nextjs_modal_pattern ... ok [INFO] [stdout] test test_nextjs_optional_catch_all_segments ... ok [INFO] [stdout] test test_nextjs_not_found ... ok [INFO] [stdout] test test_nextjs_parallel_routes ... ok [INFO] [stdout] test test_nextjs_route_groups ... ok [INFO] [stdout] test test_nextjs_layouts ... ok [INFO] [stdout] test test_nextjs_loading_ui ... ok [INFO] [stdout] test test_nextjs_parallel_routes_with_dynamic_params ... ok [INFO] [stdout] test test_nextjs_route_priority ... ok [INFO] [stdout] test test_nextjs_photo_gallery_with_modals ... ok [INFO] [stdout] test test_nextjs_templates ... ok [INFO] [stdout] test test_route_aliases ... ok [INFO] [stdout] test test_redirects ... ok [INFO] [stdout] test test_nextjs_complex_dashboard ... ok [INFO] [stdout] test test_route_lookup_performance ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/router_tests.rs (/opt/rustwide/target/debug/deps/router_tests-cf7e5c1e64aca3e6) [INFO] [stdout] [INFO] [stdout] running 198 tests [INFO] [stdout] test test_alias_case_sensitivity ... ok [INFO] [stdout] test test_alias_chaining_with_other_builders ... ok [INFO] [stdout] test test_alias_internationalization ... ok [INFO] [stdout] test test_alias_with_trailing_slash ... ok [INFO] [stdout] test test_alias_with_metadata ... ok [INFO] [stdout] test test_all_special_files_together ... ok [INFO] [stdout] test test_case_insensitive_matching ... ok [INFO] [stdout] test test_catch_all_matches ... ok [INFO] [stdout] test test_alias_priority_order ... ok [INFO] [stdout] test test_catch_all_route ... ok [INFO] [stdout] test test_constraint_alpha_validation ... ok [INFO] [stdout] test test_constraint_alphanum_validation ... ok [INFO] [stdout] test test_constraint_int_validation ... ok [INFO] [stdout] test test_constraint_optional_parameter ... ok [INFO] [stdout] test test_constraint_uuid_validation ... ok [INFO] [stdout] test test_constraint_with_router_matching ... ok [INFO] [stdout] test test_empty_aliases_default ... ok [INFO] [stdout] test test_error_page_route ... ok [INFO] [stdout] test test_complex_layout_scenario ... ok [INFO] [stdout] test test_constraint_catch_all ... ok [INFO] [stdout] test test_constraint_parsing_from_filename ... ok [INFO] [stdout] test test_constraint_slug_validation ... ok [INFO] [stdout] test test_constraint_uint_validation ... ok [INFO] [stdout] test test_empty_metadata ... ok [INFO] [stdout] test test_generate_url_catch_all ... ok [INFO] [stdout] test test_generate_url_static_route ... ok [INFO] [stdout] test test_generate_url_with_multiple_parameters ... ok [INFO] [stdout] test test_get_layout_by_name ... ok [INFO] [stdout] test test_intercepting_route_collection_accessor ... ok [INFO] [stdout] test test_intercepting_route_in_router ... ok [INFO] [stdout] test test_intercepting_route_from_root ... ok [INFO] [stdout] test test_intercepting_route_same_level ... ok [INFO] [stdout] test test_intercepting_route_with_route_groups ... ok [INFO] [stdout] test test_intercepting_route_real_world_modal ... ok [INFO] [stdout] test test_intercepting_route_modal_pattern ... ok [INFO] [stdout] test test_generate_url_with_single_parameter ... ok [INFO] [stdout] test test_intercepting_route_with_catch_all ... ok [INFO] [stdout] test test_is_under_nolayout_marker ... ok [INFO] [stdout] test test_functional_alias_composition ... ok [INFO] [stdout] test test_error_page_with_malformed_paths ... ok [INFO] [stdout] test test_generate_url_missing_required_parameter ... ok [INFO] [stdout] test test_generate_url_optional_parameter_provided ... ok [INFO] [stdout] test test_layout_option_none ... ok [INFO] [stdout] test test_layout_option_root ... ok [INFO] [stdout] test test_layout_option_named ... ok [INFO] [stdout] test test_layout_option_pattern ... ok [INFO] [stdout] test test_layout_edge_cases ... ok [INFO] [stdout] test test_layout_route ... ok [INFO] [stdout] test test_layout_option_with_option ... ok [INFO] [stdout] test test_layout_inherit_default ... ok [INFO] [stdout] test test_intercepting_route_two_levels_up ... ok [INFO] [stdout] test test_functional_builder_chaining ... ok [INFO] [stdout] test test_intercepting_route_one_level_up ... ok [INFO] [stdout] test test_layout_skips_missing_intermediate ... ok [INFO] [stdout] test test_metadata_chaining ... ok [INFO] [stdout] test test_layout_with_backslashes ... ok [INFO] [stdout] test test_metadata_override ... ok [INFO] [stdout] test test_metadata_in_route_match ... ok [INFO] [stdout] test test_layout_with_double_slashes ... ok [INFO] [stdout] test test_layout_with_trailing_slash ... ok [INFO] [stdout] test test_loading_pages_collection ... ok [INFO] [stdout] test test_loading_ui_detection ... ok [INFO] [stdout] test test_multiple_constraints ... ok [INFO] [stdout] test test_multiple_named_routes ... ok [INFO] [stdout] test test_multiple_redirects_in_router ... ok [INFO] [stdout] test test_loading_ui_hierarchical_resolution ... ok [INFO] [stdout] test test_named_layout_detection ... ok [INFO] [stdout] test test_multiple_routes_with_aliases ... ok [INFO] [stdout] test test_named_route_type_safe_reference ... ok [INFO] [stdout] test test_named_route_with_metadata ... ok [INFO] [stdout] test test_named_route_functional_chaining ... ok [INFO] [stdout] test test_named_route_with_alias ... ok [INFO] [stdout] test test_nested_error_page_three_levels ... ok [INFO] [stdout] test test_no_constraint_default_behavior ... ok [INFO] [stdout] test test_nolayout_marker_effect ... ok [INFO] [stdout] test test_nolayout_marker_vs_explicit_option ... ok [INFO] [stdout] test test_nolayout_marker_detection ... ok [INFO] [stdout] test test_nested_layout_three_levels ... ok [INFO] [stdout] test test_normalize_path_valid_unchanged ... ok [INFO] [stdout] test test_not_found_detection ... ok [INFO] [stdout] test test_normalize_path_fixes_issues ... ok [INFO] [stdout] test test_not_found_hierarchical_resolution ... ok [INFO] [stdout] test test_not_found_pages_collection ... ok [INFO] [stdout] test test_optional_catch_all_empty_string_vs_none ... ok [INFO] [stdout] test test_optional_catch_all_in_router ... ok [INFO] [stdout] test test_optional_catch_all_matches_multiple_segments ... ok [INFO] [stdout] test test_nolayout_marker_hierarchy ... ok [INFO] [stdout] test test_optional_catch_all_matches_single_segment ... ok [INFO] [stdout] test test_optional_catch_all_segment_classification ... ok [INFO] [stdout] test test_optional_catch_all_vs_optional_param ... ok [INFO] [stdout] test test_optional_catch_all_trailing_slash ... ok [INFO] [stdout] test test_optional_catch_all_with_constraints_validation ... ok [INFO] [stdout] test test_optional_catch_all_with_static_prefix ... ok [INFO] [stdout] test test_optional_catch_all_priority ... ok [INFO] [stdout] test test_optional_catch_all_vs_required_catch_all ... ok [INFO] [stdout] test test_optional_param_matches ... ok [INFO] [stdout] test test_optional_catch_all_matches_zero_segments ... ok [INFO] [stdout] test test_optional_catch_all_with_constraint ... ok [INFO] [stdout] test test_optional_param_route ... ok [INFO] [stdout] test test_parallel_and_intercepting_together ... ok [INFO] [stdout] test test_optional_catch_all_route_priority_ordering ... ok [INFO] [stdout] test test_parallel_route_real_world_dashboard ... ok [INFO] [stdout] test test_parallel_route_with_dynamic_params ... ok [INFO] [stdout] test test_parallel_route_with_index ... ok [INFO] [stdout] test test_parallel_route_specific_slot ... ok [INFO] [stdout] test test_parallel_route_with_route_groups ... ok [INFO] [stdout] test test_parallel_route_in_intercepting_route ... ok [INFO] [stdout] test test_parallel_route_multiple_slots ... ok [INFO] [stdout] test test_parallel_route_nested ... ok [INFO] [stdout] test test_parallel_route_detection ... ok [INFO] [stdout] test test_parallel_route_collection_accessor ... ok [INFO] [stdout] test test_redirect_canonical_url ... ok [INFO] [stdout] test test_parameter_constraint_from_str ... ok [INFO] [stdout] test test_redirect_empty_params ... ok [INFO] [stdout] test test_redirect_internationalization ... ok [INFO] [stdout] test test_path_hierarchy_iterator ... ok [INFO] [stdout] test test_redirect_legacy_url_support ... ok [INFO] [stdout] test test_redirect_pattern_matching ... ok [INFO] [stdout] test test_redirect_priority_ordering ... ok [INFO] [stdout] test test_redirect_priority_with_static_routes ... ok [INFO] [stdout] test test_phase_5_with_all_previous_features ... ok [INFO] [stdout] test test_redirect_route_preserve_method ... ok [INFO] [stdout] test test_redirect_chain_not_followed ... ok [INFO] [stdout] test test_redirect_route_temporary ... ok [INFO] [stdout] test test_redirect_router_matching ... ok [INFO] [stdout] test test_redirect_static_route ... ok [INFO] [stdout] test test_redirect_shortlink ... ok [INFO] [stdout] test test_optional_catch_all_real_world_use_case ... ok [INFO] [stdout] test test_redirect_route_creation ... ok [INFO] [stdout] test test_redirect_route_permanent ... ok [INFO] [stdout] test test_redirect_template_path_marker ... ok [INFO] [stdout] test test_alias_legacy_url_support ... ok [INFO] [stdout] test test_redirect_with_different_param_names ... ok [INFO] [stdout] test test_redirect_target_non_redirect_route ... ok [INFO] [stdout] test test_redirect_with_multiple_parameters ... ok [INFO] [stdout] test test_redirect_with_dynamic_params_in_router ... ok [INFO] [stdout] test test_error_page_lookup ... ok [INFO] [stdout] test test_route_from_path_dynamic ... ok [INFO] [stdout] test test_redirect_with_parameters ... ok [INFO] [stdout] test test_remove_route_removes_from_named_routes ... ok [INFO] [stdout] test test_generate_url_optional_parameter_missing ... ok [INFO] [stdout] test test_optional_catch_all_route_creation ... ok [INFO] [stdout] test test_route_from_path_nested_index ... ok [INFO] [stdout] test test_route_from_path_static ... ok [INFO] [stdout] test test_route_from_path_index ... ok [INFO] [stdout] test test_route_group_basic ... ok [INFO] [stdout] test test_route_group_does_not_affect_params ... ok [INFO] [stdout] test test_route_group_with_layout ... ok [INFO] [stdout] test test_route_group_empty_name ... ok [INFO] [stdout] test test_route_group_with_metadata ... ok [INFO] [stdout] test test_route_group_with_named_layout ... ok [INFO] [stdout] test test_route_group_multiple ... ok [INFO] [stdout] test test_route_group_multiple_levels ... ok [INFO] [stdout] test test_route_group_nested ... ok [INFO] [stdout] test test_route_group_not_at_start ... ok [INFO] [stdout] test test_route_group_organizational_structure ... ok [INFO] [stdout] test test_route_group_priority_unchanged ... ok [INFO] [stdout] test test_route_group_real_world_organization ... ok [INFO] [stdout] test test_route_group_same_path_different_groups ... ok [INFO] [stdout] test test_route_group_with_catch_all ... ok [INFO] [stdout] test test_route_group_with_dynamic_params ... ok [INFO] [stdout] test test_route_group_with_route_aliases ... ok [INFO] [stdout] test test_route_group_with_special_chars ... ok [INFO] [stdout] test test_route_has_meta ... ok [INFO] [stdout] test test_route_with_multiple_aliases_chained ... ok [INFO] [stdout] test test_route_with_name ... ok [INFO] [stdout] test test_route_match_redirect_methods_non_redirect ... ok [INFO] [stdout] test test_route_matches_any_alias ... ok [INFO] [stdout] test test_route_matches_any_no_match ... ok [INFO] [stdout] test test_route_matches_any_primary ... ok [INFO] [stdout] test test_route_matches_dynamic ... ok [INFO] [stdout] test test_route_matches_static ... ok [INFO] [stdout] test test_route_priority ... ok [INFO] [stdout] test test_route_priority_ordering ... ok [INFO] [stdout] test test_route_static_alias_matching ... ok [INFO] [stdout] test test_route_with_aliases_batch ... ok [INFO] [stdout] test test_route_with_meta ... ok [INFO] [stdout] test test_route_with_metadata_batch ... ok [INFO] [stdout] test test_route_with_single_alias ... ok [INFO] [stdout] test test_route_without_name ... ok [INFO] [stdout] test test_router_get_route_by_name ... ok [INFO] [stdout] test test_router_match_route_with_alias ... ok [INFO] [stdout] test test_router_matching ... ok [INFO] [stdout] test test_router_url_for ... ok [INFO] [stdout] test test_router_url_for_nonexistent_name ... ok [INFO] [stdout] test test_router_with_all_route_types ... ok [INFO] [stdout] test test_special_files_do_not_create_routes ... ok [INFO] [stdout] test test_section_error_page ... ok [INFO] [stdout] test test_template_hierarchical_resolution ... ok [INFO] [stdout] test test_special_files_with_route_groups ... ok [INFO] [stdout] test test_url_generation_preserves_order ... ok [INFO] [stderr] Doc-tests rhtmx_router [INFO] [stdout] test test_url_generation_root_route ... ok [INFO] [stdout] test test_url_generation_with_extra_params ... ok [INFO] [stdout] test test_router_get_route_by_name_nonexistent ... ok [INFO] [stdout] test test_router_url_for_params ... ok [INFO] [stdout] test test_templates_collection ... ok [INFO] [stdout] test test_template_detection ... ok [INFO] [stdout] test test_url_for_params_empty ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 198 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 54 tests [INFO] [stdout] test src/lib.rs - Route::layout_pattern (line 440) ... ok [INFO] [stdout] test src/intercept.rs - intercept::InterceptLevel (line 8) ... ok [INFO] [stdout] test src/constraint.rs - constraint::ParameterConstraint::from_str (line 88) ... ok [INFO] [stdout] test src/lib.rs - Route::with_layout_option (line 472) ... ok [INFO] [stdout] test src/lib.rs - Route::generate_url (line 756) ... ok [INFO] [stdout] test src/constraint.rs - constraint::ParameterConstraint::validate (line 34) ... ok [INFO] [stdout] test src/lib.rs - Route::with_aliases (line 652) ... ok [INFO] [stdout] test src/lib.rs - (line 33) ... ok [INFO] [stdout] test src/lib.rs - Route::redirect_target (line 938) ... ok [INFO] [stdout] test src/lib.rs - Route::with_metadata (line 568) ... ok [INFO] [stdout] test src/lib.rs - Route::with_no_layout (line 487) ... ok [INFO] [stdout] test src/lib.rs - Route::matches_any (line 676) ... ok [INFO] [stdout] test src/layout.rs - layout::LayoutOption (line 10) ... ok [INFO] [stdout] test src/lib.rs - Route::redirect (line 837) ... ok [INFO] [stdout] test src/lib.rs - Route::from_path (line 215) ... ok [INFO] [stdout] test src/lib.rs - Route::has_meta (line 605) ... ok [INFO] [stdout] test src/lib.rs - Route::get_meta (line 588) ... ok [INFO] [stdout] test src/lib.rs - Route::with_alias (line 634) ... ok [INFO] [stdout] test src/lib.rs - Route::with_layout_pattern (line 529) ... ok [INFO] [stdout] test src/lib.rs - Route::with_root_layout (line 501) ... ok [INFO] [stdout] test src/lib.rs - Router::add_route (line 1078) ... ok [INFO] [stdout] test src/lib.rs - Route::with_name (line 734) ... ok [INFO] [stdout] test src/lib.rs - Route::with_meta (line 552) ... ok [INFO] [stdout] test src/lib.rs - Route::with_named_layout (line 515) ... ok [INFO] [stdout] test src/lib.rs - Router::get_layout_by_name (line 1371) ... ok [INFO] [stdout] test src/lib.rs - Router::get_loading_page (line 1438) ... ok [INFO] [stdout] test src/lib.rs - RouteMatch::is_redirect (line 139) ... ok [INFO] [stdout] test src/lib.rs - Router::get_error_page (line 1404) ... ok [INFO] [stdout] test src/lib.rs - Router::get_parallel_route (line 1535) ... ok [INFO] [stdout] test src/lib.rs - RouteMatch::redirect_status (line 178) ... ok [INFO] [stdout] test src/lib.rs - RouteMatch::redirect_target (line 158) ... ok [INFO] [stdout] test src/lib.rs - Router::get_route_by_name (line 1656) ... ok [INFO] [stdout] test src/lib.rs - Router::match_route (line 1207) ... ok [INFO] [stdout] test src/lib.rs - Router::get_not_found_page (line 1482) ... ok [INFO] [stdout] test src/lib.rs - Router::get_intercepting_route (line 1554) ... ok [INFO] [stdout] test src/lib.rs - Router::get_template (line 1460) ... ok [INFO] [stdout] test src/lib.rs - Router::url_for (line 1595) ... ok [INFO] [stdout] test src/lib.rs - Router::get_parallel_routes (line 1510) ... ok [INFO] [stdout] test src/lib.rs - Router::get_layout_for_match (line 1302) ... ok [INFO] [stdout] test src/path/hierarchy.rs - path::hierarchy::PathHierarchy<'a>::new (line 39) ... ok [INFO] [stdout] test src/route/detection.rs - route::detection::detect_intercepting_route (line 96) ... ok [INFO] [stdout] test src/lib.rs - Router::get_layout (line 1267) ... ok [INFO] [stdout] test src/lib.rs - Router::url_for_params (line 1625) ... ok [INFO] [stdout] test src/route/detection.rs - route::detection::extract_layout_name (line 18) ... ok [INFO] [stdout] test src/path/mod.rs - path::normalize_path (line 83) ... ok [INFO] [stdout] test src/lib.rs - Router::with_case_insensitive (line 1036) ... ok [INFO] [stdout] test src/path/hierarchy.rs - path::hierarchy::PathHierarchy (line 16) ... ok [INFO] [stdout] test src/route/pattern.rs - route::pattern::classify_segment (line 67) ... ok [INFO] [stdout] test src/route/detection.rs - route::detection::detect_parallel_route (line 48) ... ok [INFO] [stdout] test src/path/mod.rs - path::is_valid_path (line 23) ... ok [INFO] [stdout] test src/route/parser.rs - route::parser::parse_pattern (line 33) ... ok [INFO] [stdout] test src/route/pattern.rs - route::pattern::parse_param_with_constraint (line 133) ... ok [INFO] [stdout] test src/route/pattern.rs - route::pattern::PatternSegmentType (line 15) ... ok [INFO] [stdout] test src/route/parser.rs - route::parser::calculate_priority (line 216) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.46s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "45f118d6adf94c551a6a3baa768cd26ba92d495770fb959899c9994f92b43dd9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45f118d6adf94c551a6a3baa768cd26ba92d495770fb959899c9994f92b43dd9", kill_on_drop: false }` [INFO] [stdout] 45f118d6adf94c551a6a3baa768cd26ba92d495770fb959899c9994f92b43dd9