labwired-core test-suite trim triage — 2026-10-16
Scope: crates/** (firmware-* demo crates out of scope for pass 1-3; their tests are build-oriented).
Base: origin/main 249da54a6. Audit: 1,036 test files, 8,409 tests, 216 #[ignore], 157 dup-name groups, 22 single-trivial-test files.
Verdicts: DELETE / STRIP / CONSOLIDATE / FIX (test-side only) / KEEP-RED / KEEP. Low-confidence rows live in section Maybe subsections.
The user approves or vetoes each row before execution. Nothing is deleted until then.
Pass-1 method and counting corrections
- Static, read-only review of the worktree at 249da54a6. No cargo commands were run (baseline
cargo testholds the target-dir lock). All line refs are to files in this worktree. - The audit's 216
#[ignore]is an occurrence count over raw text, not test count. Verified: 146 are real#[ignore]attributes across 81 files; the other 70 occurrences are mentions inside doc comments, regular comments, or raw-string fixtures (chip_conformance.rsalone contributes 14, incl. one line with two mentions). Files whose only mentions are non-attributes: chip_conformance.rs, scheduler_lane_coverage.rs, no_vacuous_test_targets.rs, bus_proof_matrix.rs, e2e_labwired_ereader.rs, esp32c3_bt_event_residency_gate.rs, hw-oracle-macros/tests/cases/add_oracle.rs, hw-oracle riscv_oracles.rs / stm32f1_exec_oracle.rs / thumb_oracles.rs / rp2040_timer_exec_oracle.rs (the last four get ignored tests only via#[riscv_oracle_test]/#[thumb_oracle_test]expansion, whose#[ignore]lives in hw-oracle-macros/src/lib.rs). - The audit also cannot see macro-generated ignores: hw-oracle annotates 118 oracle fns with the three oracle macros; each expands to
_sim(runs) +_hw+_diff(#[ignore]), i.e. up to 236 generated ignored tests when the hw features are on, invisible to a text scan. - Real counts by crate: core 93, hw-oracle 30, hw-oracle-macros 6, wasm 11, cli 6.
Global signals (pass 1)
Ignored tests
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/tests/e2e_nokia5110_invaders.rs > dump_splash_framebuffer, firmware_draws_and_ship_tracks_distance, splash_framebuffer_matches_across_tick_intervals, derived_and_explicit_walk_flag_are_output_identical, firmware_tracks_minimum_hcsr04_distance | KEEP | 5 real attrs, all "slow: builds + runs the Space Invaders firmware in-sim" (L111/135/182/238/301); audit counted 7, 2 are doc mentions (L180/236 describing a past stale constant) | 0 | high |
| crates/core/tests/firmware_survival.rs > capture_l4periphs2_sim_output, capture_r12_sim_output, capture_r11_sim_output, capture_tim1_advanced_sim_output, capture_cubemx_hal_sim_output | DELETE | one-shot UART capture helpers (L2737-2814); their stated purpose "audit before locking the bytes into a survival case" is complete: locked-in cases nucleo_l476rg_l4periphs2/cubemx_hal/tim1_advanced/r11/r12 with expected_uart_output exist (L845-1036) and run as non-ignored gates (L2566-2582, L2714); helpers assert nothing |
78 | medium |
| crates/core/src/tests/scheduler_lane_coverage.rs | KEEP | audit FP: 0 real attrs; the 6 matches are NIGHTLY_ONLY reason strings (L80-109) that name other files' ignored tests | 0 | high |
| crates/core/tests/esp32c3_walk_differential.rs > oled_lab_walk_on_vs_scheduler_* (5), framebuffer/tick-interval gates (2), oled_lab_native_mips_probe, oled_lab_walk_pinners_after_rtc_migration, oled_lab_sim_serial_vs_silicon_report | KEEP | 10 real attrs; all "runs the real C3 bootloader + app (~2x-4x30M steps); run with --release --ignored" or wall-clock/operator probes | 0 | high |
| crates/core/tests/esp32c3_ble_pong_perf_probe.rs > probe_ble_pong_*(4), probe_air_step_batch_fixed_cost, probe_air_peer_isolation_rounds | KEEP | 7 real attrs "measurement probe, not a gate"; module header L2 states it asserts nothing by design and that real properties belong in esp32c3_shipped_lab_batch_gate.rs; audit counted 8 (1 module doc) | 0 | high |
| crates/core/tests/esp32c3_oled_profile.rs > esp32c3_uart0_active_work_arms | DELETE | test self-labels "TEMP DIAGNOSTIC: which has_active_work() arm keeps uart0 re-arming?" (L517); the investigation closed in commit a5a1cd723 "stop uart0 waking the scheduler every cycle (12.2x)"; one-off diagnostic, asserts nothing | 36 | medium |
| crates/core/tests/esp32c3_oled_profile.rs > esp32c3_oled_native_baseline, phase_decomposition, sample_target, boot_loop_sample_target, guest_pc_attribution | KEEP | 5 remaining attrs are "run with --release --ignored" benchmarks/diagnostics (L177-519) | 0 | high |
| crates/core/tests/esp32s3_doom_frame_oracle.rs > esp32s3_doom_frame1_matches_hardware_oracle, esp32s3_doom_steady_state_matches_recorded_oracle | KEEP | 2 real attrs: 160M / 1.80B steps + monorepo Doom flash image (L661/728); tracked as NIGHTLY_ONLY in scheduler_lane_coverage.rs | 0 | high |
| crates/core/tests/jit_lockstep.rs > lockstep_noop, lockstep_detects_register_corruption, lockstep_windowed_call_long_run, lockstep_multi_op_hot_bb_aligned | KEEP | 4 real attrs "needs labwired-ereader ELF"; header L8-11 says the ELF is an Arduino sketch no CI lane builds; test panics if run without it | 0 | high |
| crates/core/tests/rv1103_basket_loader.rs > reviewed_prepared_profile_is_accepted, same_reviewed_profile_accepts_independent_build_location, exact_archive_rejects_mode_body_duplicate, artifact_and_clock_preflight_fail_without_mutating_ram, native_startup_holds_releases_then_initializes_entry, closed_fresh_bus_refuses_shadow_flash | KEEP | all 6 "requires reviewed pinned artifacts in LABWIRED_RV1103_BASKET_ARTIFACTS" | 0 | high |
| crates/core/tests/capture_nokia5110_frames.rs > collects_animated_frames, paddle_renders_full_width, write_frames_bin | KEEP | "slow: builds + runs the firmware in-sim" / "writes invaders-frames.bin from a real sim run"; recording tools | 0 | high |
| crates/core/tests/e2e_labwired_ereader.rs | KEEP | audit FP: 0 real attrs; L44-48 explicitly says the test is "NOT #[ignore]d" after a real blank-demo bug shipped behind a green board |
0 | high |
| crates/core/tests/esp32c3_bt_active_walk_pinners.rs > ble_pong_advertising_node_walk_pinners | KEEP | 1 real attr: "boots the real C3 BLE Pong image (~60M steps); run with --release --ignored" (L196); audit counted 3 (2 doc) | 0 | high |
| crates/core/tests/esp32c3_clamped_full_state_differential.rs > diag_first_divergence_point_interval_1_vs_64, diag_measure_tick_costs_interval_1_and_64, oled_lab_full_state_byte_identical_interval_1_vs_64 | KEEP | 2 diagnostics + 1 "runs the real C3 bootloader + app (~2x30M steps)" gate (L182-264) | 0 | high |
| crates/core/tests/esp32s3_irq_cache_differential.rs > doom_lab_rom_boot_routing_is_identical_to_a_full_repoll | KEEP | 1 real attr; needs monorepo Doom image via LABWIRED_ESP32S3_DOOM_FLASH (L553); audit counted 3 (2 doc) | 0 | high |
| crates/core/tests/xtensa_exec.rs > test_exec_entry_window_overflow_of4, test_exec_entry_window_overflow_of8, test_exec_entry_window_overflow_of12 | DELETE | dead by design: ENTRY overflow vectoring does not exist in any mode — exec_entry (call_window.rs:169-214) rotates WB and writes the callee SP with no overflow check, and the live per-instruction F5 path window_overflow_vectored (xtensa_lx7.rs:1419-1454, runtime-gated on faithful_windows, set by the S3 builder at system/builder/xtensa.rs:175) explicitly skips Entry (xtensa_lx7.rs:1424-1429); the #[cfg(any())] phrasing survives only in a stale comment (xtensa_lx7.rs:1480). Tests assert OF12 vector dispatch that cannot happen; setup_entry_overflow (L4035-4045) and OF*_VECOFS consts (L4027-4030) are used only by these 3 tests |
145 | high |
| crates/core/tests/e2e_esp32c3_snapshot_resume.rs > resume_is_byte_equivalent_to_cold_boot_and_far_cheaper | KEEP | 1 real attr "boots the real C3 mask ROM (~150M steps); run with --release --ignored"; audit counted 2 (1 doc) | 0 | high |
| crates/core/tests/e2e_labwired_wifi.rs > labwired_wifi_fixture_connects_and_gets | KEEP | 1 real attr: "loads the arduino-esp32 WiFi fixture ELF and runs up to 200M cycles" (L44); audit counted 2 (1 doc) | 0 | high |
| crates/core/tests/esp32c3_bt_event_residency_gate.rs | KEEP | audit FP: 0 real attrs; L216 says "Deliberately NOT #[ignore]d: the whole defect it covers is a metric that no lane checked" |
0 | high |
| crates/core/tests/esp32c3_shipped_lab_batch_gate.rs > shipped_labs_keep_batching | KEEP | 1 real attr "runs real shipped bootloaders (~30M steps/lab); run with --release --ignored" (L415) | 0 | high |
| crates/core/tests/riscv_jit_c3_oled_differential.rs > jit_vs_interpreter_c3_oled_is_byte_identical_and_non_vacuous | KEEP | 1 real attr: real C3 bootloader + app, ~30M steps x2, needs jit+event-scheduler (module doc L29-32) | 0 | high |
| crates/core/tests/world_esp32c3_ble_gatt.rs > two_c3_nodes_connect_discover_read_write_and_notify, a_scripted_phone_connects_to_the_c3_gatt_server | KEEP | both "two faithful C3 ROM boots in lockstep; release + fetched fixtures" (L196/281) | 0 | high |
| crates/core/src/tests/bench_spi_engine.rs > bench_default_byte_level_path, bench_edge_sampling_cost | KEEP | "host wall-clock probe; run with --release -- --ignored --nocapture" (L137/169) | 0 | high |
| crates/core/src/tests/no_vacuous_test_targets.rs | KEEP | audit FP: 0 real attrs; 1 doc mention + 1 string in the NIGHTLY_ONLY-style table (L61/110) | 0 | high |
| crates/core/src/tests/bus_proof_matrix.rs | KEEP | audit FP: 0 real attrs; the single match is module doc L33 describing the shallow class |
0 | high |
| crates/core/src/tests/spi_byte_level_golden.rs > print_golden | KEEP | "recording generator; run with --ignored --nocapture to recapture WIRE/DR" (L168) | 0 | high |
| crates/core/tests/bench_walk_free_kw41z.rs > kw41z_walk_free_mips | KEEP | "manual perf probe" (L77); also NIGHTLY_ONLY-listed in scheduler_lane_coverage.rs | 0 | high |
| crates/core/tests/c3_reference_firmware.rs > customer_c3_esp_idf_firmware_initializes_its_gpio_and_uart_driver | KEEP | "requires the ESP-IDF customer ELF and sibling flash images in IOLINKI_C3_ELF" (L12) | 0 | high |
| crates/core/tests/diag_c3_yield.rs > diag_c3_first_yield | KEEP | "diagnostic probe, not a gate"; needs validation/arduino-matrix/out/esp32c3/L0_serial_boot/firmware.elf, a PlatformIO matrix output not in the tree (see Maybe) | 0 | high |
| crates/core/tests/diag_esp32_dual_core_boot.rs > diag_app_cpu_boot_progress | KEEP | "diagnostic only" (L13); 1201-line harness (see Maybe) | 0 | high |
| crates/core/tests/diag_esp32c3_boot.rs > diag_c3_boot_progress | KEEP | "diagnostic probe, not a gate"; matrix output not in tree (see Maybe) | 0 | high |
| crates/core/tests/diag_esp32c3_panic.rs > diag_c3_panic_message | KEEP | "diagnostic probe, not a gate"; matrix output not in tree (see Maybe) | 0 | high |
| crates/core/tests/diag_esp32s3_boot.rs > diag_s3_boot | KEEP | "diagnostic probe, not a gate"; matrix output not in tree (see Maybe) | 0 | high |
| crates/core/tests/diag_esp32s3_l2.rs > diag_s3_l2 | KEEP | "diagnostic probe, not a gate"; matrix output not in tree (see Maybe) | 0 | high |
| crates/core/tests/e2e_esp32_epaper.rs > firmware_drives_panel_to_ereader_bitmap | KEEP | "needs +esp-built epaper ELF; NO CI lane builds it yet — manual only" (L60) (see Maybe) | 0 | high |
| crates/core/tests/e2e_external_arduino_esp32_in_sim.rs > external_arduino_esp32_firmware_drives_panel_in_sim | KEEP | only runs when LABWIRED_EXTERNAL_ARDUINO_ESP32_ELF is set (L30) | 0 | high |
| crates/core/tests/e2e_nrf52840_proximity.rs > alarm_tracks_target_distance | KEEP | "slow: builds + runs the proximity firmware in-sim" (L81) | 0 | high |
| crates/core/tests/esp32s3_oled_profile.rs > esp32s3_oled_native_baseline | KEEP | "native S3 workload benchmark; run explicitly with --release --ignored" (L209) | 0 | high |
| crates/core/tests/g0_reference_firmware.rs > customer_g0_firmware_initializes_and_handles_external_wake | KEEP | "requires the built customer G0 ELF in IOLINKI_G0_ELF" (L7) | 0 | high |
| crates/core/tests/inspect_device_binding_universal.rs > dump_devices_json | KEEP | "diagnostic dump, not an assertion" (L166); documented reproducer paired with 5 active assert-tests in the same file | 0 | high |
| crates/core/tests/logic_capture_bench.rs > bench_logic_capture_overhead | KEEP | "manual timing harness, run with --release --nocapture" (L167) | 0 | high |
| crates/core/tests/microbit_v2_board_io_guest.rs > active_display_button_workload_throughput | KEEP | "explicit release-mode active-workload performance qualification" (L142) | 0 | high |
| crates/core/tests/microbit_v2_motion_io_guest.rs > active_motion_display_button_workload_throughput | KEEP | "explicit release-mode active-motion performance qualification" (L176) | 0 | high |
| crates/core/tests/nucleo_u545re.rs > cube_hal_firmware_reaches_160mhz_blinks_ld2_and_reports_b1 | KEEP | "20M-step Cube HAL run (~1 min); run with --ignored" (L156) | 0 | high |
| crates/core/tests/riscv_jit_alu_lockstep.rs > bench_alu_loop_beats_interpreter | KEEP | "micro-benchmark; run with --ignored --nocapture" (L308) | 0 | high |
| crates/core/tests/riscv_jit_combined_bench.rs > bench_combined_loop_beats_interpreter | KEEP | "micro-benchmark; run with --ignored --nocapture" (L106) | 0 | high |
| crates/core/tests/runtime_snapshot.rs > agentdeck_snapshot_file_restores_post_paint_panel | KEEP | "needs /tmp/agentdeck-postpaint.lwrs from a manual capture" (L286) (see Maybe) | 0 | high |
| crates/core/tests/rv1103_devices.rs > gic_level_sampling_benchmark | KEEP | "explicit performance measurement, no wall-clock pass threshold" (L652) | 0 | high |
| crates/core/tests/rv1103_linux_boot.rs > production_zimage_reaches_pid1_and_advancing_guest_uptime | KEEP | "requires LABWIRED_RV1103_CLI and LABWIRED_RV1103_ARTIFACTS; up to 1800 seconds" (L182) | 0 | high |
| crates/core/tests/rv1103_linux_loader.rs > pinned_artifacts_load_or_backend_refusal_is_atomic | KEEP | "requires independently prepared pinned Alpine artifacts in LABWIRED_RV1103_ARTIFACTS" (L207) | 0 | high |
| crates/core/tests/u5_reference_firmware.rs > customer_u5_firmware_initializes_and_handles_external_wake | KEEP | "requires the built customer U5 ELF in IOLINKI_U5_ELF" (L7) | 0 | high |
| crates/core/tests/world_can_dashboard_demo.rs > the_demo_world_runs_faster_than_real_time | KEEP | "wall-clock probe; run with --release -- --ignored --nocapture" (L473) | 0 | high |
| crates/core/tests/world_can_perf.rs > three_f103_can_world_throughput | KEEP | "manual perf probe" (L287) | 0 | high |
| crates/core/tests/world_multichip.rs > gpio_net_speed | KEEP | "timing benchmark: run with --release --ignored --nocapture" (L701) | 0 | high |
| crates/hw-oracle/tests/oracles.rs > entry_window_overflow_of4_sim | DELETE | dead by design: the ENTRY-driven overflow case cannot pass in any mode — exec_entry has no overflow-vector path (call_window.rs:169-214) and the live F5 check window_overflow_vectored skips Entry (xtensa_lx7.rs:1424); the case's own L924-930 comment says F5 vectoring is "intentionally disabled", which is stale — it is Entry-skipped, not disabled; the spec fn stays for the _hw variant |
6 | high |
| crates/hw-oracle/tests/oracles.rs > entry_window_overflow_of4_hw + 47 other hw_oracle_test _hw/_diff variants | KEEP | every case's hardware/diff variants are #[ignore = "hw-oracle: requires connected ESP32-S3 board"] by macro construction |
0 | high |
| crates/hw-oracle/src/flash.rs > test_target_board_detect, flash_and_halt_minimal_elf | KEEP | "requires a physically connected ESP32-S3 enumerating as USB 303a:1001"; one is declared ahead of a fixture that does not exist yet, on purpose (L260-267) | 0 | high |
| crates/hw-oracle/src/openocd.rs > openocd_halts_and_reads_reg, openocd_read_write_memory, openocd_write_read_register | KEEP | "requires a USB-JTAG-attached ESP32-S3 and a working OpenOCD" (L650/664/687) | 0 | high |
| crates/hw-oracle/tests/h563_mmio_diff.rs > h563_mmio_diff, h563_parity_diff, h563_class_diff | KEEP | "requires connected NUCLEO-H563ZI" (L1220/1281/1344) | 0 | high |
| crates/hw-oracle/tests/l476_mmio_diff.rs > l476_mmio_diff, l476_parity_diff | KEEP | "requires connected NUCLEO-L476RG" (L569/632) | 0 | high |
| crates/hw-oracle/tests/nrf52_full_register_conformance.rs > nrf52840_full_register_conformance | KEEP | "sweeps every remaining nRF52840 peripheral register against real silicon... over SWD" (L2178); 1 audit match is doc L8 | 0 | high |
| crates/hw-oracle/tests/nrf52_spim_easydma_conformance.rs > nrf52_spim0_easydma_swd_triggered | KEEP | "triggers a real SPIM0 EasyDMA transfer on an attached nRF52840 over SWD" (L169); audit matched a comment too (L198) | 0 | high |
| crates/hw-oracle/tests/riscv_oracles.rs | KEEP | audit FP: 0 real in-file attrs; 16 #[riscv_oracle_test] cases get _hw/_diff ignores from the macro body (hw-oracle-macros L90/97) |
0 | high |
| crates/hw-oracle/tests/stm32f1_exec_oracle.rs | KEEP | audit FP: 0 real in-file attrs; 15 #[thumb_oracle_test] cases, ignores generated by macro (hw-oracle-macros L138/145) |
0 | high |
| crates/hw-oracle/tests/thumb_oracles.rs | KEEP | audit FP: 0 real in-file attrs; 30 #[thumb_oracle_test] cases, macro-generated ignores |
0 | high |
| crates/hw-oracle/tests/rp2040_timer_exec_oracle.rs | KEEP | audit FP: 0 real in-file attrs; 3 #[thumb_oracle_test] cases, macro-generated ignores |
0 | high |
| crates/hw-oracle/tests/f103_conformance.rs > conformance_diff | KEEP | "requires an SWD-attached STM32F103 driven by OpenOCD, plus a built fixture" (L170) | 0 | high |
| crates/hw-oracle/tests/f103_fuzz_hil_confirm.rs > fuzz_then_confirm_on_silicon | KEEP | "fuzzes in sim and then replays every crash on an SWD-attached STM32F103" (L94) | 0 | high |
| crates/hw-oracle/tests/f103_fuzz_phase0.rs > fuzz_oracle_hw | KEEP | "requires an SWD-attached STM32F103 driven by OpenOCD, plus a built fixture" (L171) | 0 | high |
| crates/hw-oracle/tests/foreign_firmware_probe.rs > probe_foreign_firmware | KEEP | "manual probe harness — needs FOREIGN_ELF env" (L19) | 0 | high |
| crates/hw-oracle/tests/nrf52_ccm_conformance.rs > nrf52840_ccm_register_surface | KEEP | "requires connected nRF52840 at LABWIRED_STLINK_LOCATION=1-2" (L162) | 0 | high |
| crates/hw-oracle/tests/nrf52_conformance.rs > conformance_diff | KEEP | "requires an SWD-attached nRF52840 driven by OpenOCD, plus a built fixture" (L228) | 0 | high |
| crates/hw-oracle/tests/nrf52_cpu_conformance.rs > cpu_conformance_diff | KEEP | same SWD/OpenOCD gate (L275) | 0 | high |
| crates/hw-oracle/tests/nrf52_gpio_conformance.rs > nrf52840_gpio_conformance | KEEP | "sweeps the nRF52840 P0/P1 GPIO register map against real silicon over SWD" (L581) | 0 | high |
| crates/hw-oracle/tests/nrf52_mmio_diff.rs > nrf52840_mmio_diff | KEEP | "diffs every MMIO register the production nRF52840 yaml models against real silicon over SWD" (L302) | 0 | high |
| crates/hw-oracle/tests/nrf52_onboarding_diff.rs > nrf52840_onboarding_diff | KEEP | "probes the 24 peripherals the onboarding nRF52840 yaml claims against real silicon" (L449) | 0 | high |
| crates/hw-oracle/tests/nrf52_power_conformance.rs > nrf52840_power_conformance | KEEP | "sweeps the nRF52840 POWER register surface against real silicon over SWD" (L214) | 0 | high |
| crates/hw-oracle/tests/nrf52_spis_twis_conformance.rs > nrf52840_spis_twis_conformance | KEEP | "sweeps SPIS0/TWIS1 register surface against real silicon" (L580) | 0 | high |
| crates/hw-oracle/tests/nrf52_timer_rtc_conformance.rs > nrf52840_timer_rtc_conformance | KEEP | "sweeps the full TIMER0/RTC0 register set against real silicon over SWD" (L340) | 0 | high |
| crates/hw-oracle/tests/stm32f1_mmio_diff.rs > f1_mmio_diff | KEEP | "requires connected STM32F103" (L1330) | 0 | high |
| crates/hw-oracle/tests/stm32f4_mmio_diff.rs > f4_mmio_diff | KEEP | "requires connected STM32F407 (LABWIRED_STLINK_LOCATION)" (L583) | 0 | high |
| crates/hw-oracle/tests/stm32l0_mmio_diff.rs > l0_mmio_diff | KEEP | "requires connected NUCLEO-L073RZ" (L522) | 0 | high |
| crates/hw-oracle-macros/src/lib.rs | KEEP | 12 audit matches = 6 real attrs inside the three macro bodies (L42/49/90/97/138/145, all hardware gates) + 6 doc mentions; the "9 tests with 0 asserts" are quote! bodies whose generated tests live downstream |
0 | high |
| crates/hw-oracle-macros/tests/cases/add_oracle.rs | KEEP | audit FP: 2 doc-comment lines (L6-7) describing the generated test shapes; no real attrs | 0 | high |
| crates/wasm/src/lib.rs > wasm_romboot_reaches_app_main, wasm_romboot_oled_paints, wasm_c3_flash_fast_start_oled_paints_quickly, wasm_c3_browser_path_runs_few_device_seconds, servo_trajectory_browser_path, native_usb_board_shows_the_usb_console, bridge_console_board_still_shows_uart0, output_on_the_untapped_console_is_reported_not_lost | KEEP | 8 real attrs; 6 are "boots the real C3 mask ROM (~150M steps); run with --release --ignored", 1 needs LABWIRED_SERVO_TRAJECTORY_ELF (measurement harness), 1 is a browser-path smoke; audit counted 11 (3 doc) | 0 | high |
| crates/wasm/src/cosim_tests.rs > step_batch_throughput, touch_lab_step_batch_throughput | KEEP | "throughput measurement; run in release with --ignored --nocapture" (L377/603) | 0 | high |
| crates/wasm/src/world.rs > a_wasm_world_runs_a_scripted_phone_against_a_c3_gatt_server | KEEP | "faithful C3 ROM boot; release + fetched fixture" (L670) | 0 | high |
| crates/cli/src/commands/basket_native.rs > actual_persistent_plant_startup_hold_release_and_fresh_epoch_keep_one_child_and_time | KEEP | "requires LABWIRED_RV1103_BASKET_ARTIFACTS reviewed prepared inputs" (L1188) | 0 | high |
| crates/cli/tests/e2e_esp32c3_ble_adv_republish.rs > an_application_republishes_advertising_data_and_the_peer_reads_every_value | KEEP | "two faithful C3 ROM boots...; run with --release --ignored" (L182) | 0 | high |
| crates/cli/tests/e2e_esp32c3_ble_arduino.rs > esp32c3_ble_arduino_reaches_ble_init_and_advertising | KEEP | "faithful C3 ROM boot of a real Arduino BLE binary (~360M steps)" (L190); audit counted 2 (1 doc L57) | 0 | high |
| crates/cli/tests/e2e_esp32c3_ble_two_node.rs > two_c3_nodes_exchange_advertising_data_at_the_application_level | KEEP | "two faithful C3 ROM boots stepping in lockstep over the shared BLE air" (L167) | 0 | high |
| crates/cli/tests/h5_demo.rs > test_h5_demo_uart_output | KEEP | "requires thumbv7em-none-eabihf fixture; run in nightly validation" (L8) | 0 | high |
| crates/cli/tests/rv1103_linux_cli.rs > bounded_native_zimage_run_returns_failure_receipt | KEEP | "requires independently prepared pinned artifacts in LABWIRED_RV1103_ARTIFACTS" (L49) | 0 | high |
Excluded: crates/core/tests/chip_conformance.rs — all 14 audit matches are inside doc comments and r#"..."# fixture strings (L749, 809, 936, 1030, 1047, 1055, 1074, 1119, 1134, 1154, 1159, 1185, 1189); 0 real attributes. That file is the ratchet that detects ignored tests; its own tests run normally.
Totals (ignored section): DELETE 10 tests in 4 file rows (~265 lines); KEEP 89 rows covering the other 87 files (93 rows = 91 files + 2 split rows for esp32c3_oled_profile.rs and hw-oracle oracles.rs); STRIP 0; CONSOLIDATE 0; FIX 0; KEEP-RED 0. Counting correction: 146 real attrs / 81 files vs audit 216 occurrences / 92 files (chip_conformance.rs excluded as false positive and noted at the end of the table).
Duplicate test names
| files > test | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/src/peripherals/esp32/i2c.rs + esp32s3/i2c.rs + esp32c3/i2c_tests.rs > control_register_reads_back_over_the_bus, switching_channels_changes_which_sensor_answers, a_sensor_on_a_disabled_channel_does_not_answer, a_write_reaches_only_the_selected_channel, four_sensors_at_one_address_answer_independently + 10 more shared names | CONSOLIDATE | 15 same-named tests across the three ESP32-family I2C suites; 5 bodies are byte-identical after comment/whitespace normalization and 8 more are >=0.97 between esp32 and esp32s3; the c3 copy lives in a #[path = "i2c_tests.rs"] mod tests (esp32c3/i2c.rs:1805). A shared macro taking the per-chip controller/register map removes the copies without losing per-SUT coverage |
~400 | medium |
| crates/core/src/peripherals/esp32/{dport,efuse,ledc,rtc_cntl,sha,syscon}.rs > base_is_esp32_classic_canonical_address | KEEP | same name, different constant per peripheral (e.g. efuse.rs:459-463 asserts Efuse::new().base() == 0x3FF5_A000); real per-device MMIO pinning, name collision only | 0 | high |
| crates/core/src/peripherals/{dma,dwt,esp32c3/ledc,esp32c3/rtc_timer,esp32c6/lp_timer,nrf52/rtc,nrf54l/grtc_tests,systick,timer}.rs > without_clock_stays_on_legacy_tick_path | KEEP | 9 occurrences; bodies 0.83-0.97 similar but each drives its own peripheral type (largest pair dwt<->systick 0.97, still distinct SUTs); no cross-file identity; consolidation would couple unrelated modules | 0 | high |
| crates/core/src/peripherals/{esp32c3/apb_saradc,esp32c3/ledc,esp32c3/spi,esp32s3/gdma_tests,esp32s3/gpspi,esp32s3/sar_adc,esp32s3/timer_group}.rs > int_clr_is_w1c | KEEP | per-peripheral write-one-to-clear semantics on different register maps; closest pair c3 spi <-> s3 gpspi (0.98) are sibling controllers, not copies to strip under this pass — superseded for the c3-spi <-> s3-gpspi copy only by the pass-3 SPI-family CONSOLIDATE row; the other five files stay KEEP | 0 | high |
| crates/core/src/peripherals/{esp32/uart,esp32s3/lcd_cam,esp32s3/sar_adc,esp32s3/sdmmc,esp_uart,nrf54l/uarte}.rs > config_registers_round_trip/config_registers_roundtrip | KEEP | per-peripheral register round-trips; esp32/uart <-> esp_uart 0.86 (sibling driver families); coincidence of naming, coverage differs per device | 0 | high |
| crates/core/src/peripherals/{dma,dwt,i2c_kinetis_scheduler,nrf54l/grtc_tests,systick,timer}.rs > clock_attach_flips_to_scheduler_and_walk_tick_is_inert | KEEP | same pattern family, per-SUT scheduler-vs-walk gates; no byte-identical bodies across files | 0 | high |
| crates/core/src/peripherals/esp32s3/{gpio,gpspi,rmt,sar_adc,sdmmc,sens}.rs > reset_defaults_seeded | KEEP | per-peripheral reset-value tables; bodies diverge with register map size (555-1380 chars) — superseded for the s3/gpspi copy only by the pass-3 SPI-family CONSOLIDATE row; the other five files stay KEEP | 0 | high |
| crates/core/src/peripherals/esp32/{dport,efuse,ledc,rtc_cntl,sha,syscon}.rs > runtime_snapshot_round_trip_preserves_state | KEEP | per-peripheral state sets; no identity; each pins its own snapshot surface | 0 | high |
| crates/core/src/peripherals/{esp32/sar_adc,esp32c3/ana_i2c,esp32c3/apb_saradc,esp32c3/rtc_timer,esp32c3/sar_adc,esp32c6/lp_timer}.rs > other_registers_are_register_backed | KEEP | 0.86-0.95 similar but different register maps and reset values per chip | 0 | high |
| crates/core/src/tests/{downcast_ratchet,event_scheduler_cfg_ratchet,no_vacuous_test_targets,one_arch_policy,one_arduino_boot_path}.rs > the_scan_is_not_vacuous | KEEP | each scans its own policy corpus (774-2097 chars, different targets); same anti-vacuity name by convention | 0 | high |
| crates/core/src/decoder/arm_tests_extra.rs > test_decode_bfc, test_decode_bfi, test_decode_ubfx, test_decode_misc_rev | DELETE | orphan file: no mod/#[path]/include! reference anywhere in the repo (whole-tree grep: 0 hits), untouched since initial commit 2d695ae9c, so it never compiles; 4 bodies ~0.98 similar to the live tests in decoder/arm.rs (same names), but its encodings diverge from the live ones (orphan BFI h2 0x002F vs live 0x100F, arm.rs:1551-1552; orphan BFC 0x0257 vs live 0x2217, arm.rs:1574-1575), so it would also fail if it ever were compiled |
95 | high |
Totals (duplicates): DELETE 1 row / 95 lines; CONSOLIDATE 1 row (~400 lines); KEEP-note 9 rows. Accounting of the audit's 157 groups: 58 are explicitly rowed or re-measured in this doc — 28 in the pass-1 table above (the I2C trio row's 15 shared names, 5 listed plus 10 more; the nine single-group rows baseisesp…, withoutclock…, intclriswc, configregisters…, clockattach…, resetdefaultsseeded, runtimesnapshot…, otherregisters…, thescan…; and the orphan-file row's 4 decode groups test_decode_bfc/bfi/ubfx/misc_rev), 3 in pass 2 (the_wire_transcript_is_byte_identical_to_the_deleted_model; atsamdfromconfigbuilds, covered by the six-file *_config.rs CONSOLIDATE row; stmlzephyrbootwalkvsschedulerisbyteidentical, via the pass-1 single-trivial rows for the L073/L476 walk files), 22 in pass 3 (10 new groups in the SPI-family row — scheduler_arms_recurring_external_can_poll, config_registers_store_under_write_mask, unmapped_offsets_read_zero_and_ignore_writes, cmd_update_bit_self_clears, dma_conf_afifo_rst_strobes_self_clear, slave_soft_reset_self_clears, w_buffer_round_trips, usr_start_auto_clears_and_latches_trans_done, miso_fills_0xff_for_no_device, int_st_masks_with_ena_and_emits_source — plus scl_runs_at_the_rate_the_timing_registers_program, readonly_registers_ignore_writes, tx_fifo_fills_then_drains_to_sink, the seven nRF convention names enable_mask / maxcnt_masks_to_8_bits / orc_masks_to_8_bits / tasks_read_as_zero / psel_round_trip / events_write_1_ignored / intenset_intenclr, attaching_a_clock_leaves_the_walk, readout_frozen_until_next_update), and 5 in pass 4 (publicorderedtypecontract, fipsappendixb, deterministicandrestoreequivalent, restorethenrunmatchesastraightrun, alatersnapshotrestoresafterrollingbacktoanearlierone). The remaining 99 groups were not investigated by name in any pass (no body comparison) — the honest reading is "not ruled on", not "coincidental", though the spot checks that exist (hfclkstartraisesstartedevent spans the nrf5340/nrf54l15 boot tests) point at same-name/different-SUT families.
Single-trivial-test files
| file | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/hw-oracle-macros/src/lib.rs | KEEP | audit FP: the 9 "tests" are #[test] tokens inside quote! macro bodies (0 asserts by nature); the 12 "ignores" = 6 real hardware-gated macro attrs + 6 doc mentions |
0 | high |
| crates/hw-oracle/tests/oracles.rs | KEEP | assertions live in .expect(...) closures of 48 OracleCases, which the audit's assert regex cannot see; the only dead test is the rowed F5 sim variant |
0 | high |
| crates/core/src/tests/bench_spi_engine.rs | KEEP | 2 ignored wall-clock probes printing ns/frame; docs L137-169 explain the measurement design; asserts are not the point | 0 | high |
| crates/core/tests/bench_walk_free_kw41z.rs | KEEP | ignored MIPS probe printing before/after; NIGHTLY_ONLY-listed | 0 | high |
| crates/core/tests/diag_c3_yield.rs | KEEP | env-gated diagnostic (matrix output not in tree); see Maybe | 0 | high |
| crates/core/tests/diag_esp32s3_boot.rs | KEEP | env-gated diagnostic (matrix output not in tree); see Maybe | 0 | high |
| crates/core/tests/diag_esp32s3_l2.rs | KEEP | env-gated diagnostic (matrix output not in tree); see Maybe | 0 | high |
| crates/hw-oracle/tests/foreign_firmware_probe.rs | KEEP | FOREIGN_ELF-gated PC-histogram triage harness; meaningful when pointed at a foreign ELF | 0 | high |
| crates/egress-relay/src/build.rs | KEEP | 3 tests; the 2 is_err() cases assert real rejection paths (missing mqtt topic, unknown transport), only builds_tcp_transport is thin construction | 0 | high |
| crates/core/tests/stm32l073_walk_differential.rs | KEEP | calls harness::assert_walk_free_boot_identical with chip-specific args; asserts live in tests/stm32_walk_free/mod.rs | 0 | high |
| crates/core/tests/stm32l476_walk_differential.rs | KEEP | same harness, L476 args | 0 | high |
| crates/core/tests/stm32f401_walk_differential.rs | KEEP | same harness, F401 args | 0 | high |
| crates/core/tests/e2e_hello_world.rs | KEEP | feature-gated (esp32s3-fixtures) e2e; builds firmware and panics unless 2+ banners seen | 0 | high |
| crates/config/src/embedded.rs | KEEP | every_type_spelling_names_exactly_one_descriptor panics on duplicate type spellings; panic-based gate, zero assert! macros | 0 | high |
| crates/core/src/system/rv1103_basket.rs | KEEP | controller_map_requires_matching_decoded_dt_windows_and_spis asserts mutation rejection (assert! on validate_* results) | 0 | high |
| crates/core/tests/avr_nano_machine_run.rs | KEEP | runs the Nano ELF until "nano-ok", panics otherwise; panic-based golden | 0 | high |
| crates/core/tests/e2e_blinky.rs | KEEP | feature-gated e2e recording GPIO2 transitions; panics unless >=4 toggles | 0 | high |
| crates/core/tests/intmatrix_alarm.rs | KEEP | hand-assembled ISR drives the full IRQ chain; panics unless 3+ GPIO2 transitions | 0 | high |
| crates/core/tests/register_compliance.rs | KEEP | scans every chip YAML and fails on MemoryViolation at each peripheral base; panic/anyhow-based | 0 | high |
| crates/core/tests/strict_onboarding.rs | KEEP | per-chip strict onboarding sweep with allowlist-staleness detection; panic-based | 0 | high |
| crates/hw-oracle-macros/tests/expand.rs | KEEP | trybuild compile-pass test; its assertion is the trybuild harness itself | 0 | high |
| crates/svd-ingestor/tests/fuzz_test.rs | KEEP | proptest never-panics property over SVD register conversion; assertions are the proptest framework | 0 | high |
Totals (single-trivial): 22 KEEP, 0 DELETE/STRIP/CONSOLIDATE/FIX. Every file here is an audit regex false positive (assert-count == 0 but the tests use panics, cross-fn harness asserts, trybuild, proptest, or closure asserts).
hw-oracle
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
crates/hw-oracle (23 files) > 30 real #[ignore] attrs (nrf52_* conformance/mmio/power/gpio/spis_twis/timer_rtc/full_register/spim_easydma/onboarding/ccm, h563, l476, stm32f1/f4/l0 mmio, f103_conformance/fuzz_hil/fuzz_phase0, oracles hw variant, flash, openocd) |
KEEP | every one is a hardware gate: "requires connected |
0 | high |
| crates/hw-oracle/tests/oracles.rs > entry_window_overflow_of4_sim | DELETE | dead sim variant — the ENTRY-driven overflow case cannot pass (live F5 check skips Entry; exec_entry has no vector path — see ignored table row); 48 oracle cases otherwise remain |
6 | high |
crates/hw-oracle/tests/oracles.rs > 48 #[hw_oracle_test] cases |
KEEP | _sim variants run in CI and assert inside .expect closures; _hw/_diff are generated #[ignore]d and need an attached ESP32-S3 |
0 | high |
| crates/hw-oracle-macros/src/lib.rs | KEEP | source of the generated _hw/_diff ignores for 118 oracle cases across 7 test files (up to 236 generated ignored tests); deleting this macro system would strip hardware variants from every oracle bank |
0 | high |
| crates/hw-oracle-macros/tests/cases/add_oracle.rs | KEEP | trybuild fixture; its 2 "ignores" are doc mentions, no real attrs | 0 | high |
| crates/hw-oracle/tests/{riscv_oracles,stm32f1_exec_oracle,thumb_oracles,rp2040_timer_exec_oracle}.rs | KEEP | files with 0 real in-file ignores whose tests are hardware-gated through the macro bodies (audit FPs) | 0 | high |
Why 53% ignored (audit view): the 43 textual occurrences = 30 real attrs + 13 doc/comment mentions (oracles.rs 3, stm32f1_exec 2, thumb 2, riscv 2, rp2040_timer 1, flash 1, full_register 1, spim_easydma 1). Because the crate is an on-silicon comparison suite, every oracle case is supposed to have an ignored hardware twin; the visible ignored fraction is higher still after macro expansion (236 generated _hw/_diff tests when hw features are enabled). Keep/delete consequences: keep = self-hosted HW runners can still execute --ignored --features hw-oracle*; delete = no in-tree way to re-validate model-vs-silicon claims (NRF52_STRICT etc.). No CI cost today since the features are off by default.
Totals (hw-oracle): DELETE 1 test / 6 lines; KEEP 5 rows (crate-wide).
Maybe (global, not approved by default)
Low-confidence delete candidates; listed as KEEP in the main tables per the classification rules (diagnostics/probes are "legitimately gated"), but flagged here if the owner wants a deeper cut.
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/tests/diag_{c3_yield,esp32_dual_core_boot,esp32c3_boot,esp32c3_panic,esp32s3_boot,esp32s3_l2}.rs > the 6 diag_* tests | DELETE (low) | all six are #[ignore]d eprintln-only diagnostics for past investigations, and their inputs (validation/arduino-matrix/out/** PlatformIO builds) are not in the tree, so they cannot run without rebuilding the matrix; largest is diag_esp32_dual_core_boot.rs at 1,201 lines |
~2,705 | low |
| crates/core/tests/e2e_esp32_epaper.rs > firmware_drives_panel_to_ereader_bitmap | DELETE (low) | ignore reason itself: "needs +esp-built epaper ELF; NO CI lane builds it yet — manual only" | 172 | low |
| crates/core/tests/runtime_snapshot.rs > agentdeck_snapshot_file_restores_post_paint_panel | DELETE (low) | depends on /tmp/agentdeck-postpaint.lwrs from a manual capture; the file has no in-tree producer (L286-360) | 75 | low |
Totals (Maybe): 3 low-confidence DELETE rows (if approved: +~2,950 lines — diag cluster 2,705 + e2e_esp32_epaper 172 + runtime_snapshot 75, mostly the two big diag harnesses).
Verified audit false positives (all marked KEEP above)
crates/core/tests/chip_conformance.rs— 14/14 mentions inside comments andr#"..."#fixtures; 0 real attrs (excluded from the ignored rows per instructions).crates/hw-oracle-macros/src/lib.rs— 6 of 12 are doc mentions; the 6 real ones are macro bodies that generate hardware-gated tests; its "tests with 0 asserts" arequote!bodies.crates/hw-oracle-macros/tests/cases/add_oracle.rs— 2/2 doc mentions.hw-oracledoc/comment mentions: oracles.rs (3), stm32f1_exec_oracle.rs (2), thumb_oracles.rs (2), riscv_oracles.rs (2), rp2040_timer_exec_oracle.rs (1), nrf52_spim_easydma_conformance.rs (1), nrf52_full_register_conformance.rs (1), src/flash.rs (1) = 13.- Core comment/string mentions: scheduler_lane_coverage.rs (6, NIGHTLY_ONLY strings), no_vacuous_test_targets.rs (2), bus_proof_matrix.rs (1), e2e_labwired_ereader.rs (3, "NOT ignored" doc), esp32c3_bt_event_residency_gate.rs (2, "Deliberately NOT ignored"), plus in-file doc mentions elsewhere (e.g. esp32c3_ble_pong_perf_probe.rs module header, esp32s3_doom_frame_oracle.rs docs, jit_lockstep.rs L161) — these files' real attrs are rowed normally.
crates/core/src/decoder/arm_tests_extra.rs— not an ignore FP but an orphan-file FP: it is counted by the audit as a test file yet is referenced by no module, so it never compiles (rowed as DELETE).
Self-review notes
- No cargo commands were run; all findings are from static reading of the worktree files (Read tool plus read-only greps).
- Every DELETE/CONSOLIDATE row cites the attribute text, source lines, or commit it rests on; no upstream-behavior speculation is used.
- Ignored rows cover all 92 audit files (chip_conformance excluded and noted; hw-oracle per-file rows live in this doc's ignored table).
- Duplicate section covers the five worst groups (
withoutclockstaysonlegacytickpath9 files / 9 occurrences,intclriswc7 / 7,baseisespclassiccanonicaladdress6 / 6,controlregisterreadsbackoverthebus7 occurrences across 6 distinct files,configregistersroundtrip6 / 6 — the audit's group counters are occurrences, and its names are lowercased with digits stripped) plus every group the 0.8-similarity scan surfaced; the pass-1 duplicates totals line lists the 58 doc-covered groups and the 99 never investigated by name. - Pass-1 verdict impact if all main-table rows approved: 10 ignored tests deleted + 1 orphan file deleted (4 more tests, arm_tests_extra.rs) = ~360 lines total (xtensa 145, firmware_survival 78, arm_tests_extra 95, esp32c3_oled_profile 36, hw-oracle/oracles 6), plus 1 consolidation (~400 lines of duplicated text, no coverage loss); all other rows KEEP. The big line reductions for this audit must come from passes 2-4 (trivial-assert stripping, generic ratchet/nightly policy files, giant multi-purpose files).
crates/core/tests (pass 2)
Scope check first: two of the priority paths are not under crates/core/tests/ — the audit resolves bus/tests_main.rs to crates/core/src/bus/tests_main.rs (5,933 lines / 105 #[test]s, a flat file with no submodules), declarative_i2c.rs to crates/core/src/peripherals/components/declarative_i2c.rs and cortex_m_tests.rs to crates/core/src/cpu/cortex_m_tests.rs. All three are pass-3 scope; pass 3 should note the bus file is flat (the "submodules duplicating each other" question is moot at file level) and run a within-file body-similarity scan. What remains in pass 2 is 360 top-level tests/*.rs files plus helper dirs (common/, display_oracle/, led_strip_oracle/, stm32_walk_free/, fixtures/) that are infrastructure, not test deliverables, and were read only to judge the files that use them.
Method: read the priority files fully or nearly so (xtensa_exec.rs, firmware_survival.rs, world_gpio_net_buses.rs, chip_conformance.rs, bus_visibility.rs, xtensa_decode.rs, display_migration_parity.rs, cortex_m_jit_alu_lockstep.rs, esp32c3_walk_differential.rs, esp32c3_oled_profile.rs, esp32c3_ble_pong_perf_probe.rs, e2e_nokia5110_invaders.rs, rv1103_basket_loader.rs, and the small config/AVR files); all other core/tests files were scanned at head/describe level (module docs, every test name, file-size outliers) plus two scripted sweeps over all 380 files: (a) normalized per-test body similarity within the giant files, (b) cross-file shingle (Jaccard) similarity plus an inline-legacy-model comparison across the 33 *_migration_parity.rs files. No pass-1 row is repeated below: the ignored-test table (esp32c3_walk_differential 10 × KEEP, ble_pong 7 probes, chip_conformance FP, oled_profile uart0 DELETE + 5 KEEP, firmware_survival × 5 capture helpers DELETE, xtensa F3/F5 overflow × 3 DELETE, e2e_nokia5110 × 5 slow gates, rv1103 basket × 6 artifact gates) and the pass-1 single-trivial KEEPs for the AVR/walk-differential files all stand and are referenced, not re-rowed.
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/tests/xtensa_exec.rs > test_exec_retw_window_underflow_uf4 / uf8 / uf12 | STRIP | three normalized-identical bodies (0.99-1.0 similarity): same six-assert shape — PC = VECBASE+{0x040,0x0C0,0x140}, EPC1 = faulting PC, PS.EXCM set, WB rotates to 0, OWB saves N, WindowStart unchanged — with only N (=1/2/3) and the vector offset varying; exec_retw (src/cpu/xtensa_lx7/exec/call_window.rs:217) picks all three offsets in one code path. Collapse to one table-driven test over [(1,0x040),(2,0x0C0),(3,0x140)]; setup_retw_underflow (L4234) stays as the shared setup |
~90 | med |
| crates/core/tests/xtensa_exec.rs > test_exec_rotw_pos / rotw_neg / rotw_neg_wraparound / rotw_max_pos / rotw_max_neg / rotw_does_not_change_windowstart | STRIP | five tests assert the same shape on one code path (exec_rotw, call_window.rs:353): WB == (old+n)&0xF, WindowStart unchanged, PC+3, differing only in (WB, n) = (3,+1),(5,-1),(0,-1),(2,+7),(5,-8); pos↔neg bodies are 0.99 similar and the WS-invariance assert is repeated in all five plus its own test. Collapse rotations into one table loop, keep one dedicated WS-untouched assertion, keep the HW-oracle byte notes as table comments |
~115 | med |
| crates/core/tests/xtensa_exec.rs > test_general_exception_movsp_alloca_redirects_pc | STRIP | duplicates the F6 test test_exec_movsp_overflow_raises_exception (L4794): both set faithful_windows, WB=0/WS[1] live, run movsp a3,a4, and assert EXCCAUSE=5 + EPC1=TEST_PC + PS.EXCM + PC=VECBASE+0x300 (0.83 body overlap); the G1 copy's only delta is clearing EXCM first. Keep the F6 gate (it also pins the "step returns Ok like silicon" contract the G1 doc points back to) |
~40 | med |
crates/core/tests/firmware_survival.rs > 72 one-line run_survival_case(case_by_name(...)) wrappers (test_stm32f103_blinky_survival … test_stm32h735_tier1_survival) |
CONSOLIDATE | 72 of the 92 tests are exactly run_survival_case(case_by_name("…")) (356 lines incl. blanks, e.g. L1949-1952, L2510-2513, L2826-2829); a macro_rules! emitting #[test] fn $name() { run_survival_case(case_by_name($case)) } keeps every CI-visible test name/failure attribution and collapses the boilerplate. Doc-commented regression wrappers (e.g. L2636-2642 CRC->POL, L2725-2729 PLLSAI1RDY) keep their comments at the invocation; the SURVIVAL_CASES table and the ~15 special/ratchet tests are untouched |
~270 | med |
| crates/core/tests/{systick,stm32_timer,stm32_dma,stm32f103_dma,nrf54l15_grtc,efr32mg26,stm32h563,esp32s3}_walk_differential.rs + kw41z_walk_free_differential.rs + nrf52_timer_walk_differential.rs | CONSOLIDATE | common/walk_differential.rs (L25-39) already states it: "Eleven *_walk_differential tests already exist, totalling 6207 lines, and each hand-rolls the same four pieces: a Probe struct, a probe() ... run_probed() ... assert_probes_identical()". Only 3 files migrated (nrf54l15_uarte L2 uses, nrf54l15_twim, atsamd21_sercom); the rest still copy it: systick L228-276, kw41z L186-220, stm32_timer L343-407, stm32_dma L206-263, stm32f103_dma L132-168, nrf54l15_grtc L330-373, efr32mg26 L228-332, nrf52_timer (CycleCpu L55-208 + PollingCpu L923-989), stm32h563 (GpdmaProbe L239 / RtcProbe L475), esp32s3 (IrqProbe L191). Measured scaffolding alone ≈ 473 lines; migrate onto the harness, keeping each peripheral's caller-supplied observables (the harness contract at L47-58 explicitly supports that) |
~400 | med |
| crates/core/tests/{atsamd21,atsamd51,ra4m1,imxrt1064,stm32f746,stm32g071}_config.rs > *_from_config_builds | CONSOLIDATE | six single-test files (35+43+45+69+62+54 = 308 lines) copy the same skeleton verbatim — workspace_root() + SystemManifest::from_file → ChipDescriptor::from_file → SystemBus::from_config — and differ only in board path and per-peripheral presence asserts; pairwise normalized Jaccard 0.85-0.89 for atsamd21/51/ra4m1 and 0.54-0.65 for the rest; tests/common/mod.rs:33 already exposes root(). One file with a shared loader + six named tests (names kept for CI attribution) removes the copies; per-board asserts stay per-board |
~190 | med |
| crates/core/tests/world_gpio_net_buses.rs | KEEP | 104 tests in bus-family modules; the 20 *do_not_depend_on_node_order_or_round_size tests are 1-3-line calls to the shared helpers assert_order_and_round_independent (L180) / same_on_every_driver (L41) over distinct env fixtures (node-order + 37 ns round + driver matrix) — no prod motion in the helpers; primary per-family tests assert hand-derived bytes/edge counts (e.g. spi L254-288 checks DR contents, CS/MOSI/MISO edge counts). Two inline fingerprint blocks (L292, L1042) exist because those tests also invoke same_on_every_driver with extra total_cycles observables; neither is a stale copy |
0 | high |
| crates/core/tests/chip_conformance.rs | KEEP | verified pass-1 FP: 14/14 audit ignore matches are doc/r#"…"# mentions; its 29 #[test] occurrences include the detector fixtures (discards_comments_and_literals cases at L1043-1193). Real tests are the behavior-gate resolver + fleet ratchet; no trim candidates |
0 | high |
| crates/core/tests/display_migration_parity.rs | KEEP | per-panel old-vs-descriptor parity (SSD1306/ST7789/SH1107/PCD8544/ILI9341/RM67162/SSD1680/UC8151D); repeated names across panels (madctl/unpowered/artifact/top-colour) are distinct SUTs, not copies; the deliberate SSD1306 0x20 fix is asserted in both directions (L291-356) so neither half can be removed; cross-file legacy copies measured — display_oracle/ vs other migration files never exceed 0.5 similarity | 0 | high |
| crates/core/tests/cortex_m_jit_alu_lockstep.rs | KEEP | 47 tests are distinct JIT lockstep scenarios (IT-mask permutations, out-of-window resume, VFP); within-file similarity scan found only 6-line delegating calls to a shared f32 helper (vsub/vmul/vdiv L984-1003) and no body ≥0.9 duplication otherwise | 0 | high |
| crates/core/tests/bus_visibility.rs | KEEP | 3 tests (fleet ratchet, classifier contract L1964, exclusion uniqueness L1980) sitting on a 1.9k-line measurement harness that drives UART/SPI/I2C through real CPU execution per chip; the ratchet is the only gate that catches a bus silently losing decodable edges. Giant single-purpose harness, not padding | 0 | high |
| crates/core/tests/xtensa_decode.rs | KEEP | 99 per-opcode decoder tests; each wide/narrow opcode is its own decoder arm (narrow l32i.n…ill.n each a separate form); similarity scan shows shape repeats but no identical-body families; no ignored/dead tests here | 0 | high |
| crates/core/tests/*_migration_parity.rs (33 files, 16,113 lines) | KEEP | each file embeds the deleted hand model (inline mod legacy or the shared oracle dir) and drives old + new through common::transcript; the 11 inline legacy copies compared pairwise: none > 0.5 similarity, so no duplicated oracles; same-named tests across files (the_wire_transcript_is_byte_identical_to_the_deleted_model in adxl345/ds3231/mpu6050/pcf8574) assert per-device goldens. This family is the surviving evidence for the deletions |
0 | high |
| crates/core/tests/firmware_survival.rs (table + special tests; see CONSOLIDATE row for the wrappers) | KEEP | 76-case table with per-fixture markers and two ratchet tests (session_cases_carry_no_pc_ranges L2862, session_tier1_class_gating_matches_the_marker L2886), plus real end-to-end tests: pixel-level KW41Z cow checks (L2148-2322), nRF54L15 P2.09 GPIO readback (L2077), bus-trace capture (L2415), tier-1 transcript scan negative controls (L2917-2941). Duplicate fixtures: tier1/esp32s3.elf twice is the esp32s3_tier1 vs esp32s3_zero_tier1 pair (different boot state) |
0 | high |
| crates/core/tests/{tick_interval_inventory,board_coverage_ratchet,register_coverage,strict_onboarding,model_paths_drift_gate,uart_parity_ratchet,undecoded_register_ratchet,svd_conformance}.rs | KEEP | policy ratchets: each measures the real fleet (walk-free families, per-chip coverage map, register sweeps) and fails on drift; tick_interval_inventory builds every family's shipped bus (L335-587); board_coverage_ratchet keeps declared-only chips un-expandable (L238-480). Generic by design — deleting one re-opens the hole it was written for |
0 | high |
| crates/core/tests/{logic_analyzer_lab_pad_visibility,logic_analyzer_f1_rp2040_pad_visibility,logic_wire_channels_cross_family}.rs | KEEP | pad-vs-wire visibility proofs per family with paired negative controls (diagnostic_*_alone_is_not_enough_without_brr/pad_mux/funcsel, e.g. L272-313 and L331-363 in the F1/RP2040 file) that catch the "probe shows nothing" class; distinct SUTs per lab |
0 | high |
| crates/core/tests/{esp32c3_walk_differential,esp32c3_oled_profile,esp32c3_ble_pong_perf_probe,e2e_nokia5110_invaders,rv1103_basket_loader}.rs | KEEP | all five are pass-1 rows (10 ignored walk gates / uart0 DELETE + 5 profiles / 7 probes / 5 slow invaders gates / 6 artifact gates); pass 2 verified no additional candidates: walk_differential's one active test esp32c3_irq_choke_reaggregates_on_write (L628-697) is a real gate, basket_loader's 2 non-ignored tests cover distinct surfaces (L21 register/input exposure, L256 caller-manifest tamper/extra-key rejection) |
0 | high |
| crates/core/tests/{world_multichip,world_uart_network,cosim_pin_routing,nrf52_bus_waveform,vcnl4010_bay_occupancy,tier2_device_pins,panel_artifact_evidence,part_pack_contract,sim_input,rs485_modbus,i2c_mux_tca9548a,motor_models,gpio_artifact_migration_parity}.rs | KEEP | scenario-level review: per-scenario asserts plus negative controls (e.g. world_uart_network negative_control_instant_delivery_fails_the_latency_golden L344, a_cut_link_loses_exactly_the_messages_on_it L528; i2c_mux's same-named tests are the four-sensors-behind-a-TCA9548A SUT, not copies of the src I2C suites); no repeated-shape clusters beyond per-SUT naming |
0 | med |
Totals: DELETE 0 files/0 lines in the main table · STRIP 3 rows / ~245 lines · CONSOLIDATE 3 rows / ~860 lines · KEEP 12 rows (plus the pass-1 core/tests rows, which carry 9 deleted tests / ~259 lines: firmware_survival capture helpers 5 tests / 78 lines, esp32c3_oled_profile uart0 1 test / 36 lines, xtensa F5 overflow trio 3 tests / 145 lines). If everything in both passes is approved, this pass adds no whole-file deletes; the line reduction lives in the two consolidation stacks (walk-differential scaffolding, config gates, survival wrappers) and the three xtensa strip rows.
Maybe (core/tests, not approved by default)
Low-confidence rows, kept as KEEP elsewhere per the classification rules; for owners who want a deeper cut.
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/tests/xtensa_exec.rs > test_exec_call4_sets_callinc, test_exec_call8_sets_callinc, test_exec_call12_sets_callinc | STRIP (low) | 1.0-similar bodies (L2279-2358) differing only in callinc/return-register; wrappers exec_call4/8/12 (call_window.rs:57-103) are three copies of one body differing only in 1/2/3, so one loop keeps all three wrapper paths |
~55 | low |
| crates/core/tests/xtensa_exec.rs > test_exec_rfe_round_trip_via_epc1 | STRIP (low) | its two asserts (PC==EPC1, EXCM==0) are strict subsets of test_exec_rfe_clears_excm_and_jumps (L5222-5244, which adds the INTLEVEL-pinned check); only the EPC1 value differs |
~20 | low |
| crates/core/tests/xtensa_exec.rs > test_exec_s32e_negative_offset | STRIP (low) | 0.91-similar to test_exec_s32e_in_excm_writes (L4464), same store-at-EA shape; its only delta is imm=-64 (the encoding boundary), which the enc_s32e helper already exercises elsewhere. Borderline — keep if the -64 encoding edge is considered load-bearing |
~23 | low |
| crates/core/tests/{avr_uno_machine_run,avr_nano_machine_run}.rs > machine_path_runs_{uno,nano}_ok | CONSOLIDATE (low) | 0.71-similar near-clone files (52+50 lines): same ChipDescriptor/SystemManifest read + build_node + UART-sink wait for the board marker, differing only in board yaml/fixture/marker; one file with two tests (or a table) removes the scaffold. Different boards, so not a coverage cut | ~40 | low |
| crates/core/tests/avr_nano_live_run.rs > live_run_arduino_nano_blinky_sketch | DELETE (low) | same raw Avr + MockBus seam and the same golden ELF (arduino-nano-blinky.elf) as avr_nano_golden_survival.rs, asserting the same observables (serial contains "nano-ok", PB5 toggles); golden_survival additionally pins resets==0 and the SP floor (L127-153). The live-run file's extra value is its printed evidence block, which is why this is a low-confidence delete rather than a main-table row | ~100 | low |
Totals (Maybe): 5 rows / ~238 lines if approved (1 whole-file DELETE ~100, 3 STRIPs ~98, 1 CONSOLIDATE ~40); not counted in any headline number. No overlaps with pass-1 Maybe rows (diag_*, e2e_esp32_epaper, runtime_snapshot) or pass-1 DELETE rows.
Pass-2 method notes:
- The audit's per-file
scoreforcore/testsfiles ≥8 keys almost entirely off ignored-test count; pass 1 rowed every one of those files (esp32c3_walk_differential.rs50.0,firmware_survival.rs44.9,esp32c3_ble_pong_perf_probe.rs40.0,e2e_nokia5110_invaders.rs35.0,rv1103_basket_loader.rs30.2,esp32c3_oled_profile.rs30.0,xtensa_exec.rs25.7,esp32s3_doom_frame_oracle.rs25.0,jit_lockstep.rs25.0, plus the 15.0/13.0/10.0/9.5/8.x tier). Pass 2 verified each file's non-ignored remainder and found no unrowed candidates in them, so they are covered by the KEEP row above or by their pass-1 rows. - The audit's
trivialcounter is unreliable incore/tests: the high-trivial files (rv1103_rk3x_i2c.rs18,cortex_m_event_sleep.rs17,rv1103_devices.rs12,rv1103_uart4_esp_at.rs8,cosim_external_process_bounds.rs7) turned out to be rejection-path asserts (assert!(...is_err())on unaligned MMIO, invalid configs, bad manifests) or API-presence checks (WFE sleep budgetis_some()/is_none()at cortex_m_event_sleep.rs L65-175, which is the only observable the API exposes). None of these are strip candidates; a stricter "trivial" definition than the audit's regex is needed before pass 3/4 use this column. - Cross-file duplicate scan (normalized shingles, Jaccard, all 380 files) surfaced exactly one file-level clone cluster that wasn't already a pass-1 row: the six
*_config.rsgates (rowed above). The next clusters are the walk-differential family (rowed), the legacy-oracle display copies (KEEP by design), and diag_* files (pass-1 Maybe). - Not reviewed (out of pass-2 scope):
crates/core/src/**(incl.bus/tests_main.rs,declarative_i2c.rs,cortex_m_tests.rs— pass 3) and all other crates (pass 4). Flagged for pass 3:src/bus/tests_main.rsis a flat 5,933-line file with 105 tests and no submodules; it needs a within-file body-similarity pass rather than a module-vs-module comparison.
crates/core/src unit tests (pass 3)
Scope: crates/core/src/** #[cfg(test)] unit tests only (686 files, 4,731 audit test attrs; other crates = pass 4, tests/xtensa_exec.rs = pass 2). Pass-1/pass-2 rows are referenced, never repeated; the two partial disagreements with pass-1 KEEP notes are the SPI-family pair supersession in the main table (c3 spi.rs / s3 gpspi.rs copies of int_clr_is_w1c and reset_defaults_seeded only) and the without_clock_stays_on_legacy_tick_path body-sharing proposal in the Maybe table.
Coverage accounting — read fully: peripherals/components/declarative_i2c.rs tests mod (L3329-4730), peripherals/i2c_tests.rs (973/973), the esp32c3/spi.rs and esp32s3/gpspi.rs tests mods, nrf52/spis.rs tests mod, the declarative_i2c fixture/FLOSS sections. Read in substantial part: bus/tests_main.rs (~1.5k of 5,933 lines across the esp32-wiring, H5-RWW, CAN/UDS, motor and pad-bracket sections), cpu/cortex_m_tests.rs (~700 of 3,597), decoder/arm.rs (all high-similarity regions), tests/integration.rs (profile + CPU sections), peripherals/adc.rs (all ADCAL/RES regions), nrf54l/twim.rs, nrf52/twim.rs, the src/tests/*i2c_waveform* family. Everything else was skimmed via test names, module docs and two scripted sweeps: (a) within-file normalized body similarity for every src file with ≥10 tests (112 files); (b) cross-file normalized-name-group bodies over all 686 files / 4,683 extracted tests (4,462 name groups — 40 groups beyond the pass-1 rows showed any pair ≥0.9).
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/src/peripherals/esp32c3/spi.rs + esp32s3/gpspi.rs > scheduler_arms_recurring_external_can_poll, config_registers_store_under_write_mask, reset_defaults_*, unmapped_offsets_read_zero_and_ignore_writes, cmd_update_bit_self_clears, dma_conf_afifo_rst_strobes_self_clear, slave_soft_reset_self_clears, w_buffer_round_trips, usr_start_auto_clears_and_latches_trans_done, miso_fills_0xff_for_no_device, int_clr_is_w1c, int_st_masks_with_ena_and_emits_source | CONSOLIDATE | Same IP block, two per-chip copies: 14 cross-file pairs ≥0.8, seven ≥0.97 — 0.99 scheduler_arms (c3:964-989 ↔ s3:917-942), 0.98 usr_start (c3:1086-1097 ↔ s3:1073-1087), 0.98 unmapped_offsets (c3:1032-1039 ↔ s3:985-994), 0.98 slave_soft_reset (c3:1063-1072 ↔ s3:1020-1029), 0.98 int_clr_is_w1c (c3:1145-1157 ↔ s3:1136-1149), 0.97 cmd_update (c3:1041-1050 ↔ s3:996-1007), 0.97 dma_conf (c3:1052-1061 ↔ s3:1009-1018); per-chip deltas are constants only (source 19 vs 21, reset tables, C3 0x44 hole, S3 INT_SET). This is the SPI-family instance of the pass-1 I2C CONSOLIDATE design: a macro/fixture taking (controller type, irq-source const, reset table, hole list) removes the copy. Reciprocal to pass 1: this row supersedes the pass-1 KEEP notes for the c3-spi <-> s3-gpspi copies of int_clr_is_w1c and reset_defaults_seeded only; the other files in those pass-1 groups (nrf52/nrf54l serial peripherals; s3 gpio/rmt/sar_adc/sdmmc/sens) stay KEEP |
~300 | med |
| crates/core/src/bus/tests_main.rs > test_from_config_attaches_bmp280_to_esp32c3_i2c0 (1559-1709) + test_from_config_attaches_mlx90640_to_esp32c3_i2c0_and_reads_eeprom (1718-1869) | CONSOLIDATE | 151-line bodies at 0.95 normalized similarity: byte-identical ChipDescriptor, manifest skeleton, GPIO-matrix Wire.begin writes (L1650-1657 ↔ L1811-1818), downcast and tick_elapsed drain loop; only the device config (0x76 vs 0x33), the transaction program (8-bit reg read vs 16-bit-addressed EEPROM word) and the final asserts differ. Extract esp32c3_i2c0_chip(), manifest_with_external_device(), gpio_matrix_wire_begin(), drive_c3_i2c(); coverage per device is unchanged |
~150 | med |
| crates/core/src/tests/esp32_i2c_waveform.rs + esp32s3_i2c_waveform.rs > scl_runs_at_the_rate_the_timing_registers_program; logic_capture_sees_a_decodable_* | CONSOLIDATE | scl-rate bodies are 1.00-identical (esp32:296-325 ↔ s3:224-259) and the decode tests 0.99 (esp32:188-219 ↔ s3:170-202); only per-chip machine()/configure() differ (sampled in full). A shared decode(edges) + assert_scl_rate(machine, expected_bit_time) helper (the rp2040/stm32 waveform files already carry the same shapes under different names) removes the copies without touching the per-chip setup |
~60 | med |
| crates/core/src/decoder/arm.rs > test_decode_rev_t1_16bit (1763-1770) vs test_decode_rev_t1 (1850-1855); test_decode_memory_ops (1650-1674) vs test_decode_ldr_str (2048-2072); test_decode_push_pop (1677-1699) vs test_decode_stack_control (2089-2113) | STRIP | Within-file assertion duplication on the same encodings: REV/REV16/REVSH 0xBA1B/0xBA6D/0xBAC8 asserted twice with only the operand registers varying; LDR imm 0x6848/0x601A and STR imm 0x601A/0x681A re-assert the same two arms with operands swapped (memory_ops ≡ ldr_str); PUSH {R0,LR} 0xB501 / POP {R1,PC} 0xBD02 asserted identically in both (stack_control adds BX 0x4770). Keep one of each (the later fns carry the extra variants) and delete the duplicate fn; the remaining 41 per-encoding tests stay — same idiom pass 2 KEEP'd in xtensa_decode.rs |
~60 | med |
| crates/core/src/tests/integration.rs > test_from_config_gpio_profile_stm32v2 (760-835), test_from_config_uart_profile_stm32v2 (838-910), test_from_config_rcc_profile_stm32v2 (1079-1151), test_from_config_rcc_profile_stm32f4 (1154-1226), test_from_config_profile_register_layout_alias_still_supported (1229-1294) | CONSOLIDATE | Five 67-77-line tests whose first ~60 lines are the same ChipDescriptor+SystemManifest scaffolding (only test-chip-<x>-v2/test-system-<x>-v2 names change; pairwise Jaccard 0.85-0.91) before the per-profile register pokes; add chip_with_peripheral(ty, profile, base) / manifest_for(chip_name) helpers (the module already has create_machine()); per-profile assertions stay per-test |
~250 | med |
| crates/core/src/bus/tests_main.rs (remaining 103 tests) | KEEP | Within-file scan of all 105 tests: only 6 pairs ≥0.85, and two ≥0.9 — the bmp/mlx row above and the RWW 2×2 matrix (rww_gate_on_other_bank_erase_proceeds 4084-4103 vs rww_gate_off_same_bank_erase_succeeds_silently 4176-4195, opposite gate cells). H5 quadword (3779-3864), UDS scripts (5044-5933), motor models (2624-3262) and pad brackets (5576-5692) assert per-scenario behavior. The flat 5,933-line layout is a maintainability note, not a trim: no submodule duplicates exist to strip |
0 | high |
| crates/core/src/cpu/cortex_m_tests.rs (113 tests) | KEEP | Per-instruction regression suite; the 4 pairs ≥0.85 (ldrsb pos/neg 2182-2208, strexb/strexh 220-301, WFI/PRIMASK 2561-2635, LDR T4 pre/post 1078-1109) each pin an opcode or a different PRIMASK/EXCM state; T16 coalescing tests (3269-3380) property-check the fast path against the interpreter across prefixes×budgets; reservation tests loop the none/address/write invalidation matrix. Table-ifying the three sign-extend cases is possible (see Maybe), nothing else is duplicate | 0 | high |
| crates/core/src/peripherals/components/declarative_i2c.rs (72 tests) | KEEP | Full read of the tests module: the 10 pairs ≥0.85 are distinct paths or rules, not copies — code_width-1 vs 16-bit dispatch (code_width_1_source_reflects_set_input 3786-3792 vs command_source_reflects_set_input 3722-3728), known write-only vs unknown opcode (3731-3744), distinct load-time rejections (a_timer_needs_a_named_register_map 4526-4535 vs a_sixteen_bit_register_address_needs_the_wider_pointer 4617-4626), distinct data_ready shapes (VCNL4010 3926-4047, split-register TOF 4208-4234, mode-field 4187-4205). The 8 audit-trivial lines are rejection-path asserts (is_err() on bad specs at 3416-3420/3687-3688/3822-3833, evaluation_fault negative controls) = real contract checks (see method notes) |
0 | high |
| crates/core/src/peripherals/i2c_tests.rs (24 tests) | KEEP | mod mux_stm32l4 (690-838) and mod mux_kinetis (840-972) carry five 1.00-identical test bodies on purpose: L683-689 states the L4 and Kinetis engines are separate state machines with their own address-resolution sites, so each needs the same promise driven through its own register interface. The L4 preload/IT/TXIS ordering tests (497-645) and the Kinetis trace wrap (648-681) are distinct engines. (Optional macro in Maybe.) |
0 | high |
| crates/core/src/peripherals/components/declarative_{display,spi,analog,regs,expr,led_strip_tests}.rs rejection/sabotage suites | KEEP | declarative_display's 57 pairs ≥0.85 are all *_is_refused tests (sampled 2618-2725, 3016-3087): each sabotages a different descriptor key and asserts a different error text (gates nothing, backlight, ram_write, artifact_meta is empty, dc_source…). declarative_spi/analog's audit-trivial hits are the same class (set_input rejection 1698-1699, evaluation_fault negative controls declarative_spi:1516-1531). Shared shape is the fixture scaffold; the rule under test differs every time |
0 | high |
| crates/core/src/peripherals/{esp32s3,esp32c3,esp32}/{gpio,ledc,timg,timer_group,rmt,sens,sdmmc,sar_adc}.rs per-chip register suites | KEEP | Cross-chip scan of the sibling families found no further twin suites after the SPI pair: gpio c3↔s3 0 pairs ≥0.8, ledc c3↔s3 0, timg↔timer_group 0, uart esp32↔esp_c3 0 (tx_fifo_fills_then_drains_to_sink 0.91 is one 13-line case), c3↔c6 rtc/lp_timer only 2 small pairs (Maybe). esp32s3/gpio.rs (40 tests, highest non-ignored score 16.5) has 1 internal pair (enable_w1ts/w1tc 1835-1848); its 9 dup names are shared conventions (reset_defaults_seeded, readonly_registers_ignore_writes) |
0 | high |
| crates/core/src/peripherals/{nrf52,nrf54l}/* + spi_tests.rs nRF sections > enable_mask, maxcnt_masks_to_8_bits, orc_masks_to_8_bits, tasks_read_as_zero, psel_round_trip, events_write_1_ignored, intenset_intenclr… | KEEP | nrf52 spis:400-514 vs twis:371-474 are 0.87-0.97 similar on 5-8-line mask/round-trip tests, each on its own register map (enable_mask 400-405↔371-376, maxcnt_masks_to_8_bits 466-473↔443-450); twim/uarte and the spi_tests.rs nrf52_spim section (1007-1179) repeat the convention per peripheral type. Same verdict class as pass-1's intclriswc KEEP; a macro is possible (Maybe) but per-SUT assertions stay |
0 | high |
| crates/core/src/tests/{machine_advance.rs (78), cortex_m_fault_escalation.rs (25), nrf52.rs (15), esp32.rs (11), logic_capture*.rs, yaml_owned_base_contract.rs, nrf52_nvmc.rs, u575_*.rs} | KEEP | machine_advance's scan shows 2 pairs ≥0.85 (resident idle-clamp 1965-1985 vs 2130-2150; arm/riscv/xtensa step adapters 1487-1505) and its 78 tests each pin a distinct advance/limit/idle/debug contract (L387-2214); the rest are contract/ratchet files of the class pass 1 KEEP'd wholesale with no duplicated bodies | 0 | high |
| crates/core/src/{sched/event_scheduler.rs, bus/bus_trace.rs, decoder/xtensa.rs, decoder/riscv.rs, cpu/riscv_tests.rs} | KEEP | Scheduler suite (602-967): dedup/promotion/demotion/reference-hash-set equivalence, no duplicate bodies. bus_trace 5 tests. xtensa.rs has 3 real #[test]s (the audit's 17 is a miscount — decoding salt/saltu/bt-bf at 2363-2411); riscv decoder tests live in cpu/riscv_tests.rs (2 pairs ≥0.85: spin-restore variants 1137-1174) and bus/bus_trace.rs. No trim candidates |
0 | high |
| crates/core/src/peripherals/{esp32/uart,esp32s3/lcd_cam,esp32s3/sar_adc,esp32s3/sdmmc,esp_uart,nrf54l/uarte}.rs > config_registers_round_trip / config_registers_roundtrip (pass-1 dup group) | KEEP | Re-measured all 15 pairs: max 0.79 (esp32/uart:991-998 ↔ esp_uart:1275-1283), everything else 0.09-0.32. Explicit agreement with pass-1's KEEP: naming coincidence, no consolidation design survives the per-device register maps | 0 | high |
(pass-1 reference, not re-rowed) esp32/i2c.rs + esp32s3/i2c.rs + esp32c3/i2c_tests.rs |
KEEP (reference) | Pass-3 scan adds evidence FOR the pass-1 CONSOLIDATE row rather than a new row: 11 more groups at 0.99-1.00 (end_opcode esp32:1252-1268↔s3:1141-1160; write_unmatched_addr 1290-1304↔1357-1371; srtx_fifo_cnt c3:585-597↔s3:1099-1113; ctr_roundtrip c3:562-567↔s3:1069-1074; slave_addr 569-574↔1076-1081; int_clr_clear 609-615↔1125-1131; trans_start 1282-1288↔1174-1180; int_st_masks 1244-1250↔1133-1139; rstart_then_stop 1270-1280↔1162-1172; cmd_register c3:576-583↔s3:1083-1090; fifo_reset 599-607↔1115-1123). The mux promise also exists in nrf54l/twim.rs (1105-1185, 0.64-0.83 — different engine, KEEP) and i2c_tests.rs (KEEP row above). No re-row; no contradiction | 0 | high |
Totals: DELETE 0 · STRIP 1 row (~60 lines) · CONSOLIDATE 4 rows (~760 lines) · KEEP 10 rows + 1 KEEP (reference) row (0 lines). All four CONSOLIDATE rows remove text duplication without dropping a SUT or an assertion family; the STRIP row merges duplicate decode assertions.
Maybe (core/src, not approved by default)
Low-confidence rows; listed as KEEP in the main table per the classification rules, flagged here for owners who want a deeper cut.
| file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/core/src/peripherals/{dma.rs:824-832, dwt.rs:333-341, esp32c3/ledc.rs:816-825, esp32c3/rtc_timer.rs:411-419, esp32c6/lp_timer.rs:306-310, nrf52/rtc.rs:744-748, nrf54l/grtc_tests.rs:536-544, systick.rs:661-669, timer.rs:1620-1629} > without_clock_stays_on_legacy_tick_path ×9 (pass-1 dup group) | CONSOLIDATE (low) | Pass-1 KEEP'd this group as per-SUT; that still holds — the proposal is only to share the 2-assert body via a macro_rules! legacy_tick_without_clock!(Type) invoked in each mod tests, keeping all nine named tests and their one-line constructions (bodies measured 0.75-0.94; the top pairs dma↔timer, dwt↔systick, c3_rtc_timer↔nrf52_rtc and c3_rtc_timer↔c6_lp_timer are 0.91-0.94 identical but for the type). Partial disagreement with the pass-1 note "consolidation would couple unrelated modules": a macro invocation shares the body, not the modules |
~60 | low |
| crates/core/src/peripherals/nrf52/{spis.rs:400-514, twis.rs:371-474, twim.rs:1178-1239, uarte.rs} + crates/core/src/peripherals/spi_tests.rs:1007-1179 > mask/round-trip micro-suite | CONSOLIDATE (low) | ~35 5-8-line register-convention tests duplicated at 0.87-0.97 across the sibling serial peripherals; a serial_regmap_suite! macro over (type, offset consts, mask specs) would slice ~150 lines. Risk: the offsets differ per peripheral, so the macro parameters grow; owner may prefer the current per-file readability |
~150 | low |
| crates/core/src/peripherals/i2c_tests.rs > mux_stm32l4 (759-837) + mux_kinetis (904-972) five tests | CONSOLIDATE (low) | The five bodies are 1.00 identical and each module already has the seams (bus(), write_one, read_one, probe_acked); a macro over those hooks would generate the 5 tests per engine. Deliberately low: L683-689 documents the duplication as the point (two state machines, neither ever driven through the switch before) — veto-friendly |
~110 | low |
| crates/core/src/peripherals/nrf52/ccm.rs > tamper_ciphertext_mic_fails (692-699), tamper_mic_fails (702-708), tamper_header_mic_fails (711-717) | STRIP (low) | Three 8-line cases of one invariant (tamper class → MIC failure) differing only in the tampered field; a table over (name, mutation) keeps all three cases in one fn | ~12 | low |
| crates/core/src/peripherals/gpdma.rs > test_handling_byte_to_half_zero_pad (983), …_sign_extend (989), half_to_byte_left_trunc (995), right_trunc (1001), src_byte_exchange (1007), dest_byte_exchange (1013), dest_halfword_exchange (1019) | CONSOLIDATE (low) | Seven 5-line assert_eq!(convert(...), expected) cases over the transfer-width matrix; one table-driven test over (src_w, dest_w, mode, expected) collapses ~20 lines of boilerplate, no case lost |
~20 | low |
| crates/core/src/peripherals/components/bg770a/at/mod.rs > parse_at_{test,read,write,exec,bare_at,empty_write_args} (246-285) + crates/core/src/peripherals/components/bg770a.rs command responses (1332-1416) | CONSOLIDATE (low) | Six 5-6 line parser-form tests at 0.87-0.96 (input suffix + expected form vary) plus ~10 one-line command-response tests at 0.86-0.94; a (input, expected) table per form/section is the natural rewrite. The forms are distinct grammar branches, so this is text-only |
~60 | low |
| crates/core/src/peripherals/esp32s3/gdma_tests.rs > in_peri_sel_{round_trip,mask_enforced,reset_value} (462-491) vs out_peri_sel_* (494-523), coupled_in/out (541-579), unbound_in/out (655-682) | CONSOLIDATE (low) | Mirrored IN/OUT register banks tested by 0.92-0.97-identical bodies (only the bank offset const changes); a helper/table over (bank, offset) keeps both banks covered with half the text. Careful: the banks are separate state — keep both loops | ~30 | low |
| crates/core/src/cpu/cortex_m_tests.rs > test_exec_ldrsb_reg_offset_positive (2182-2194), ..._negative (2196-2208), test_exec_ldrh_reg_offset (2210-2222), test_exec_ldrsh_reg_offset_negative (2263-2276) | STRIP (low) | Four 13-line cases asserting sign/zero extension for two encodings (0x5688/0x5A88/0x5E88) on one decoder arm each; a table over (encoding, data, expected) keeps the boundary values | ~35 | low |
| crates/core/src/bus/tests_main.rs > uds_tester_did_write_sf_completes (5233-5240), uds_tester_routine_reply_with_output_byte (5245-5250), uds_tester_io_control_reply_completes (5254-5259) | CONSOLIDATE (low) | Three 7-9 line tests of the same SF-request/prefix-match promise differing only in service payload (0x2E/0x31/0x2F) and assertion state == Done; they post-date the shared helpers (bus_with_script/inject_ecu_reply) so a table keeps the per-service replies |
~15 | low |
| crates/core/src/peripherals/esp32c3/rtc_timer.rs + esp32c6/lp_timer.rs > without_clock_stays_on_legacy_tick_path (411-419 ↔ 306-310), readout_frozen_until_next_update (384-396 ↔ 259-271) | CONSOLIDATE (low) | Two 0.94/0.89 pairs between the C3 RTC-timer and C6 LP-timer twins; both files are small (10/8 tests) and the SUTs are the same IP generation — one shared macro or a per-chip table would remove ~25 lines; low because the whole files are only 553/345 lines | ~25 | low |
Totals (Maybe): 10 low-confidence rows / ~520 lines if approved; not counted in any headline number. No overlaps with pass-1 Maybe rows (diag_*, e2e_esp32_epaper, runtime_snapshot) or pass-2 Maybe rows (xtensa strips, AVR pair).
Pass-3 method notes:
- Static, read-only review of the worktree at 249da54a6; no cargo commands (baseline
cargo testholds the lock); no non-test code was touched, and this pass only appends. - The audit's
trivialcolumn is unusable in core/src (item C confirmed): every sampled hit is a rejection-path assert or a negative control —declarative_i2c.rs:3416-3688(is_err()on bad specs),declarative_spi.rs:1504-1531,declarative_analog.rs:727-961,bus/tests_main.rs:510-3857(observe_ecu_frame(...).is_none(),flash_error_flags_idx.is_some()). None is a strip signal. - Pass-1 dup cross-check (item D):
configregistersroundtrip×6 — measured max 0.79, agree KEEP, no consolidation design exists.withoutclockstaysonlegacytickpath×9 — measured 0.75-0.94, agree the nine SUTs are distinct; the only concrete proposal is the body-sharing macro in Maybe, which does not contradict the pass-1 note.clock_attach_flips_to_scheduler…×6 (pass-1 KEEP) was re-measured together withattaching_a_clock_leaves_the_walk(nrf54l trio + sam sercom, 0.85-0.91) — same per-SUT verdict, no row. - The audit's per-file scores in core/src are driven by
ignored(pass-1 rows) and file size; the highest-score non-pass-1 file,esp32s3/gpspi.rs(20.2), is the SPI twin rowed above, andesp32c3/spi.rs(18.7) is its other half. Nothing else in the ≥15 score band stayed unexamined. - Test-name-based duplication is exhaustive over every line-parseable test in src (4,683 of the audit's 4,731 attrs; the ~48 difference is attrs the line parser cannot see, e.g. nested/oddly formatted — none in a candidate file); shape-only similarity (Jaccard on normalized bodies below 0.85, or below 0.9 cross-file) was not rowed by design — the owner's bar is "duplicate or trivial", not "verbose".
Other crates (pass 4)
Scope: every workspace crate except crates/core, and excluding the pass-1-reviewed hw-oracle / hw-oracle-macros (referenced, never re-rowed): cli, config, wasm, loader, dap, arm-system, svd-ingestor, validation-report, nrf-softdevice-hle, gdbstub, ir, hw-trace, labwired-fuzz, codegen, egress-relay, the 73 firmware-* crates, and the shared firmware lib. examples/** crates are workspace members (25 of them, Cargo.toml:103-127); the only test-bearing example, examples/esp32s3-doomlike-lab, is in the exclude list (Cargo.toml:135-148, +esp toolchain), so its 4 test files / 12 audit attrs never build under the workspace and are outside this audit's scope; flagged in the method notes. Pass-1/2/3 rows are referenced, not repeated.
Coverage accounting: 184 in-scope files carry tests (the audit's 218 non-core test-bearing files minus 28 hw-oracle, 2 hw-oracle-macros, 4 examples): cli 97, config 26, wasm 17, loader 10, dap 7, arm-system 3, small crates 24. I read the test bodies end to end in ~65 files, in substantial part (most bodies, remainder by name) in ~25 more; the remaining ~94 were covered by full test-name enumeration (1,033 extracted names) plus two scripted sweeps over all in-scope files: (a) normalized-body similarity within every file at 0.85; (b) cross-file normalized-body similarity inside each crate at 0.90. No row below rests on a file whose test names and bodies were not at least machine-compared.
| crate/file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/dap/src/adapter.rs > test_resolve_board_io_bindings_uses_default_gpio_offsets, ..._uses_stm32v2_gpio_offsets, ..._uses_sam_port_gpio_offsets, ..._register_layout_alias_still_supported | CONSOLIDATE | four 70-86 line tests (L1783-2099) at 0.86-0.98 normalized similarity: byte-identical ChipDescriptor + SystemManifest scaffolding, differing only in the gpio config key (profile vs register_layout), peripheral id/base/pins and the expected offset (GPIO_F1_ODR_OFFSET; V2 ODR/IDR; SAM OUT 0x10 / IN 0x20; alias repeats V2). One table over (config key/value, base, pins, expected offsets) keeps all four profiles and drops ~200 lines of scaffold |
~200 | high |
| crates/dap/tests/evaluation.rs > test_adapter_resolve_and_evaluate, test_adapter_locals_evaluation | DELETE | both copy the server's evaluation logic into the test instead of calling it: the register loop is re-implemented at L28-47 and the frame-relative read at L66-93, so the assertions test the test's own copy. The production path is covered by server.rs::test_handle_evaluate_fallback (L1963-2003), which asserts both R0 and my_var through handle_request |
98 | high |
| crates/dap/src/adapter.rs > test_adapter_breakpoints | DELETE | no assertions beyond .expect on the call itself (let _ = adapter.set_breakpoints(...).expect(...), L2119-2122) and no check of verified/resolved_line; it also returns early when the build-artifact fixture is absent (L2105-2111), the vacuous-pass pattern the file's own comment at L2366-2372 warns about. Breakpoint resolution is asserted for real in tests/source_step.rs (set_line_breakpoint, L66-75) |
22 | high |
| crates/gdbstub/src/lib.rs > test_target_memory_access | DELETE | writes 4 bytes and discards the result: let _ = target.write_addrs(0x2000_0000, &data) (L483-492); no readback, no assertion, no panic path (the other two tests in the module do assert register round-trips) |
10 | high |
| crates/wasm/src/playground_repro.rs > matrix | DELETE | print-only 2x2 diagnostic (L141-152): calls run_playground_path for four (idle_ff, auto_tick) combinations and println!s boot3/key; asserts nothing. The two real gates below it (playground_path_reaches_boot_three L155, browser_tick_interval_reaches_boot_three L178) do the assertions |
12 | high |
| crates/cli/src/tier1.rs > manifest_verification_happy_path | DELETE | strict subset of run_all_style_manifest_listing_is_enforced (L1647-1664): both build the same MANIFEST.json + blob, call verify_fixture_manifest and assert verified.contains("esp32s3.elf") (L1617-1632); the listing test adds the !verified.contains("esp32s3-flash.bin") assert (0.90 similarity) |
16 | med |
| crates/cli/tests/run_exit_code.rs (10 tests) | KEEP | ARM and RISC-V halves are deliberate mirrors, stated in the module doc L18-21 ("The RISC-V half of this file repeats the same cases ... the two carried their own copies of the decision and had already drifted apart"); the RISC-V half (L152-247) additionally separates the batched default loop from the LABWIRED_DHCP_TRACE single-step loop (L174-206), which each had its own Err arm. 0.87-0.95 pairs are per-arch parity, not duplicated SUTs |
0 | high |
| crates/cli/tests/{e2e_itm,e2e_semihost,e2e_segger_rtt,e2e_segger_rtt_arch}.rs | KEEP | parallel 4-5 test matrices over four different sinks, not copies: ITM's RISC-V case asserts the stream is not observable (L234-267), semihosting's non-Cortex-M case exits nonzero (L242-288), RTT's arch file splits riscv/xtensa/stripped symbol resolution (L400-526), and RTT stops early without the UART cache (L222-267). Shared runner plumbing, distinct transport per file | 0 | high |
| crates/cli/src/lib.rs (36 tests in a 3,370-line file) | KEEP | giant multi-purpose file, but the tests are distinct contract groups: shutdown-latency occurrence/batch policy (L2506-2698), display/JIT batching (L2704-2776), UDS evaluation (L2778-2816), snapshot/serde tags (L2818-2848), resource budgets (L3097-3216), golden result.json/junit (L2988-3057, separate mod), time-mode values (L3318-3369). Only 0.92 pairs are the three time-mode spellings, each a different clap value; no duplicated bodies | 0 | high |
| crates/cli/src/tier1.rs (remaining 45 tests) | KEEP | distinct parser/resolver/ratchet/ack baselines: missing-done degradation (L965-975), implicit-UART rule vs explicit FAIL (L996-1010), NA precedence (L1141-1150), snapshot-regeneration vs baseline (L1270-1286), one test per ack rejection mode (L1339-1417), shallow-clone refusal (L1450-1475), target/manifest cross-registry checks (L1569-1664). Only the happy-path row above is redundant | 0 | high |
| crates/cli/tests/environment_runner.rs (27 tests) | KEEP | world runner matrix: artifact set (L447-543), durable assertion stop (L545-591), final-round cycle/UART limits (L593-630, L1246-1328), metering (L632-689), provenance on parser failures (L691-794), hash order-independence (L871-921), fast-boot vs rom-boot ceilings (L1493-1571), UART assertions from every node plus negative control (L1580-1642), cosim refusal (L1651-1728). The ≥0.9 pairs are the malformed-script provenance trio (see Maybe), not duplicates | 0 | high |
| crates/cli/tests/{no_elf_c3_rom_boot,no_elf_s3_rom_boot,no_elf_c3_cdc_console,no_elf_c3_merged_console}.rs | KEEP | each pins a different ELF-less claim: C3 app-level OLED marker at 32M steps (L56/79), S3 2nd-stage-banner at 5M and deliberately not repeated at app level (L54/96), C3 CDC-vs-UART0 tap selection (L63, L171), C3 merged console banner exactly once (L39). Different images, assertions and failure modes | 0 | high |
| crates/config/src/lib_tests.rs (44) + crates/config/tests/config_tests.rs (31) | KEEP | schema contract coverage: fault-schema 1.1 gates, duplicate ids and trigger refusal (lib_tests L178-307), env-vs-single-node/legacy selection and null-node round-trips (L385-449, L860-976), motor parse/round-trip/field-qualified validation (config_tests L342-780), include merge/missing/cycle (L826-940), cosim/analog manifest validation (L174-320). ≥0.9 pairs are bad-schema tests with different diagnostics (see Maybe for the env-cluster consolidation) | 0 | high |
| crates/config/src/{expr,rules,logic,uart,uart_binary}.rs | KEEP | expression evaluator (12: operators, precedence, short-circuit, div-zero, wrapping, token-offset errors), rule compiler (10: event/action round-trips, slot-qualified errors, indexed pins), logic truth tables + spec validation (22), UART text templates/NMEA (20), binary frames/CRCs (11 catalogue check values + pattern/template errors). Short shared shapes are rejection tests with different rules, the same per-SUT pattern pass 3 KEEP'd | 0 | high |
| crates/config/tests/{chip_analog_pins,chip_pins_ratchet,chip_io_levels,chip_cortex_m_systick}.rs + src/uart_network.rs | KEEP | fleet/data ratchets over configs/chips: analog pin maps vs declared ADC/port/channel (chip_analog_pins L41-162), parse-fallback list only shrinks (chip_pins_ratchet L139-230), io_voltage/threshold pairing + datasheet transcriptions (chip_io_levels L27-125), SysTick on every Cortex-M descriptor (chip_cortex_m_systick L19-60), gpio_net one-action/zero-delay/unknown-key rejection (uart_network L139-185). Each scans a different corpus and fails on drift |
0 | high |
crates/config/tests/ordered_interrupt_metadata.rs (pass-1 publicorderedtypecontract group) |
KEEP | re-measured against crates/core/tests/ordered_debug_metadata.rs: only the name matches. This file pins PeripheralDescriptor.interrupts: Option<BTreeMap> across 16 input permutations plus IR duplicate semantics (L13-129); a different struct and surface. Explicit agreement with pass 1's coincidence note |
0 | high |
| crates/wasm/src/lib.rs (21 non-ignored tests; pass-1 rows cover the 11 ignores) | KEEP | boundary fixtures are distinct SUTs: the three 4-line batch wrappers call the shared assert_batch_matches_32_singles with arm/riscv/xtensa simulators (L2555-2587), configured-arm adds real peripherals (L2560-2577); flash-capacity trio pins 16MiB part, oversized image and 4MiB floor (L2386-2411); USB-console cases drive S3-flash, S3-fast-boot, C3-program-image and undeclared-manifest constructors through one helper (L4002-4071). No duplicated fixture found |
0 | high |
| crates/wasm/src/source_debug.rs (20 tests) | KEEP | per-arch/per-fixture source-debug coverage, no giant test: ARM C smart-ring (L802-975), ARM Rust nokia incl. rust_frame_variables_and_call_stack (L1050-1106, a 56-line test — the 490-line span a naive brace scan reports is a raw-string artifact), RISC-V (L1108-1175), ESP32 classic dual-core (L1255-1331, locals/frames L1503-1531), ESP32-S3/C3 flash boot (L1397-1440), AVR (L1451-1501). Shared breakpoint_step_flow helper, distinct SUTs |
0 | high |
| crates/wasm/src/{inputs,cosim_tests,world,lab_tools,source_debug}.rs (remaining) | KEEP | per-SUT/per-binding: NTC vs potentiometer exercise the same SimInput channel through different device ids/asserted ids (L1024-1101, 0.95 shape only); cosim constructor errors are distinct refusals (external_process L193, netlist file L220, unroutable pad L250, ADC-route matrix L276-302); world node tests are one constructor each (S3 elf/flash, classic Arduino, C3 esp-hal/own-ROM L1371-1477); source_debug adds AVR/ESP32/RISC-V stepping; lab_tools is the wasm binding of the journal invariant (next row) | 0 | high |
| crates/wasm/src/lab_tools.rs + crates/dap/tests/snapshot_reverse.rs (pass-1 same-name groups) | KEEP | same test names (restore_then_run_matches_a_straight_run, a_later_snapshot_restores_after_rolling_back_to_an_earlier_one) over two public bindings: wasm step_batch/digest_s/feed_uart_input + tools journal (lab_tools L713-812) vs dap adapter step/continue_execution_chunk/poll_uart (snapshot_reverse L50-177); normalized bodies 0.10-0.25. Same invariant, but neither copy can catch the other binding's bug |
0 | high |
| crates/loader/src/{branch_sites,coverage,lcov,source_map,multi_image}.rs + tests | KEEP | expected-heavy tests are transcriptions with provenance, not duplicates: branch counts pinned to llvm-objdump (16/472/14/6469 sites, branch_sites_fixtures L35-132), smart-ring coverage through its own DWARF (coverage_run L62-180), lcov emit/parse/merge round-trips (lcov L532-670), source-map expecteds from objdump (source_map L566-649), parse-offset accept/reject quartets (multi_image L264-285). No within-file pair ≥0.9 except two 4-line offset rejections |
0 | high |
| crates/dap/tests/source_step.rs + crates/dap/src/server.rs > test_stack_trace_and_typed_variables | KEEP | the ~76-line server test (L1824-1900) pins the DAP request/response path (stackTrace/scopes/variables handles and child references) on the same nokia fixture the adapter-level source_step tests use (L268-302, L376-453); the overlapping frame/game assertions are input to different output contracts, and source_step additionally covers inlined-call stepping, AVR, ESP32 and cross-thread stepping. Not a copy to delete | 0 | high |
| crates/arm-system/tests/architecture.rs (37) + src/native.rs (4) | KEEP | native JIT suite: exact-width MMIO (L94-119), MMU/abort/IRQ (L121-177), poison-until-reset (L179-194), code modification/bus swap/cache identity (L196-278), CP15/VFP/NEON (L280-1050), plus child-process probes for abort/livelock/cache growth (L410-850). Each test pins a different native contract; required-features = ["native"] in Cargo.toml prevents an empty green target |
0 | high |
| crates/{svd-ingestor,validation-report,nrf-softdevice-hle,gdbstub,ir,hw-trace,labwired-fuzz,codegen,egress-relay} (remaining tests) | KEEP | small suites are distinct: SVD conversion/round-trip + CLI e2e + fixtures (svd-ingestor lib L477-661, parsing_test, e2e), authority merging tier1/hw-oracle/SVD/vendor (validation-report 11), AES/C1/S1/keyset-pointer/GATT-handle semantics (nrf-softdevice-hle 7), ARM/RISC-V register round-trips (gdbstub 2 after the row above) plus an RSP e2e, flatten/inheritance (ir 3), evidence contract (hw-trace 2), planted-overflow gate (labwired-fuzz, pass-1 row), keyword vs reserved-name escaping (codegen: 0.99 shape, different mechanism), transport/allowlist/conn tests (egress-relay; its build.rs row is pass 1). No duplicate bodies ≥0.9 except codegen's shape pair and svd-ingestor's two bit-range cases (different widths) |
0 | high |
| crates/firmware-nrf52840-obd2-scanner/src/lib.rs (31 tests) | KEEP | the only firmware crate with tests, and a real protocol suite: OBD2 decoders incl. negative/short/length errors (L391-470), SAE DTC mapping (L445-470), ISO-TP VIN reassembly + flow control + sequence/oversize negatives (L472-650), BLE payload layout/status bits (L274-314), display formatting (L203-341), state/failure persistence (L48-260). No duplicated suite inside | 0 | high |
crates/firmware-* (73 audit crates) + crates/firmware |
KEEP | zero tests in every firmware crate except firmware-nrf52840-obd2-scanner (whole-tree #[test] grep: one file). They are cross-compiled firmware artifacts exercised by the simulator's own e2e/tier1 tests, not test sources; one summary row instead of per-crate rows |
0 | high |
Totals: DELETE 5 rows / 6 tests (~158 lines) · STRIP 0 · CONSOLIDATE 1 row (~200 lines) · KEEP 20 rows (0 lines) · FIX 0.
Firmware-crates sweep: the 73 firmware-* crates plus the shared firmware lib in the audit (78 firmware-* directories on disk; five are non-package SDK project dirs without a Cargo.toml) contain exactly one test-bearing source file, firmware-nrf52840-obd2-scanner/src/lib.rs (31 tests). All others have no #[test]/#[cfg(test)] at all, so there are no per-crate build/emit smoke suites to keep or duplicate; their coverage lives in the core/cli e2e and tier1 tests that boot the artifacts. The obd2 scanner is the exception that proves the pattern: its 31 tests are host-run protocol/decoder/state tests (#![cfg_attr(not(test), no_std)]), not build smoke, and contain no duplicated suite.
Maybe (other crates, not approved by default)
Low-confidence rows; listed as KEEP elsewhere where the file also has real coverage. Not counted in the main totals.
| crate/file > test(s) | verdict | reason | est. lines | conf |
|---|---|---|---|---|
| crates/cli/tests/runner.rs > test_cli_help, test_cli_version_flag, test_cli_invalid_flag | STRIP (low) | three clap-surface smokes, 11-12 lines each: --help asserts only stdout.contains("LabWired Simulator") (L23-33), --version asserts starts_with("labwired") (L169-180), unknown flag asserts clap's own error text (L182-192). One argv-surface test over [help, version, bad flag] keeps the contracts and cuts ~20 lines; low because these are the only checks of those three flags |
~20 | low |
| crates/cli/tests/environment_runner.rs > malformed_environment_script_with_recognizable_env_keeps_environment_artifacts, malformed_inline_environment_script_keeps_environment_artifacts, malformed_script_without_a_direct_inputs_env_keeps_legacy_artifacts | CONSOLIDATE (low) | three ~34-42 line bodies (L1035-1148, top pair 0.94 similar) asserting the same provenance contract on three YAML shapes: block inputs.env, inline { env: ... }, and a scalar that merely mentions inputs.env. A table over (yaml, run_type, snapshot type) saves ~60 lines; the shapes are deliberately distinct encodings, so no coverage cut |
~60 | low |
| crates/config/src/lib_tests.rs > env-script unsupported-field/round-trip cluster (seven tests, L526-678, L694-818, L1168-1229) | CONSOLIDATE (low) | seven tests, ~335 lines, all assert the same "env-script field X is unsupported / must not be null" contract through three entry points (load-from-file, direct serde, public mutation), and the tables already overlap field sets. One table over (entry point, field, representation, expected substring) keeps every case and all three seams | ~120 | low |
| crates/config/src/lib_uart_injection_tests.rs > rtt/itm/semihosting contains trio (L207-281) | CONSOLIDATE (low) | nine 8-11 line tests at 0.93-0.99 similarity: per variant parse/typo/empty rejection for RTT, ITM and semihosting. A macro or table over (field, variant) keeps all three assertion types and the deny-unknown-fields checks with ~35 fewer lines | ~35 | low |
| crates/dap/tests/step_operations.rs (5 tests) | DELETE (low) | all five exercise Machine/CortexM directly, never LabwiredAdapter (module comment: "core stepping behavior that step-out and step-back rely on"): MOVS PC advance L26-43, MOVS x3 L45-75, LSLS/STRB L77-113, PUSH/POP SP L115-159, PUSH {LR}/POP {PC} L161-205. Core's CPU/integration suites cover the ISA and stack paths; DAP step-back is separately covered in adapter.rs L2181-2336 and snapshot_reverse.rs. Low because the two stack tests are the most specific PUSH/POP-to-SP checks |
205 | low |
| crates/wasm/src/playground_repro.rs > browser_tick_interval_reaches_boot_three | FIX (low) | the doc comment says "KNOWN BUG, ignored so it documents rather than blocks" (L161-177) but there is no #[ignore] (L178-179). Either the bug was fixed (comment stale) or the test is red, or recommended_tick_interval() stays 1 and the auto-tick branch is a no-op; the comment and attribute need reconciling. Not a trim |
0 | low |
Totals (Maybe): DELETE 1 row / 5 tests (~205 lines) · STRIP 1 row (~20) · CONSOLIDATE 3 rows (~215) · FIX 1 row (0); not counted in the main totals.
Pass-4 method notes:
- Static, read-only review of the worktree at 249da54a6; no cargo commands; no non-test code touched, and this pass only appends.
- Pass-1 rows referenced, not repeated: all cli/wasm ignored tests,
cli/src/commands/basket_native.rs(artifact-gated),egress-relay/src/build.rsandsvd-ingestor/tests/fuzz_test.rs(single-trivial KEEPs), and the hw-oracle/hw-oracle-macros rows. No verdict changes; the wasm ignores are slow ROM/measurement gates, not a dead-feature cluster, so no summary row was needed. - User's
configregistersroundtripquestion: that group does not exist incrates/config(rgover the crate returns zero hits). The six-way group lives entirely undercrates/core/src/peripherals(esp32/uart, esp32s3/lcd_cam, esp32s3/sar_adc, esp32s3/sdmmc, esp_uart, nrf54l/uarte); pass 3 re-measured it at max 0.79 and KEEP'd it, and this pass agrees. - Pass-1 duplicate-name groups touched by this scope, all re-measured and KEEP:
publicorderedtypecontract(config vs core, different structs),fipsappendixb(nrf-softdevice-hle software AES vs core nrf52 ECB peripheral; one FIPS vector, two independent implementations),deterministicandrestoreequivalent(loader coverage vs core fault lockstep),restorethenrunmatchesastraightrunandalatersnapshotrestoresafterrollingbacktoanearlierone(dap adapter vs wasm tools; bodies 0.10-0.25). No consolidation design survives any of them. - The audit's
trivialcolumn was again unusable in this scope: sampled hits are rejection-path asserts and contract checks (config/src/uart_network.rsevent/unknown-keyis_err(),cli/tests/environment_runner.rsJSONis_some(),arm-system/tests/architecture.rsis_err()poisoning,cli/src/commands/basket_evidence.rssix mutation negative controls). Only the two zero-assert tests rowed above were genuinely trivial. - Cross-file clone scan (0.90, within each crate): 160 cli/config/wasm/loader/dap/arm-system files + 24 small-crate files produced no file-level clone cluster left unrowed; the only hits were the dap board_io quartet (rowed CONSOLIDATE), the malformed-env trio (Maybe), the config RTT/ITM/semihosting matrix (Maybe), the config
lib_stimuli_testsvslib_uart_injection_testsschema/empty-field pair (two different features, KEEP), and the cli runner/stop-conditions shape pairs (same spawn-and-assert scaffold, different stop conditions, KEEP). - Out of scope / un-reviewed audit signals remaining:
examples/esp32s3-doomlike-lab(the only test-bearing example; excluded from the workspace at Cargo.toml:135-148 for the +esp toolchain — 4 files / 12 tests: display/game/render/input unit tests), and the pass-1hw-oraclehardware rows (deliberately skipped per instructions). Withincrates/, every audit test-bearing file outsidecoreis accounted for above.