Skip to content

ci: cargo-test (required) is red on main since 83a6767ff — 33 perry-runtime typed_feedback/proxy lib tests fail; #6939 merged with the same 33 failing #6957

Description

@proggeramlug

cargo-test is a required check and it is failing on main's current HEAD 83a6767ff ("GC memory: shape-key typed layouts (#6893) + major-GC pacing; don't link CoreFoundation in every binary (#6939)"). 33 perry-runtime lib tests fail — 32 in typed_feedback::tests plus proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof.

It came in with #6939, which merged red

PR #6939's own cargo-test run failed with exactly this set — 33/33 identical after sorting both lists. It was merged anyway. (Its lint was red too; that side is #6956.)

Reproduced on an unrelated PR that changes zero .rs files (#6954: shell script, TS test file, two text manifests, a workflow edit, docs). git diff origin/main...HEAD -- '*.rs' Cargo.toml Cargo.lock is empty there, so the failures are wholly inherited from main:

test result: FAILED. 1456 passed; 33 failed; 3 ignored; 0 measured; 0 filtered out

Sample assertions:

---- proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof ----
panicked at crates/perry-runtime/src/proxy.rs:2052:9:
assertion `left == right` failed: finite numbers are valid in verified ordinary JSValue typed slots

---- typed_feedback::tests::typed_feedback_class_field_get_guard_requires_raw_f64_layout_when_requested ----
panicked at crates/perry-runtime/src/typed_feedback/tests.rs:1660:5:
assertion `left == right` failed

Full list (sorted): proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof, and typed_feedback::tests::typed_feedback_class_field_get_guard_requires_raw_f64_layout_when_requested, typed_feedback_class_field_set_guard_fails_for_frozen_object, typed_feedback_class_field_set_guard_falls_back_for_class_setter, typed_feedback_class_field_set_guard_requires_raw_f64_value_and_layout, typed_feedback_closure_direct_guard_passes_and_rejects_bound_sentinel, typed_feedback_helper_return_guard_failure_returns_original_value, typed_feedback_helper_return_keys_use_shape_facts_not_sample_identity, typed_feedback_invalidation_counters_are_site_attributed, typed_feedback_method_direct_guard_fails_after_megamorphic_site, typed_feedback_method_direct_guard_fails_for_native_receiver, typed_feedback_method_direct_guard_fails_for_own_method_replacement, typed_feedback_method_direct_guard_fails_for_prototype_method_registration, typed_feedback_method_direct_guard_passes_for_exact_registered_method, typed_feedback_non_bounded_array_set_guard_failure_uses_jsvalue_object_fallback, typed_feedback_numeric_array_get_guard_requires_numeric_layout, typed_feedback_numeric_array_guards_reject_registered_class_ref_bits, typed_feedback_numeric_array_push_guard_rejects_mutability_restricted_arrays, typed_feedback_numeric_array_push_guard_requires_room_numeric_value_and_layout, typed_feedback_numeric_array_set_guard_requires_numeric_value_and_layout, typed_feedback_object_set_fast_falls_back_for_uncached_dynamic_key, typed_feedback_object_set_fast_hits_learned_dynamic_key_transition, typed_feedback_packed_i32_loop_guard_rejects_fractional_numeric_layout, typed_feedback_packed_u32_loop_guard_rejects_signed_fractional_and_overflow_layouts, typed_feedback_property_and_method_keys_ignore_receiver_identity, typed_feedback_registers_source_attribution, typed_feedback_roots_rewrite_shape_observations, typed_feedback_state_transitions_to_megamorphic, typed_feedback_trace_dump_honors_env_paths, typed_feedback_trace_json_includes_observed_kinds, typed_feedback_trace_json_reports_counts, typed_feedback_tracks_all_site_categories, typed_feedback_unboxed_numeric_write_falls_back_for_string_values.

Why it will keep hurting

Any PR whose ci_test_scope.py scope includes perry-runtime — which includes PRs that only add a test-files/*.ts gap test — now goes red for reasons unrelated to its diff. Combined with #6956 (lint red on the same commit) that is two of the required checks broken repo-wide.

The failing invocation is the scoped per-PR one, RUST_TEST_THREADS=1 cargo test --lib -p perry-runtime. Worth checking whether the full-workspace invocation (cargo test -p perry-runtime, all targets) still passes: if it does, feature unification across targets is masking these, and the nightly full run structurally cannot see the failure — which is how it would stay broken.

Given 83a6767ff reworked typed-shape/shape-key GC layouts and typed_feedback guards read layout bits, the guard tests asserting on raw_f64 / numeric layout are the plausible blast radius rather than a test-harness artifact.

Related: #6956 (lint red on the same commit), #6893, #6939.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions