[INFO] fetching crate rylai 0.4.0...
[INFO] testing rylai-0.4.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate rylai 0.4.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate rylai 0.4.0
[INFO] finished tweaking crates.io crate rylai 0.4.0
[INFO] tweaked toml for crates.io crate rylai 0.4.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rylai 0.4.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rylai 0.4.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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b593fc2bc591f7603582154fa601d87d535f94a08a2cf2aeac4e68e1bedaacce
[INFO] running `Command { std: "docker" "start" "-a" "b593fc2bc591f7603582154fa601d87d535f94a08a2cf2aeac4e68e1bedaacce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b593fc2bc591f7603582154fa601d87d535f94a08a2cf2aeac4e68e1bedaacce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b593fc2bc591f7603582154fa601d87d535f94a08a2cf2aeac4e68e1bedaacce", kill_on_drop: false }`
[INFO] [stdout] b593fc2bc591f7603582154fa601d87d535f94a08a2cf2aeac4e68e1bedaacce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bef1129f51844af987f58e054288969edc5e069c2b137c522a6da23d2196f443
[INFO] running `Command { std: "docker" "start" "-a" "bef1129f51844af987f58e054288969edc5e069c2b137c522a6da23d2196f443", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling structmeta-derive v0.2.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling structmeta v0.2.0
[INFO] [stderr]    Compiling macro-rules-rt v0.1.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rylai v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.79s
[INFO] running `Command { std: "docker" "inspect" "bef1129f51844af987f58e054288969edc5e069c2b137c522a6da23d2196f443", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bef1129f51844af987f58e054288969edc5e069c2b137c522a6da23d2196f443", kill_on_drop: false }`
[INFO] [stdout] bef1129f51844af987f58e054288969edc5e069c2b137c522a6da23d2196f443
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c9b2ef8345b936066c521567d4795efec2f9aaf3e714482a0d9aa33577ddb9b7
[INFO] running `Command { std: "docker" "start" "-a" "c9b2ef8345b936066c521567d4795efec2f9aaf3e714482a0d9aa33577ddb9b7", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rylai v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.18s
[INFO] running `Command { std: "docker" "inspect" "c9b2ef8345b936066c521567d4795efec2f9aaf3e714482a0d9aa33577ddb9b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9b2ef8345b936066c521567d4795efec2f9aaf3e714482a0d9aa33577ddb9b7", kill_on_drop: false }`
[INFO] [stdout] c9b2ef8345b936066c521567d4795efec2f9aaf3e714482a0d9aa33577ddb9b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c0714984017517f9e40158f71d273d93d8ee4c35dab8e3ef6b80691edd505c25
[INFO] running `Command { std: "docker" "start" "-a" "c0714984017517f9e40158f71d273d93d8ee4c35dab8e3ef6b80691edd505c25", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rylai-9afdd550cbbe6dfe)
[INFO] [stdout] running 278 tests
[INFO] [stdout] test add_content::tests::head_inserts_after_auto_generated_banner ... ok
[INFO] [stdout] test add_content::tests::head_without_banner_inserts_at_file_start ... ok
[INFO] [stdout] test add_content::tests::missing_typing_line_errors ... ok
[INFO] [stdout] test add_content::tests::after_import_typing_inserts_after_line ... ok
[INFO] [stdout] test add_content::tests::file_location_is_noop ... ok
[INFO] [stdout] test add_content::tests::tail_appends_and_adds_trailing_newline_when_omitted ... ok
[INFO] [stdout] test add_content::tests::wrong_file_noop ... ok
[INFO] [stdout] test collector::parse::tests::build_pyclass_enum_rust_names_marks_enums_only ... ok
[INFO] [stdout] test collector::parse::tests::build_pyclass_name_map_collects_enum ... ok
[INFO] [stdout] test collector::parse::tests::bound_pymodule_param_excluded ... ok
[INFO] [stdout] test collector::parse::tests::bound_pybytes_param_kept_and_maps_to_bytes ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_collects_from_nested_modules ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_collects_from_multiple_files ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_collects_multiple_functions ... ok
[INFO] [stdout] test collector::parse::tests::build_pyclass_name_map_includes_renamed_class ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_preserves_pyfunction_with_name ... ok
[INFO] [stdout] test collector::parse::tests::cfg_is_active_no_cfg_returns_true ... ok
[INFO] [stdout] test collector::parse::tests::create_exception_matches_pymodule_name_attribute ... ok
[INFO] [stdout] test collector::parse::tests::cfg_is_active_not_feature ... ok
[INFO] [stdout] test collector::parse::tests::create_exception_inside_pymodule_mod_is_collected ... ok
[INFO] [stdout] test collector::parse::tests::create_exception_file_level_collects_as_class_extending_builtin_exception ... ok
[INFO] [stdout] test collector::parse::tests::build_type_alias_map_inside_nested_mod ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_respects_cfg_feature ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_collects_single_function ... ok
[INFO] [stdout] test collector::parse::tests::cfg_is_active_feature_enabled ... ok
[INFO] [stdout] test collector::parse::tests::cfg_is_active_any ... ok
[INFO] [stdout] test collector::parse::tests::extract_doc_empty_when_no_doc_comment ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_extends_pyo3_exception_yields_python_exception_base ... ok
[INFO] [stdout] test collector::parse::tests::build_pyfunction_map_ignores_non_pyfunction ... ok
[INFO] [stdout] test collector::parse::tests::create_exception_user_defined_base_preserves_base_name ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_get_all_set_all_from_pyo3_attr ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_get_all_set_all_from_pyclass_list ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_module_present ... ok
[INFO] [stdout] test collector::parse::tests::extract_doc_multi_line_collects_all_lines ... ok
[INFO] [stdout] test collector::parse::tests::extract_doc_single_line_strips_leading_space ... ok
[INFO] [stdout] test collector::parse::tests::cfg_is_active_all ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_module_absent ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_module_with_name ... ok
[INFO] [stdout] test collector::parse::tests::extract_modules_from_file_style_b_uses_pyclass_name_map ... ok
[INFO] [stdout] test collector::parse::tests::build_type_alias_map_collects_type_alias ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_module_raw_string_literal ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_rename_all_from_pyclass ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_rename_all_last_attr_wins ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_full_path ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_none_for_other_macro ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_extends_pyo3_yields_builtin_dict ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_nested_path ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_simple ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_try_expr ... ok
[INFO] [stdout] test collector::parse::tests::extract_modules_from_file_style_b_fallback_to_rust_name_when_not_in_map ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_extends_unparseable_records_warning ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_without_module_arg ... ok
[INFO] [stdout] test collector::parse::tests::extract_wrap_pyfunction_name_none_for_non_macro ... ok
[INFO] [stdout] test collector::parse::tests::extract_pyclass_subclass_from_pyclass_and_pyo3 ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_classmethod_detected ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_getter_uses_fn_name_by_default ... ok
[INFO] [stdout] test collector::parse::tests::invalid_rename_all_records_parse_warning_and_keeps_rust_field_name ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_setter_uses_fn_name_by_default ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_setter_strips_set_prefix_like_pyo3 ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_getter_uses_rename_arg ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_new_detected ... ok
[INFO] [stdout] test collector::parse::tests::method_kind_setter_uses_rename_arg ... ok
[INFO] [stdout] test collector::parse::tests::parse_pyclass_struct_records_extends_rust_base ... ok
[INFO] [stdout] test collector::parse::tests::parse_pyclass_struct_subclass_flag_disables_final_semantics_in_model ... ok
[INFO] [stdout] test collector::parse::tests::parse_pyclass_enum_ignores_extends_and_warns ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_get_all_set_all_collects_field_properties ... ok
[INFO] [stdout] test collector::parse::tests::nested_pymodule_in_style_a_becomes_submodule_item ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_struct_uses_pyclass_name_attr ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_get_all_with_rename_all_collects_camel_property_names ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_struct_without_rename_uses_rust_ident ... ok
[INFO] [stdout] test collector::parse::tests::pyfunction_uses_pyo3_name ... ok
[INFO] [stdout] test collector::parse::tests::pyfunction_without_rename_uses_rust_name ... ok
[INFO] [stdout] test collector::parse::tests::pymethods_dunder_iter_and_next_are_collected ... ok
[INFO] [stdout] test collector::parse::tests::pyfunction_pyo3_name_and_signature_coexist ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_rename_all_emits_camel_property_in_generated_stub ... ok
[INFO] [stdout] test collector::parse::tests::pyclass_name_with_extra_attrs ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_field_name_overrides_class_rename_all ... ok
[INFO] [stdout] test collector::parse::tests::pymethods_in_separate_file_are_resolved ... ok
[INFO] [stdout] test collector::parse::tests::pymethods_plain_instance_methods_are_collected ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_get_set_field_produces_getter_and_setter ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_name_from_pyo3_attr ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_name_from_pyclass_attr ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_get_fields_produce_property_stubs ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_get_fields_appear_before_pymethods ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_name_absent_returns_none ... ok
[INFO] [stdout] test collector::parse::tests::pyref_self_param_is_excluded ... ok
[INFO] [stdout] test collector::parse::tests::pyo3_get_fields_resolved_across_files ... ok
[INFO] [stdout] test collector::parse::tests::invalid_rename_all_single_warning_with_multiple_get_all_fields ... ok
[INFO] [stdout] test collector::parse::tests::signature_override_nested_parens_strips_only_outer ... ok
[INFO] [stdout] test collector::parse::tests::pyref_self_excluded_with_extra_params ... ok
[INFO] [stdout] test collector::parse::tests::signature_override_separate_attr_strips_outer_parens ... ok
[INFO] [stdout] test collector::parse::tests::signature_override_normalizes_rust_bools_to_python ... ok
[INFO] [stdout] test collector::parse::tests::style_b_add_constant_infers_str_from_env_macro ... ok
[INFO] [stdout] test collector::parse::tests::style_b_add_function_for_missing_fn_is_skipped ... ok
[INFO] [stdout] test collector::parse::tests::type_alias_expansion_in_return_produces_correct_python_type ... ok
[INFO] [stdout] test collector::parse::tests::style_b_add_constant_infers_type_from_literal ... ok
[INFO] [stdout] test collector::parse::tests::static_method_pyresult_self_return_type_is_collected ... ok
[INFO] [stdout] test collector::parse::tests::style_b_class_docstring_from_pyclass_attrs_map ... ok
[INFO] [stdout] test collector::rename_all::tests::foo_bar_table ... ok
[INFO] [stdout] test collector::rename_all::tests::valid_rules_match_apply_arms ... ok
[INFO] [stdout] test collector::parse::tests::type_map_ambiguous_last_segment_expands_alias ... ok
[INFO] [stdout] test config::tests::config_python_version_tuple_parses_major_minor ... ok
[INFO] [stdout] test collector::rename_all::tests::unknown_rule_records_warning_and_returns_ident ... ok
[INFO] [stdout] test collector::parse::tests::signature_override_strips_outer_parens ... ok
[INFO] [stdout] test collector::parse::tests::type_map_for_alias_used_under_vec_preserves_name_and_maps_inner ... ok
[INFO] [stdout] test collector::parse::tests::pyrefmut_self_param_is_excluded ... ok
[INFO] [stdout] test collector::parse::tests::type_alias_expansion_in_param_produces_correct_python_type ... ok
[INFO] [stdout] test config::tests::config_render_policy_uses_configured_version ... ok
[INFO] [stdout] test config::tests::load_merged_invalid_rylai_toml_errors ... ok
[INFO] [stdout] test config::tests::load_merged_only_pyproject ... ok
[INFO] [stdout] test config::tests::config_python_version_tuple_invalid_fallback ... ok
[INFO] [stdout] test config::tests::load_merged_parses_add_content_file_location ... ok
[INFO] [stdout] test config::tests::render_policy_py310_union_optional_no_native_self ... ok
[INFO] [stdout] test config::tests::render_policy_py311_native_self_no_future_annotations ... ok
[INFO] [stdout] test config::tests::load_merged_parses_valid_rylai_toml_only ... ok
[INFO] [stdout] test config::tests::load_merged_pyproject_parses_override_array ... ok
[INFO] [stdout] test config::tests::merge_type_map_into_known_classes_keeps_known_class_on_short_name_conflict ... ok
[INFO] [stdout] test config::tests::load_merged_parses_format_commands ... ok
[INFO] [stdout] test config::tests::normalize_add_content_file_appends_pyi ... ok
[INFO] [stdout] test config::tests::load_merged_parses_add_content_array ... ok
[INFO] [stdout] test config::tests::load_merged_parses_features_from_rylai_toml ... ok
[INFO] [stdout] test config::tests::load_merged_returns_default_when_both_absent ... ok
[INFO] [stdout] test config::tests::render_policy_py312_same_as_py311 ... ok
[INFO] [stdout] test config::tests::load_merged_rylai_toml_overrides_duplicate_keys ... ok
[INFO] [stdout] test config::tests::validate_file_location_creates_new_file ... ok
[INFO] [stdout] test config::tests::validate_file_location_errors_when_mixed_with_other_locations ... ok
[INFO] [stdout] test config::tests::validate_file_location_replaces_generated_stub ... ok
[INFO] [stdout] test config::tests::render_policy_py38_pep585_disabled ... ok
[INFO] [stdout] test config::tests::merge_type_map_into_known_classes_warns_and_skips_ambiguous_short_name ... ok
[INFO] [stdout] test config::tests::type_map_preserve_alias_idents_requires_unambiguous_last_segment ... ok
[INFO] [stdout] test config::tests::render_policy_py39_optional_no_native_self ... ok
[INFO] [stdout] test config::tests::validate_multiple_non_file_locations_for_same_generated_stub ... ok
[INFO] [stdout] test config::tests::validate_overrides_accepts_return_type_only ... ok
[INFO] [stdout] test config::tests::validate_non_file_location_matches_generated_stub ... ok
[INFO] [stdout] test config::tests::validate_non_file_location_errors_for_non_generated_path ... ok
[INFO] [stdout] test config::tests::validate_overrides_rejects_stub_with_return_type ... ok
[INFO] [stdout] test config::tests::validate_overrides_rejects_both_stub_and_param_types ... ok
[INFO] [stdout] test generator::tests::add_header_false_omits_comment ... ok
[INFO] [stdout] test generator::tests::all_empty_module_emits_empty_list ... ok
[INFO] [stdout] test generator::tests::add_header_true_prepends_comment ... ok
[INFO] [stdout] test generator::tests::all_include_private_global_true_includes_underscore_names ... ok
[INFO] [stdout] test generator::tests::all_per_file_exclude_beats_include ... ok
[INFO] [stdout] test generator::tests::all_per_file_include_private_overrides_global ... ok
[INFO] [stdout] test generator::tests::all_per_file_include_forces_private_name_in ... ok
[INFO] [stdout] test generator::tests::all_contains_public_names_in_order ... ok
[INFO] [stdout] test generator::tests::all_excludes_underscore_names_by_default ... ok
[INFO] [stdout] test generator::tests::collect_class_names_recurses_into_nested_modules ... ok
[INFO] [stdout] test generator::tests::all_per_file_exclude_removes_public_name ... ok
[INFO] [stdout] test generator::tests::config_override_class_method_matches_python_class_name ... ok
[INFO] [stdout] test generator::tests::classmethod_generates_classmethod_decorator ... ok
[INFO] [stdout] test generator::tests::collect_class_names_warns_on_rust_name_collision ... ok
[INFO] [stdout] test generator::tests::config_override_class_method_matches_rust_struct_name ... ok
[INFO] [stdout] test generator::tests::config_override_class_method_new_by_rust_fn_name ... ok
[INFO] [stdout] test config::tests::validate_file_location_errors_on_duplicate ... ok
[INFO] [stdout] test generator::tests::config_override_class_method_new_init_alias ... ok
[INFO] [stdout] test generator::tests::config_override_class_method_qualified_suffix_matches ... ok
[INFO] [stdout] test generator::tests::config_override_emits_rust_doc_when_stub_has_no_ellipsis ... ok
[INFO] [stdout] test generator::tests::config_override_module_fn_matches_rust_ident_when_python_name_differs ... ok
[INFO] [stdout] test generator::tests::config_override_param_types_on_constant_errors ... ok
[INFO] [stdout] test generator::tests::config_override_param_types_partial_params ... ok
[INFO] [stdout] test generator::tests::config_override_param_types_merges_unpack_on_kwargs ... ok
[INFO] [stdout] test generator::tests::config_override_qualified_path_matches ... ok
[INFO] [stdout] test config::tests::validate_overrides_rejects_duplicate_param_types_keys_after_normalization ... ok
[INFO] [stdout] test generator::tests::config_override_replaces_generated_stub ... ok
[INFO] [stdout] test config::tests::validate_overrides_rejects_neither_stub_nor_param_types_nor_return_type ... ok
[INFO] [stdout] test generator::tests::config_override_return_type_only_on_function ... ok
[INFO] [stdout] test generator::tests::config_override_return_type_with_param_types ... ok
[INFO] [stdout] test generator::tests::constant_emits_final_annotation_and_typing_import ... ok
[INFO] [stdout] test generator::tests::constant_with_other_typing_imports_includes_final ... ok
[INFO] [stdout] test generator::tests::fallback_strategy_error_returns_err_on_unknown_type ... ok
[INFO] [stdout] test generator::tests::fallback_strategy_skip_succeeds_on_unknown_type ... ok
[INFO] [stdout] test generator::tests::gen_class_allows_python_subclass_omits_final ... ok
[INFO] [stdout] test generator::tests::gen_class_emits_extends_builtin_dict ... ok
[INFO] [stdout] test generator::tests::gen_class_enum_emits_final_without_base ... ok
[INFO] [stdout] test generator::tests::gen_class_extends_known_pyclass_emits_base ... ok
[INFO] [stdout] test generator::tests::generate_with_known_classes_emits_cross_module_import ... ok
[INFO] [stdout] test generator::tests::merge_args_no_type ... ok
[INFO] [stdout] test generator::tests::merge_kwargs_no_type ... ok
[INFO] [stdout] test generator::tests::multi_line_docstring_uses_block_format ... ok
[INFO] [stdout] test generator::tests::name_default_absent ... ok
[INFO] [stdout] test generator::tests::merge_bare_star_keyword_only_separator ... ok
[INFO] [stdout] test generator::tests::merge_attaches_type_and_preserves_default ... ok
[INFO] [stdout] test generator::tests::gen_class_create_exception_base_emits_class_line ... ok
[INFO] [stdout] test generator::tests::gen_class_extends_base_in_other_stub_emits_import ... ok
[INFO] [stdout] test generator::tests::merge_mixed_args_kwargs_regular_params_typed ... ok
[INFO] [stdout] test generator::tests::getter_method_generates_property ... ok
[INFO] [stdout] test generator::tests::getter_with_rename_uses_property_name ... ok
[INFO] [stdout] test generator::tests::name_default_trims_whitespace ... ok
[INFO] [stdout] test generator::tests::name_default_tuple_default ... ok
[INFO] [stdout] test generator::tests::name_default_with_bool ... ok
[INFO] [stdout] test generator::tests::name_default_with_none ... ok
[INFO] [stdout] test generator::tests::render_policy_py312_emits_native_self_and_no_future_annotations ... ok
[INFO] [stdout] test generator::tests::render_policy_py38_vec_uses_t_list ... ok
[INFO] [stdout] test generator::tests::new_method_with_signature_override_emits_kwargs ... ok
[INFO] [stdout] test generator::tests::render_policy_py310_option_param_uses_union_syntax ... ok
[INFO] [stdout] test generator::tests::new_method_generates_init ... ok
[INFO] [stdout] test generator::tests::nested_submodule_generates_class_namespace ... ok
[INFO] [stdout] test generator::tests::no_signature_override_uses_rust_params_directly ... ok
[INFO] [stdout] test generator::tests::render_policy_py39_emits_future_annotations_and_class_name_for_self ... ok
[INFO] [stdout] test generator::tests::split_respects_nested_parens ... ok
[INFO] [stdout] test generator::tests::render_policy_py39_option_param_uses_optional_syntax ... ok
[INFO] [stdout] test generator::tests::setter_method_generates_setter_decorator ... ok
[INFO] [stdout] test generator::tests::split_single_token ... ok
[INFO] [stdout] test generator::tests::split_nested_brackets_and_braces ... ok
[INFO] [stdout] test generator::tests::split_with_kwargs ... ok
[INFO] [stdout] test generator::tests::single_line_docstring_inline_triple_quotes ... ok
[INFO] [stdout] test generator::tests::split_simple_list ... ok
[INFO] [stdout] test output_layout::tests::maturin_module_name_does_not_move_constants_and_functions_to_extension_stub ... ok
[INFO] [stdout] test macro_expand::tests::extract_arms_from_simple_macro ... ok
[INFO] [stdout] test output_layout::tests::package_mode_emits_empty_root_when_all_items_are_in_submodules ... ok
[INFO] [stdout] test macro_expand::tests::discover_errors_when_macro_not_found ... ok
[INFO] [stdout] test macro_expand::tests::discover_warns_on_unparseable_files ... ok
[INFO] [stdout] test output_layout::tests::package_mode_pkg_pkg_aaa_uses_nested_folder ... ok
[INFO] [stdout] test output_layout::tests::rust_class_defining_modules_collapses_root_root ... ok
[INFO] [stdout] test output_layout::tests::pyclass_public_module_strips_only_top_level_package ... ok
[INFO] [stdout] test macro_expand::tests::explicit_rule_bracket_delimiter ... ok
[INFO] [stdout] test output_layout::tests::rust_class_defining_modules_independent_pyclass_module ... ok
[INFO] [stdout] test output_layout::tests::package_mode_with_pyclass_module ... ok
[INFO] [stdout] test output_layout::tests::pyclass_module_independent_of_pymodule_name ... ok
[INFO] [stdout] test output_layout::tests::rust_class_defining_modules_matches_layout ... ok
[INFO] [stdout] test output_layout::tests::single_module_no_pyclass_module ... ok
[INFO] [stdout] test tests::join_output_keeps_parent_when_out_dir_is_parent_of_package ... ok
[INFO] [stdout] test tests::join_output_strips_pkg_root_when_out_dir_matches_first_segment ... ok
[INFO] [stdout] test output_layout::tests::same_name_submodule_collapses_to_root_stub ... ok
[INFO] [stdout] test type_map::tests::bound_pybytes_maps_to_bytes ... ok
[INFO] [stdout] test macro_expand::tests::discover_finds_macro_in_sources ... ok
[INFO] [stdout] test type_map::tests::hashmap_maps_to_dict ... ok
[INFO] [stdout] test type_map::tests::btreemap_maps_to_dict ... ok
[INFO] [stdout] test type_map::tests::hashset_maps_to_set ... ok
[INFO] [stdout] test macro_expand::tests::explicit_rule_round_trips_simple_macro ... ok
[INFO] [stdout] test type_map::tests::hashmap_without_type_params_maps_to_bare_dict ... ok
[INFO] [stdout] test type_map::tests::char_maps_to_str ... ok
[INFO] [stdout] test type_map::tests::btreeset_maps_to_set ... ok
[INFO] [stdout] test type_map::tests::path_maps_to_path_or_str ... ok
[INFO] [stdout] test type_map::tests::pathbuf_maps_to_path_or_str_py310 ... ok
[INFO] [stdout] test type_map::tests::hashset_without_type_param_maps_to_bare_set ... ok
[INFO] [stdout] test type_map::tests::known_pyclass_maps_to_class_name ... ok
[INFO] [stdout] test type_map::tests::option_uses_optional_syntax_when_disabled ... ok
[INFO] [stdout] test type_map::tests::pybytearray_maps_to_bytearray ... ok
[INFO] [stdout] test generator::tests::generate_with_known_classes_emits_cross_module_import_for_array_elem ... ok
[INFO] [stdout] test type_map::tests::option_uses_union_syntax_when_enabled ... ok
[INFO] [stdout] test generator::tests::generate_with_known_classes_emits_cross_module_import_for_impl_trait ... ok
[INFO] [stdout] test type_map::tests::pathbuf_maps_to_union_path_str_py38 ... ok
[INFO] [stdout] test type_map::tests::pyo3_builtin_exception_segment_covers_complete_pyo3_set ... ok
[INFO] [stdout] test type_map::tests::pybytes_maps_to_bytes ... ok
[INFO] [stdout] test type_map::tests::pep585_off_uses_typing_generics ... ok
[INFO] [stdout] test type_map::tests::pyo3_builtin_segment_used_by_map_type ... ok
[INFO] [stdout] test type_map::tests::pyref_self_with_context_maps_to_class_name ... ok
[INFO] [stdout] test type_map::tests::pyo3_exception_segment_maps_to_python_builtin_name ... ok
[INFO] [stdout] test type_map::tests::pyobject_maps_to_any_not_unknown ... ok
[INFO] [stdout] test type_map::tests::pyresult_known_pyclass_unwraps_to_class_name ... ok
[INFO] [stdout] test type_map::tests::pyresult_self_with_context_maps_to_class_name ... ok
[INFO] [stdout] test type_map::tests::pyresult_self_native_keyword_for_py311 ... ok
[INFO] [stdout] test type_map::tests::pyref_self_native_keyword_for_py311 ... ok
[INFO] [stdout] test type_map::tests::py_container_types_map_to_python_builtins ... ok
[INFO] [stdout] test type_map::tests::pystring_maps_to_str ... ok
[INFO] [stdout] test macro_expand::tests::build_and_expand_auto_discover ... ok
[INFO] [stdout] test type_map::tests::std_result_unwraps_to_ok_type ... ok
[INFO] [stdout] test type_map::tests::tuple_three_elems_maps_to_python_tuple ... ok
[INFO] [stdout] test type_map::tests::tuple_two_elems_maps_to_python_tuple ... ok
[INFO] [stdout] test type_map::tests::unknown_type_not_in_known_classes_maps_to_any ... ok
[INFO] [stdout] test type_map::tests::vec_i32_maps_to_list_int ... ok
[INFO] [stdout] test type_map::tests::vec_u8_maps_to_bytes ... ok
[INFO] [stdout] test type_map::tests::self_native_keyword_emitted_for_py311 ... ok
[INFO] [stdout] test type_map::tests::std_path_pathbuf_maps_to_path_or_str ... ok
[INFO] [stdout] test generator::tests::generate_with_known_classes_resolves_cross_module_class_in_return_type ... ok
[INFO] [stdout] test macro_expand::tests::build_and_expand_explicit_add_pymodule ... ok
[INFO] [stdout] test type_map::tests::ref_bound_pybytes_maps_to_bytes ... ok
[INFO] [stdout] test type_map::tests::ref_slice_u8_maps_to_bytes ... ok
[INFO] [stdout] test type_map::tests::self_without_context_maps_to_any ... ok
[INFO] [stdout] test type_map::tests::tuple_with_unknown_inner_propagates_is_unknown ... ok
[INFO] [stdout] test type_map::tests::renamed_pyclass_rust_name_maps_to_python_name ... ok
[INFO] [stdout] test type_map::tests::self_with_context_maps_to_class_name ... ok
[INFO] [stdout] test type_map::tests::slice_u8_maps_to_bytes ... ok
[INFO] [stdout] test generator::tests::merge_required_param_no_default ... ok
[INFO] [stdout] test macro_expand::tests::discover_warns_when_duplicate_definitions ... ok
[INFO] [stdout] test type_map::tests::pyany_maps_to_any_not_unknown ... ok
[INFO] [stdout] test generator::tests::merge_unknown_token_kept_verbatim ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 278 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c0714984017517f9e40158f71d273d93d8ee4c35dab8e3ef6b80691edd505c25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0714984017517f9e40158f71d273d93d8ee4c35dab8e3ef6b80691edd505c25", kill_on_drop: false }`
[INFO] [stdout] c0714984017517f9e40158f71d273d93d8ee4c35dab8e3ef6b80691edd505c25
