[INFO] fetching crate record-player 0.2.0...
[INFO] testing record-player-0.2.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate record-player 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate record-player 0.2.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate record-player 0.2.0
[INFO] tweaked toml for crates.io crate record-player 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate record-player 0.2.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate record-player 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c
[INFO] running `Command { std: "docker" "start" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.126
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling wasm-bindgen v0.2.126
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.126
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.126
[INFO] [stderr]    Compiling js-sys v0.3.103
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling record-player v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `three_needle_amount` is never used
[INFO] [stdout]   --> src/vinyl_vfx.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) fn three_needle_amount(spacing: f64) -> f64 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.22s
[INFO] running `Command { std: "docker" "inspect" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling assert_no_alloc v1.1.2
[INFO] [stdout] warning: function `three_needle_amount` is never used
[INFO] [stdout]   --> src/vinyl_vfx.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) fn three_needle_amount(spacing: f64) -> f64 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling record-player v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> examples/scratch_warmth.rs:226:41
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let peak = chunk.iter().map(|x| (x.abs() as f64)).fold(0.0_f64, f64::max);
[INFO] [stdout]     |                                         ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 226 -         let peak = chunk.iter().map(|x| (x.abs() as f64)).fold(0.0_f64, f64::max);
[INFO] [stdout] 226 +         let peak = chunk.iter().map(|x| x.abs() as f64).fold(0.0_f64, f64::max);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sin_o`
[INFO] [stdout]   --> examples/scratch_warmth.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let (sin_o, cos_o) = omega.sin_cos();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_o`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s0` is never read
[INFO] [stdout]   --> examples/scratch_warmth.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let (mut s0, mut s1, mut s2) = (0.0_f64, 0.0_f64, 0.0_f64);
[INFO] [stdout]    |          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 86 |     for &x in samples {
[INFO] [stdout] 87 |         s0 = x as f64 + coeff * s1 - s2;
[INFO] [stdout]    |         ------------------------------- `s0` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `elapsed` is never read
[INFO] [stdout]    --> examples/scratch_warmth.rs:457:27
[INFO] [stdout]     |
[INFO] [stdout] 457 |         let mut elapsed = 0.0;
[INFO] [stdout]     |                           ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 464 |             elapsed = (step + 1) as f64 * block as f64 / SR * 1000.0;
[INFO] [stdout]     |             -------------------------------------------------------- `elapsed` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/scratch_warmth.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |     let mut render = |dsp: &mut ScratchAcousticDsp, out: &mut Vec<f32>, blocks: usize,
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fill_window` is never used
[INFO] [stdout]   --> examples/scratch_warmth.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn fill_window(dsp: &mut ScratchAcousticDsp, length: usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> examples/scratch_warmth.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     dsp.set_native_rpm(rpm);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let _ = dsp.set_native_rpm(rpm);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.07s
[INFO] running `Command { std: "docker" "inspect" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `three_needle_amount` is never used
[INFO] [stderr]   --> src/vinyl_vfx.rs:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub(crate) fn three_needle_amount(spacing: f64) -> f64 {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `record-player` (lib) generated 1 warning
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> examples/scratch_warmth.rs:226:41
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let peak = chunk.iter().map(|x| (x.abs() as f64)).fold(0.0_f64, f64::max);
[INFO] [stderr]     |                                         ^              ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 226 -         let peak = chunk.iter().map(|x| (x.abs() as f64)).fold(0.0_f64, f64::max);
[INFO] [stderr] 226 +         let peak = chunk.iter().map(|x| x.abs() as f64).fold(0.0_f64, f64::max);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sin_o`
[INFO] [stderr]   --> examples/scratch_warmth.rs:83:10
[INFO] [stderr]    |
[INFO] [stderr] 83 |     let (sin_o, cos_o) = omega.sin_cos();
[INFO] [stderr]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_o`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `s0` is never read
[INFO] [stderr]   --> examples/scratch_warmth.rs:85:10
[INFO] [stderr]    |
[INFO] [stderr] 85 |     let (mut s0, mut s1, mut s2) = (0.0_f64, 0.0_f64, 0.0_f64);
[INFO] [stderr]    |          ^^^^^^ this value is reassigned later and never used
[INFO] [stderr] 86 |     for &x in samples {
[INFO] [stderr] 87 |         s0 = x as f64 + coeff * s1 - s2;
[INFO] [stderr]    |         ------------------------------- `s0` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `elapsed` is never read
[INFO] [stderr]    --> examples/scratch_warmth.rs:457:27
[INFO] [stderr]     |
[INFO] [stderr] 457 |         let mut elapsed = 0.0;
[INFO] [stderr]     |                           ^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 464 |             elapsed = (step + 1) as f64 * block as f64 / SR * 1000.0;
[INFO] [stderr]     |             -------------------------------------------------------- `elapsed` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/scratch_warmth.rs:505:9
[INFO] [stderr]     |
[INFO] [stderr] 505 |     let mut render = |dsp: &mut ScratchAcousticDsp, out: &mut Vec<f32>, blocks: usize,
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `fill_window` is never used
[INFO] [stderr]   --> examples/scratch_warmth.rs:32:4
[INFO] [stderr]    |
[INFO] [stderr] 32 | fn fill_window(dsp: &mut ScratchAcousticDsp, length: usize) {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> examples/scratch_warmth.rs:137:5
[INFO] [stderr]     |
[INFO] [stderr] 137 |     dsp.set_native_rpm(rpm);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 137 |     let _ = dsp.set_native_rpm(rpm);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `record-player` (example "scratch_warmth") generated 7 warnings (run `cargo fix --example "scratch_warmth" -p record-player` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/record-player/46b5aa4d9713249b/out/record_player-46b5aa4d9713249b)
[INFO] [stdout] 
[INFO] [stdout] running 283 tests
[INFO] [stdout] test acoustic::scratch_tests::playback_rate_deadzone_and_lock_are_preserved ... ok
[INFO] [stdout] test acoustic::scratch_tests::programme_gap_calibration_pins_both_visible_edges_and_round_trips ... ok
[INFO] [stdout] test acoustic::scratch_tests::monotone_mapping_round_trips ... ok
[INFO] [stdout] test acoustic::scratch_tests::programme_gap_calibration_rejects_overlapping_or_flat_anchors ... ok
[INFO] [stdout] test acoustic::tests::a_take_is_cut_from_its_own_seed ... ok
[INFO] [stdout] test acoustic::tests::benchmark_replay_restore_without_reclamation ... ignored, manual replay-restore microbenchmark
[INFO] [stdout] test acoustic::tests::automatic_preset_owns_the_real_fader_while_baby_uses_manual_control ... ok
[INFO] [stdout] test acoustic::tests::cartridge_velocity_gain_is_linear_in_rate ... ok
[INFO] [stdout] test acoustic::tests::cartridge_velocity_gain_needs_no_stop_knee ... ok
[INFO] [stdout] test acoustic::tests::clearing_media_preserves_live_platter_velocity_and_phase ... ok
[INFO] [stdout] test acoustic::tests::cartridge_and_tilt_together_leave_presence_and_scale_body ... ok
[INFO] [stdout] test acoustic::tests::default_config_leaves_voicing_transparent ... ok
[INFO] [stdout] test acoustic::tests::default_moving_playback_has_no_unmeasured_speed_gain ... ok
[INFO] [stdout] test acoustic::tests::default_nominal_playback_preserves_aligned_pcm_samples_exactly ... ok
[INFO] [stdout] test acoustic::tests::a_replay_from_a_rate_starts_at_speed ... ok
[INFO] [stdout] test acoustic::tests::default_rapid_reversal_has_no_stop_deadzone_click ... ok
[INFO] [stdout] test acoustic::tests::deterministic_hash_noise_is_stable ... ok
[INFO] [stdout] test acoustic::tests::a_replay_hands_back_the_record_it_found ... ok
[INFO] [stdout] test acoustic::tests::deterministic_replay_initialization_resets_dynamic_state_and_restores_live_state ... ok
[INFO] [stdout] test acoustic::tests::commanded_grip_controls_slipmat_coupling ... ok
[INFO] [stdout] test acoustic::tests::disabling_surface_effects_clears_and_suppresses_all_foley ... ok
[INFO] [stdout] test acoustic::tests::every_voicing_curve_tilts_body_up_and_top_down ... ok
[INFO] [stdout] test acoustic::tests::hand_rate_uses_only_the_stop_deadzone_and_safety_limit ... ok
[INFO] [stdout] test acoustic::tests::held_momentary_crossfader_overrides_every_selected_technique ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limit_is_bounded_and_stereo_linked ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limit_keeps_benign_brightness ... ok
[INFO] [stdout] test acoustic::tests::deliberate_grab_reaches_platter_ownership_without_a_hundred_ms_lag ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limit_preserves_low_frequency_programme ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limit_zero_is_an_exact_bypass ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limiter_releases_transparently ... ok
[INFO] [stdout] test acoustic::tests::high_frequency_acceleration_limit_reduces_harsh_burst_without_full_band_collapse ... ok
[INFO] [stdout] test acoustic::tests::hand_drag_backwards_overrides_the_motor ... ok
[INFO] [stdout] test acoustic::tests::lifted_needle_holds_the_programme_position ... ok
[INFO] [stdout] test acoustic::tests::limiter_defaults_serde_names_and_strengths_are_distinct_and_validated ... ok
[INFO] [stdout] test acoustic::tests::locked_groove_keeps_exact_anchor_and_wraps_every_transport_target ... ok
[INFO] [stdout] test acoustic::tests::locked_groove_scratch_servo_uses_circular_distance_across_the_seam ... ok
[INFO] [stdout] test acoustic::tests::locked_groove_uses_codec_hermite_repair_at_its_circular_seam ... ok
[INFO] [stdout] test acoustic::tests::manual_crossfader_uses_the_shared_sharp_rust_curve ... ok
[INFO] [stdout] test acoustic::tests::manual_fader_defaults_to_an_exact_noop_and_validates_range ... ok
[INFO] [stdout] test acoustic::tests::manual_fader_gain_one_preserves_normal_render_bit_for_bit ... ok
[INFO] [stdout] test acoustic::tests::manual_fader_scales_window_miss_and_surface_outputs ... ok
[INFO] [stdout] test acoustic::tests::angle_gate_cuts_its_sectors_out_of_the_turn ... ok
[INFO] [stdout] test acoustic::tests::each_accumulator_clears_on_its_own_scope ... ok
[INFO] [stdout] test acoustic::tests::movement_gain_reaches_silence_continuously_at_rest ... ok
[INFO] [stdout] test acoustic::tests::movement_gain_stays_bounded ... ok
[INFO] [stdout] test acoustic::tests::a_revolution_is_cut_by_angle_from_the_ring_start ... ok
[INFO] [stdout] test acoustic::tests::needle_interaction_texture_is_quiet_at_one_x_and_rises_during_drag ... ok
[INFO] [stdout] test acoustic::tests::missing_surface_asset_uses_bounded_synthetic_bed_and_burst_without_panicking ... ok
[INFO] [stdout] test acoustic::tests::native_host_uses_the_shared_transport_and_renderer ... ok
[INFO] [stdout] test acoustic::tests::needle_lift_foley_remains_audible_while_programme_is_silent ... ok
[INFO] [stdout] test acoustic::tests::output_gain_reaches_its_linear_ramp_target ... ok
[INFO] [stdout] test acoustic::tests::nominal_playback_remains_valid_after_many_record_turns ... ok
[INFO] [stdout] test acoustic::tests::output_gain_unity_preserves_normal_render_bit_for_bit ... ok
[INFO] [stdout] test acoustic::tests::less_slip_catches_the_powered_platter_sooner ... ok
[INFO] [stdout] test acoustic::tests::output_gain_scales_window_miss_and_surface_outputs ... ok
[INFO] [stdout] test acoustic::tests::platter_rotation_telemetry_integrates_rendered_rate ... ok
[INFO] [stdout] test acoustic::tests::powered_start_uses_a_high_torque_ramp_before_servo_capture ... ok
[INFO] [stdout] test acoustic::tests::prepared_window_reuses_rust_channel_allocations ... ok
[INFO] [stdout] test acoustic::tests::pressing_seed_gives_each_copy_its_own_crackle ... ok
[INFO] [stdout] test acoustic::tests::programme_end_returns_the_exact_rendered_prefix_and_zeroes_the_suffix ... ok
[INFO] [stdout] test acoustic::tests::rejected_deck_step_keeps_last_valid_motion_without_panicking ... ok
[INFO] [stdout] test acoustic::tests::releasing_the_record_reopens_gate_for_motor_handoff ... ok
[INFO] [stdout] test acoustic::tests::replay_restore_retains_snapshot_and_swaps_heap_storage ... ok
[INFO] [stdout] test acoustic::tests::motor_start_grab_and_release_are_directionally_symmetric ... ok
[INFO] [stdout] test acoustic::tests::replay_snapshot_restores_dynamic_dsp_state_without_restarting_inertia ... ok
[INFO] [stdout] test acoustic::tests::replay_snapshot_restores_output_gain_mid_ramp ... ok
[INFO] [stdout] test acoustic::tests::riaa_speed_tilt_is_exactly_unity_at_nominal_speed ... ok
[INFO] [stdout] test acoustic::tests::riaa_speed_tilt_matches_the_analog_curve_it_claims_to_be ... ok
[INFO] [stdout] test acoustic::tests::residual_wow_flutter_is_subtle_and_hand_slip_can_increase_it ... ok
[INFO] [stdout] test acoustic::tests::riaa_speed_tilt_toggles_live ... ok
[INFO] [stdout] test acoustic::tests::off_centre_hole_swings_the_rate_once_per_revolution ... ok
[INFO] [stdout] test acoustic::tests::riaa_voicing_setter_validates_and_round_trips ... ok
[INFO] [stdout] test acoustic::tests::scratch_gate_is_applied_to_rendered_deck_audio ... ok
[INFO] [stdout] test acoustic::tests::locked_groove_holds_until_cleared ... ok
[INFO] [stdout] test acoustic::tests::paging_a_window_keeps_the_wear_the_record_has_earned ... ok
[INFO] [stdout] test acoustic::tests::scratch_gate_reversal_commits_on_the_rendered_motion_crossing ... ok
[INFO] [stdout] test acoustic::tests::six_second_window_prefetch_is_bounded_without_high_rate_request_churn ... ok
[INFO] [stdout] test acoustic::tests::soft_clip_folds_peaks_and_preserves_silence ... ok
[INFO] [stdout] test acoustic::tests::stopped_contact_from_build_23_diagnostic_never_recovers ... ok
[INFO] [stdout] test acoustic::tests::stylus_tracing_limit_preserves_the_existing_curvature_velocity_model ... ok
[INFO] [stdout] test acoustic::tests::surface_gain_setters_round_trip ... ok
[INFO] [stdout] test acoustic::tests::surface_gains_default_to_unity ... ok
[INFO] [stdout] test acoustic::tests::riaa_voicing_matches_the_fixed_riaa_curve ... ok
[INFO] [stdout] test acoustic::tests::partial_pressure_changes_takeover_acceleration ... ok
[INFO] [stdout] test acoustic::tests::texture_scale_defaults_to_the_historical_level ... ok
[INFO] [stdout] test acoustic::tests::the_wear_summary_reports_what_the_meters_show ... ok
[INFO] [stdout] test acoustic::tests::transport_jump_eases_over_the_codec_repair_span ... ok
[INFO] [stdout] test acoustic::tests::vinyl_voicing_curve_setter_round_trips ... ok
[INFO] [stdout] test acoustic::tests::surface_only_render_bypasses_programme_acceleration_limiter ... ok
[INFO] [stdout] test acoustic::tests::vinyl_voicing_is_bit_exact_at_zero ... ok
[INFO] [stdout] test acoustic::tests::vinyl_voicing_seed_curve_adds_body_and_softens_the_top ... ok
[INFO] [stdout] test acoustic::tests::vinyl_voicing_setter_validates_and_round_trips ... ok
[INFO] [stdout] test acoustic::tests::voicing_colours_the_surface_bed ... ok
[INFO] [stdout] test acoustic::tests::voicing_curves_are_distinct_shapes ... ok
[INFO] [stdout] test acoustic::tests::surface_only_render_spins_platter_without_advancing_or_leaking_programme ... ok
[INFO] [stdout] test acoustic::tests::window_miss_holds_position_and_resumes_with_a_bounded_fade ... ok
[INFO] [stdout] test acoustic::tests::window_prefetch_ignores_trailing_and_terminal_physical_edges ... ok
[INFO] [stdout] test acoustic::tests::wow_phase_follows_the_configured_physical_revolution ... ok
[INFO] [stdout] test engine::tests::changing_rpm_updates_the_live_motor_target ... ok
[INFO] [stdout] test engine::tests::deadwax_transition_preserves_platter_handoff_and_command_order ... ok
[INFO] [stdout] test engine::tests::empty_deck_motor_survives_loading_until_the_needle_can_start_programme ... ok
[INFO] [stdout] test engine::tests::explicit_stop_clears_suspended_resume_bookmark ... ok
[INFO] [stdout] test engine::tests::lowered_needle_uses_current_arm_position_not_stale_lift_position ... ok
[INFO] [stdout] test engine::tests::needle_freezes_and_resumes_same_groove ... ok
[INFO] [stdout] test engine::tests::needle_reassertion_is_idempotent ... ok
[INFO] [stdout] test engine::tests::scratch_begin_intent_is_clamped_and_forwarded_to_the_audio_engine ... ok
[INFO] [stdout] test engine::tests::scratch_interrupts_surface_region ... ok
[INFO] [stdout] test engine::tests::scratch_positions_use_the_programme_source_clock ... ok
[INFO] [stdout] test engine::tests::scratch_release_restarts_from_rendered_position_without_handoff ... ok
[INFO] [stdout] test engine::tests::scratch_release_transition_matrix_is_consistent ... ok
[INFO] [stdout] test engine::tests::scratch_release_uses_rendered_not_target_position ... ok
[INFO] [stdout] test engine::tests::scratch_release_without_resume_stops_the_dsp ... ok
[INFO] [stdout] test engine::tests::scratching_a_lifted_record_stays_silent_and_lifted ... ok
[INFO] [stdout] test engine::tests::seek_rearms_packet_playback_after_deadwax_with_needle_down ... ok
[INFO] [stdout] test engine::tests::sharp_crossfader_preserves_full_middle ... ok
[INFO] [stdout] test event::tests::historical_scratch_events_default_to_compatible_begin_intent ... ok
[INFO] [stdout] test gesture::tests::begin_anchors_the_hand_without_moving_the_record ... ok
[INFO] [stdout] test gesture::tests::begin_reports_schedule_overflow_without_starting ... ok
[INFO] [stdout] test gesture::tests::branch_cut_motion_is_unwrapped_in_the_short_direction ... ok
[INFO] [stdout] test gesture::tests::equal_timestamps_do_not_invent_velocity ... ok
[INFO] [stdout] test gesture::tests::excessive_pointer_velocity_is_limited_without_losing_position ... ok
[INFO] [stdout] test gesture::tests::finish_schedules_a_complete_release_control ... ok
[INFO] [stdout] test gesture::tests::invalid_pressure_calibration_is_rejected ... ok
[INFO] [stdout] test gesture::tests::invalid_update_is_transactional ... ok
[INFO] [stdout] test gesture::tests::late_shift_preserves_later_event_intervals ... ok
[INFO] [stdout] test gesture::tests::long_sampling_gap_marks_turn_count_as_ambiguous ... ok
[INFO] [stdout] test gesture::tests::merge_changes_only_hand_fields ... ok
[INFO] [stdout] test gesture::tests::rapid_reversals_keep_their_sign_and_sample_order ... ok
[INFO] [stdout] test gesture::tests::restore_rejects_a_different_configuration_transactionally ... ok
[INFO] [stdout] test gesture::tests::snapshot_restore_repeats_the_next_mapping ... ok
[INFO] [stdout] test gesture::tests::source_time_cannot_move_backward ... ok
[INFO] [stdout] test gesture::tests::unreported_pressure_uses_the_calibrated_force ... ok
[INFO] [stdout] test gesture::tests::wrong_pointer_does_not_change_active_state ... ok
[INFO] [stdout] test mechanics::tests::angle_uses_the_interval_average_velocity_under_constant_torque ... ok
[INFO] [stdout] test mechanics::tests::bearing_and_slipmat_balance_stylus_torque_in_the_same_sample ... ok
[INFO] [stdout] test mechanics::tests::engineering_control_limits_reject_numeric_hazards_without_mutation ... ok
[INFO] [stdout] test mechanics::tests::every_friction_port_opposes_relative_motion_during_rapid_reversals ... ok
[INFO] [stdout] test acoustic::tests::a_steady_hand_sampled_at_sixty_hertz_turns_the_record_steadily ... ok
[INFO] [stdout] test acoustic::tests::second_stylus_echoes_at_its_angle ... ok
[INFO] [stdout] test acoustic::tests::wear_accrues_where_the_stylus_passes_and_survives_restore ... ok
[INFO] [stdout] test mechanics::tests::hand_position_correction_cannot_exceed_the_deck_rate_limit ... ok
[INFO] [stdout] test acoustic::tests::vinyl_voicing_reaches_the_rendered_programme ... ok
[INFO] [stdout] test acoustic::tests::riaa_speed_tilt_shapes_only_off_speed_content ... ok
[INFO] [stdout] test mechanics::tests::invalid_configuration_is_rejected ... ok
[INFO] [stdout] test mechanics::tests::internal_slipmat_torque_conserves_angular_momentum ... ok
[INFO] [stdout] test mechanics::tests::kinetic_bearing_friction_stops_without_reversing_at_zero ... ok
[INFO] [stdout] test mechanics::tests::high_torque_seed_reaches_nominal_speed_within_two_hundred_ms ... ok
[INFO] [stdout] test mechanics::tests::invalid_control_does_not_change_valid_state ... ok
[INFO] [stdout] test mechanics::tests::friction_never_increases_isolated_mechanical_energy ... ok
[INFO] [stdout] test mechanics::tests::seed_uses_published_deck_scale_without_claiming_calibration ... ok
[INFO] [stdout] test mechanics::tests::simultaneous_static_constraints_produce_equal_velocities ... ok
[INFO] [stdout] test mechanics::tests::snapshot_restores_independent_record_and_platter_phase ... ok
[INFO] [stdout] test mechanics::tests::snapshot_restores_the_coupling_memory_used_by_the_next_step ... ok
[INFO] [stdout] test mechanics::tests::stationary_hand_holds_an_unpowered_stopped_deck_without_rank_failure ... ok
[INFO] [stdout] test mechanics::tests::step_counter_overflow_does_not_mutate_the_deck ... ok
[INFO] [stdout] test acoustic::tests::signed_unpowered_throw_coasts_while_explicit_motor_stop_brakes ... ok
[INFO] [stdout] test resampler::tests::accelerating_hand_path_preserves_vocal_waveform_phase ... ok
[INFO] [stdout] test resampler::tests::adaptive_filter_changes_continuously_across_blend_and_support_boundaries ... ok
[INFO] [stdout] test mechanics::tests::firm_hand_separates_and_reverses_record_over_platter ... ok
[INFO] [stdout] test resampler::tests::high_speed_filter_rejects_a_stopband_sweep_in_both_directions ... ok
[INFO] [stdout] test resampler::tests::interpolation_is_direction_symmetric_at_every_high_speed_tier ... ok
[INFO] [stdout] test resampler::tests::normal_speed_retains_the_low_latency_cubic_path ... ok
[INFO] [stdout] test resampler::tests::recurrence_kernel_matches_the_direct_sinc_reference ... ok
[INFO] [stdout] test resampler::tests::high_speed_filter_preserves_a_passband_sweep_in_both_directions ... ok
[INFO] [stdout] test scratch_gate::tests::asymmetric_direction_spans_clock_clicks_independently ... ok
[INFO] [stdout] test scratch_gate::tests::baby_stays_open_in_both_directions_and_at_rest ... ok
[INFO] [stdout] test scratch_gate::tests::baby_uses_manual_gain_and_automatic_presets_own_the_output ... ok
[INFO] [stdout] test scratch_gate::tests::chirp_closes_on_reversal_intent_before_the_record_changes_direction ... ok
[INFO] [stdout] test scratch_gate::tests::chirp_mutes_each_physical_direction_edge ... ok
[INFO] [stdout] test scratch_gate::tests::chirp_opens_after_each_edge_and_closes_before_the_turn ... ok
[INFO] [stdout] test mechanics::tests::motor_reaches_nominal_speed_within_the_published_start_time ... ok
[INFO] [stdout] test scratch_gate::tests::chirp_pause_does_not_expose_the_forward_endpoint ... ok
[INFO] [stdout] test resampler::tests::vocal_like_waveform_is_only_time_scaled_at_odd_signed_speeds ... ok
[INFO] [stdout] test scratch_gate::tests::click_gate_envelope_bounds_added_discontinuity_on_audio_fixtures ... ok
[INFO] [stdout] test scratch_gate::tests::clicks_are_clamped_to_the_supported_range ... ok
[INFO] [stdout] test scratch_gate::tests::confirmed_onset_keeps_audible_travel_from_the_confirmation_window ... ok
[INFO] [stdout] test scratch_gate::tests::confirmed_reversal_keeps_audible_travel_from_the_confirmation_window ... ok
[INFO] [stdout] test scratch_gate::tests::confirmed_reversal_travel_is_sample_rate_invariant ... ok
[INFO] [stdout] test scratch_gate::tests::crab_is_a_clustered_finger_burst_not_a_transform_duty_variant ... ok
[INFO] [stdout] test scratch_gate::tests::crab_is_closed_at_rest_and_pulses_while_moving ... ok
[INFO] [stdout] test scratch_gate::tests::current_gate_ignores_click_count_for_non_click_techniques ... ok
[INFO] [stdout] test scratch_gate::tests::declick_envelope_is_bounded_and_not_instantaneous ... ok
[INFO] [stdout] test scratch_gate::tests::drum_ignores_slow_onsets_and_small_pointer_rate_steps ... ok
[INFO] [stdout] test scratch_gate::tests::click_driven_techniques_create_one_pulse_or_notch_per_selected_click ... ok
[INFO] [stdout] test scratch_gate::tests::drum_opens_on_attack_then_closes_and_respects_refractory ... ok
[INFO] [stdout] test scratch_gate::tests::drum_rendered_acceleration_is_sample_rate_invariant ... ok
[INFO] [stdout] test scratch_gate::tests::drum_reversal_does_not_spend_its_hit_on_outgoing_motion ... ok
[INFO] [stdout] test scratch_gate::tests::drum_is_invariant_to_intent_event_packetization_for_same_physical_trajectory ... ok
[INFO] [stdout] test scratch_gate::tests::every_technique_tracks_record_direction_with_continuous_same_sample_gain ... ok
[INFO] [stdout] test scratch_gate::tests::first_stroke_seed_has_zero_confidence_until_one_stroke_is_observed ... ok
[INFO] [stdout] test scratch_gate::tests::flare_and_orbit_are_open_at_rest_and_cut_mid_cycle ... ok
[INFO] [stdout] test scratch_gate::tests::flare_is_one_sided_while_orbit_repeats_the_notch_on_return ... ok
[INFO] [stdout] test scratch_gate::tests::gate_reports_only_the_current_algorithm ... ok
[INFO] [stdout] test scratch_gate::tests::equivalent_rendered_travel_ignores_positive_intent_jitter_and_coalescing ... ok
[INFO] [stdout] test scratch_gate::tests::gate_timing_is_sample_rate_invariant ... ok
[INFO] [stdout] test scratch_gate::tests::invalid_input_and_snapshot_restore_are_transactional ... ok
[INFO] [stdout] test scratch_gate::tests::intent_cannot_commit_reversal_before_rendered_rate_crosses_zero ... ok
[INFO] [stdout] test scratch_gate::tests::jitter_does_not_create_a_false_reversal ... ok
[INFO] [stdout] test scratch_gate::tests::manual_and_automatic_gain_steps_use_a_bounded_declick_envelope ... ok
[INFO] [stdout] test scratch_gate::tests::maximum_rate_roundoff_clamps_to_the_exact_supported_boundary ... ok
[INFO] [stdout] test scratch_gate::tests::outgoing_motion_keeps_the_existing_stroke_until_physical_reversal ... ok
[INFO] [stdout] test scratch_gate::tests::outgoing_physical_motion_rejects_predicted_reversal_until_the_crossing_sample ... ok
[INFO] [stdout] test scratch_gate::tests::parses_every_preset_and_exposes_defaults ... ok
[INFO] [stdout] test scratch_gate::tests::performance_render_path_does_not_allocate ... ok
[INFO] [stdout] test scratch_gate::tests::performance_snapshot_restore_repeats_every_output_frame ... ok
[INFO] [stdout] test scratch_gate::tests::performance_snapshot_round_trips_through_json ... ok
[INFO] [stdout] test scratch_gate::tests::performance_timing_is_sample_rate_invariant ... ok
[INFO] [stdout] test scratch_gate::tests::maximum_rate_reversals_remain_finite_and_bounded ... ok
[INFO] [stdout] test scratch_gate::tests::physical_maximum_rate_onset_preserves_every_early_click_event ... ok
[INFO] [stdout] test scratch_gate::tests::physical_maximum_rate_onset_preserves_the_first_stab_attack ... ok
[INFO] [stdout] test scratch_gate::tests::physical_rendered_motion_is_the_only_source_of_pattern_travel ... ok
[INFO] [stdout] test scratch_gate::tests::pvc_005_fixture_matches_canonical_constants_and_claim_limits ... ok
[INFO] [stdout] test scratch_gate::tests::rejected_intent_reversal_discards_pending_state_without_changing_direction ... ok
[INFO] [stdout] test scratch_gate::tests::releasing_contact_always_reopens_the_gate ... ok
[INFO] [stdout] test scratch_gate::tests::rendered_rate_is_a_direction_fallback ... ok
[INFO] [stdout] test scratch_gate::tests::rest_freezes_phase_and_same_direction_resume_preserves_it ... ok
[INFO] [stdout] test scratch_gate::tests::reversal_learns_only_the_completed_direction_span ... ok
[INFO] [stdout] test scratch_gate::tests::stab_keeps_the_forward_stroke_audible_and_mutes_the_return ... ok
[INFO] [stdout] test scratch_gate::tests::stab_opens_only_on_confirmed_forward_motion ... ok
[INFO] [stdout] test scratch_gate::tests::stable_open_and_closed_gate_rms_is_bounded_on_audio_fixtures ... ok
[INFO] [stdout] test scratch_gate::tests::technique_contract_has_defining_direction_and_fader_edges ... ok
[INFO] [stdout] test scratch_gate::tests::transform_has_a_closed_baseline_with_brief_uniform_taps ... ok
[INFO] [stdout] test scratch_gate::tests::transform_phase_tracks_travel_and_click_count ... ok
[INFO] [stdout] test scratch_gate::tests::rapid_physical_reversals_remain_bounded_and_hide_each_endpoint ... ok
[INFO] [stdout] test spsc::tests::distinguishes_empty_from_disconnected ... ok
[INFO] [stdout] test scratch_gate::tests::travel_patterns_keep_groove_landmarks_at_different_velocities ... ok
[INFO] [stdout] test spsc::tests::endpoints_are_send ... ok
[INFO] [stdout] test spsc::tests::full_timeline_backpressure_does_not_lose_mailbox_event ... ok
[INFO] [stdout] test spsc::tests::invalid_payload_is_consumed_and_counted ... ok
[INFO] [stdout] test spsc::tests::invalid_peek_remains_reserved_until_commit ... ok
[INFO] [stdout] test spsc::tests::peek_drains_final_value_before_disconnect ... ok
[INFO] [stdout] test spsc::tests::producer_cannot_overwrite_a_peeked_slot ... ok
[INFO] [stdout] test spsc::tests::rejects_full_push_without_overwriting_values ... ok
[INFO] [stdout] test spsc::tests::rejects_invalid_capacities ... ok
[INFO] [stdout] test spsc::tests::repeated_peek_waits_for_explicit_commit ... ok
[INFO] [stdout] test spsc::tests::returns_value_when_consumer_is_disconnected ... ok
[INFO] [stdout] test spsc::tests::timed_control_codec_preserves_every_field ... ok
[INFO] [stdout] test spsc::tests::peek_and_commit_wrap_non_power_of_two_capacity ... ok
[INFO] [stdout] test spsc::tests::try_pop_consumes_an_existing_peek ... ok
[INFO] [stdout] test spsc::tests::wraps_non_power_of_two_capacity_without_reordering ... ok
[INFO] [stdout] test timed_control::tests::block_advance_reports_frame_overflow_without_mutation ... ok
[INFO] [stdout] test timed_control::tests::checkpoint_rejects_another_timeline ... ok
[INFO] [stdout] test timed_control::tests::checkpoint_rejects_enqueue_that_overwrites_consumed_slot ... ok
[INFO] [stdout] test timed_control::tests::checkpoint_restores_consumed_events_and_render_state ... ok
[INFO] [stdout] test timed_control::tests::checkpoint_restores_wrapped_full_queue ... ok
[INFO] [stdout] test timed_control::tests::event_at_block_end_starts_the_next_block ... ok
[INFO] [stdout] test timed_control::tests::partitions_block_at_exact_event_frames ... ok
[INFO] [stdout] test timed_control::tests::preserves_several_transitions_in_one_quantum ... ok
[INFO] [stdout] test timed_control::tests::preserves_stylus_transitions_at_one_frame ... ok
[INFO] [stdout] test timed_control::tests::rapid_reversals_remain_distinct_and_ordered ... ok
[INFO] [stdout] test timed_control::tests::rejects_invalid_control_values ... ok
[INFO] [stdout] test timed_control::tests::rejects_late_event_without_changing_queue ... ok
[INFO] [stdout] test timed_control::tests::rejects_new_event_at_full_capacity ... ok
[INFO] [stdout] test timed_control::tests::restore_rejects_capacity_change_without_mutation ... ok
[INFO] [stdout] test timed_control::tests::restore_rejects_the_previous_control_snapshot_schema ... ok
[INFO] [stdout] test timed_control::tests::snapshot_restore_invalidates_checkpoint ... ok
[INFO] [stdout] test timed_control::tests::snapshot_restore_replays_identically_after_ring_wrap ... ok
[INFO] [stdout] test timed_control::tests::validates_timestamp_sequence_and_duplicate_order ... ok
[INFO] [stdout] test scratch_gate::tests::click_driven_techniques_repeat_for_continuous_record_motion ... ok
[INFO] [stdout] test vinyl_vfx::tests::bypass_is_bit_exact ... ok
[INFO] [stdout] test vinyl_vfx::tests::constellation_cut_belongs_to_the_pressing ... ok
[INFO] [stdout] test vinyl_vfx::tests::adjacent_ghost_reads_the_previous_revolution ... ok
[INFO] [stdout] test vinyl_vfx::tests::constellation_is_painted_on_turns_not_clock_time ... ok
[INFO] [stdout] test mechanics::tests::fixed_clock_is_invariant_to_call_partitioning ... ok
[INFO] [stdout] test vinyl_vfx::tests::constellation_repeats_the_same_cut_every_revolution ... ok
[INFO] [stdout] test vinyl_vfx::tests::ghost_echo_is_smooth_not_stair_stepped ... ok
[INFO] [stdout] test vinyl_vfx::tests::inner_fire_is_audible_but_not_blown_out ... ok
[INFO] [stdout] test acoustic::tests::a_stroking_hand_sampled_at_sixty_hertz_is_followed_without_a_lurch ... ok
[INFO] [stdout] test vinyl_vfx::tests::overcut_cuts_its_own_pass_back_into_the_groove ... ok
[INFO] [stdout] test vinyl_vfx::tests::null_points_are_clean_and_the_edge_is_not ... ok
[INFO] [stdout] test mechanics::tests::releasing_hand_recouples_without_resetting_phase ... ok
[INFO] [stdout] test vinyl_vfx::tests::pinch_makes_width_out_of_a_mono_cut ... ok
[INFO] [stdout] test vinyl_vfx::tests::split_walls_keeps_stereo_channels_distinct ... ok
[INFO] [stdout] test vinyl_vfx::tests::spread_walks_the_three_needle_ladder_and_still_reaches_even_thirds ... ok
[INFO] [stdout] test vinyl_vfx::tests::the_elliptical_circuit_takes_wide_bass_to_the_middle ... ok
[INFO] [stdout] test vinyl_vfx::tests::pinch_keeps_the_sub_audio_out_of_the_sides ... ok
[INFO] [stdout] test vinyl_vfx::tests::ghost_and_overcut_do_not_overdrive_the_limiter ... ok
[INFO] [stdout] test vinyl_vfx::tests::overcut_converges_instead_of_running_away ... ok
[INFO] [stdout] test vinyl_vfx::tests::worn_halo_wears_in_seconds_rather_than_hours ... ok
[INFO] [stdout] test mechanics::tests::pi_servo_removes_steady_load_droop ... ok
[INFO] [stdout] test spsc::tests::transfers_values_between_threads_in_order ... ok
[INFO] [stdout] test vinyl_vfx::tests::overcut_does_not_sum_its_own_offset ... ok
[INFO] [stdout] test mechanics::tests::two_seconds_in_one_call_matches_two_one_second_calls ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 282 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 26.57s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/spinback_latency_sim.rs (/opt/rustwide/target/debug/build/record-player/01e1a9c71de8d0c4/out/spinback_latency_sim-01e1a9c71de8d0c4)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/still_hold_sim.rs (/opt/rustwide/target/debug/build/record-player/779c5dd1fc0f51b2/out/still_hold_sim-779c5dd1fc0f51b2)
[INFO] [stdout] test spinback_latency_report ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.77s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test still_hold_through_event_silence ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/touch_stop_sim.rs (/opt/rustwide/target/debug/build/record-player/7f1647ada47f2a0e/out/touch_stop_sim-7f1647ada47f2a0e)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test mechanics_only_touch_stop ... ok
[INFO] [stdout] test scratching_into_the_start_edge_fades_instead_of_holding_a_frozen_sample ... ok
[INFO] [stdout] test touch_stop_light_grip ... ok
[INFO] [stderr]    Doc-tests record_player
[INFO] [stdout] test touch_stop_full_grip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.79s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c", kill_on_drop: false }`
[INFO] [stdout] b5cb6f9c6ca9e724c6dac9bed7c723aebff3866177175e25e7e0ee3eaa24768c
