[INFO] cloning repository https://github.com/vikke/lcvgc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vikke/lcvgc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvikke%2Flcvgc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvikke%2Flcvgc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bc8fdbffeb0b7bd7cfcf592479be059ee72bd956
[INFO] testing vikke/lcvgc against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvikke%2Flcvgc" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/vikke/lcvgc
[INFO] finished tweaking git repo https://github.com/vikke/lcvgc
[INFO] tweaked toml for git repo https://github.com/vikke/lcvgc written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vikke/lcvgc on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vikke/lcvgc 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded midir v0.10.3
[INFO] [stderr]   Downloaded midly v0.5.3
[INFO] [stderr]   Downloaded coremidi-sys v3.2.0
[INFO] [stderr]   Downloaded coremidi v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6
[INFO] running `Command { std: "docker" "start" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", 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" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", 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" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling lcvgc v0.17.13 (/opt/rustwide/workdir/crates/lcvgc)
[INFO] [stderr]    Compiling midly v0.5.3
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling midir v0.10.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.49s
[INFO] running `Command { std: "docker" "inspect" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", 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" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling lcvgc v0.17.13 (/opt/rustwide/workdir/crates/lcvgc)
[INFO] [stderr]    Compiling midly v0.5.3
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling midir v0.10.3
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 59.02s
[INFO] running `Command { std: "docker" "inspect" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", 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" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]    Compiling lcvgc v0.17.13 (/opt/rustwide/workdir/crates/lcvgc)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 30.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lcvgc-8e16c070dc0a3e7b)
[INFO] [stdout] 
[INFO] [stdout] running 1262 tests
[INFO] [stdout] test domain::channel::tests::equality_same_value_from_different_constructors ... ok
[INFO] [stdout] test domain::channel::tests::from_one_based_max ... ok
[INFO] [stdout] test domain::channel::tests::from_one_based_seventeen_is_rejected ... ok
[INFO] [stdout] test domain::channel::tests::from_one_based_zero_is_rejected ... ok
[INFO] [stdout] test domain::channel::tests::from_zero_based_max ... ok
[INFO] [stdout] test domain::channel::tests::from_zero_based_sixteen_is_rejected ... ok
[INFO] [stdout] test domain::channel::tests::from_zero_based_min ... ok
[INFO] [stdout] test domain::channel::tests::ordering_is_consistent_with_zero_based_value ... ok
[INFO] [stdout] test domain::channel::tests::round_trip_one_based ... ok
[INFO] [stdout] test domain::channel::tests::round_trip_zero_based ... ok
[INFO] [stdout] test engine::clock::tests::apply_tempo_absolute ... ok
[INFO] [stdout] test engine::clock::tests::apply_tempo_relative ... ok
[INFO] [stdout] test engine::clock::tests::clock_period_ticks_ppq_24 ... ok
[INFO] [stdout] test engine::clock::tests::clock_period_ticks_ppq_480 ... ok
[INFO] [stdout] test engine::clock::tests::clock_period_ticks_ppq_96 ... ok
[INFO] [stdout] test engine::clock::tests::duration_to_ticks_quarter ... ok
[INFO] [stdout] test engine::clock::tests::duration_to_ticks_eighth ... ok
[INFO] [stdout] test engine::clock::tests::duration_to_ticks_whole ... ok
[INFO] [stdout] test engine::clock::tests::is_clock_tick_ppq_480 ... ok
[INFO] [stdout] test engine::clock::tests::ticks_per_beat_4_4 ... ok
[INFO] [stdout] test engine::clock::tests::ticks_per_beat_6_8 ... ok
[INFO] [stdout] test engine::clock::tests::clock_period_ticks_ppq_100_is_zero ... ok
[INFO] [stdout] test engine::clock::tests::new_defaults ... ok
[INFO] [stdout] test engine::compiler::tests::bar_jump_at_boundary_ok ... ok
[INFO] [stdout] test engine::clock::tests::ticks_per_bar_4_4 ... ok
[INFO] [stdout] test engine::clock::tests::is_clock_tick_disabled_when_ppq_not_multiple_of_24 ... ok
[INFO] [stdout] test domain::channel::tests::from_one_based_min ... ok
[INFO] [stdout] test engine::clock::tests::ticks_per_bar_3_4 ... ok
[INFO] [stdout] test engine::compiler::tests::bars_overflow_drops_pair_when_note_on_outside_clip ... ok
[INFO] [stdout] test engine::compiler::tests::bars_unspecified_total_ticks_is_logical_end ... ok
[INFO] [stdout] test engine::compiler::tests::bars_overflow_emits_both_warnings_when_mixed ... ok
[INFO] [stdout] test engine::compiler::tests::bars_truncates_events ... ok
[INFO] [stdout] test engine::compiler::tests::bars_unspecified_multi_line_takes_max_logical_end ... ok
[INFO] [stdout] test engine::compiler::tests::bars_overflow_clamps_note_off_when_note_on_inside_clip ... ok
[INFO] [stdout] test engine::compiler::tests::bars_pads_total_ticks ... ok
[INFO] [stdout] test domain::channel::tests::from_one_based_drum_channel_10 ... ok
[INFO] [stdout] test engine::clock::tests::ticks_per_bar_6_8 ... ok
[INFO] [stdout] test engine::clock::tests::duration_to_ticks_dotted_quarter ... ok
[INFO] [stdout] test engine::clock::tests::tick_duration_us_bpm120_ppq480 ... ok
[INFO] [stdout] test engine::compiler::tests::bar_jump_no_bars_always_ok ... ok
[INFO] [stdout] test engine::compiler::tests::cc_automation_in_drum_clip ... ok
[INFO] [stdout] test engine::compiler::tests::cc_automation_time_point ... ok
[INFO] [stdout] test engine::compiler::tests::cc_automation_step_basic ... ok
[INFO] [stdout] test engine::compiler::tests::cc_step_pipe_truncates_overrun ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_random_emits_choice_groups ... ok
[INFO] [stdout] test engine::compiler::tests::cc_step_pipe_pads_to_beat_boundary ... ok
[INFO] [stdout] test engine::compiler::tests::cc_step_dot_skips_emission ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_up_uses_resolution ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_falls_back_to_duration ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_staccato ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_arpeggio_falls_back_to_duration ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_down ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_uses_carry_over_when_unspecified ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_basic ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_carry_forward ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_arpeggio_random_emits_choice_groups ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_individual_octave ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_arpeggio_up_uses_resolution ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_arpeggio_updown_pingpong ... ok
[INFO] [stdout] test engine::compiler::tests::cc_step_bar_jump_jumps_to_bar ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_cm7_basic ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_in_repetition ... ok
[INFO] [stdout] test engine::compiler::tests::chord_bracket_carry_forward ... ok
[INFO] [stdout] test engine::compiler::tests::chord_name_staccato ... ok
[INFO] [stdout] test engine::compiler::tests::compile_drum_builds_probability_groups ... ok
[INFO] [stdout] test engine::compiler::tests::drum_accent_velocity ... ok
[INFO] [stdout] test engine::compiler::tests::drum_clip_basic ... ok
[INFO] [stdout] test engine::compiler::tests::compile_drum_no_probability_no_groups ... ok
[INFO] [stdout] test engine::compiler::tests::octave_shift_down_lowers_note_by_12 ... ok
[INFO] [stdout] test engine::compiler::tests::drum_events_carry_kit_device ... ok
[INFO] [stdout] test engine::compiler::tests::drum_velocity_overrides_hit_symbol_defaults ... ok
[INFO] [stdout] test engine::compiler::tests::events_sorted_note_on_before_off ... ok
[INFO] [stdout] test engine::compiler::tests::min_gate_off_extreme_gate_clamped ... ok
[INFO] [stdout] test engine::compiler::tests::min_gate_off_legato_unchanged ... ok
[INFO] [stdout] test engine::compiler::tests::min_gate_off_normal_unaffected ... ok
[INFO] [stdout] test engine::compiler::tests::gate_direct_percent ... ok
[INFO] [stdout] test engine::compiler::tests::octave_shift_out_of_range_is_compile_error ... ok
[INFO] [stdout] test engine::compiler::tests::min_gate_off_legato_compile ... ok
[INFO] [stdout] test engine::compiler::tests::octave_shift_up_raises_note_by_12 ... ok
[INFO] [stdout] test engine::compiler::tests::dotted_note_duration ... ok
[INFO] [stdout] test engine::compiler::tests::bar_jump_out_of_range_error ... ok
[INFO] [stdout] test engine::compiler::tests::octave_shift_up_two_raises_note_by_24 ... ok
[INFO] [stdout] test engine::compiler::tests::octave_shift_zero_is_noop ... ok
[INFO] [stdout] test engine::compiler::tests::pipe_snap_exact_beat_is_noop ... ok
[INFO] [stdout] test engine::compiler::tests::pipe_snap_truncates_overrun_to_previous_beat ... ok
[INFO] [stdout] test engine::compiler::tests::pipe_snap_truncate_keeps_first_beat_notes ... ok
[INFO] [stdout] test engine::compiler::tests::pitched_events_carry_instrument_device ... ok
[INFO] [stdout] test engine::compiler::tests::pitched_velocity_normal_defaults_to_100 ... ok
[INFO] [stdout] test engine::compiler::tests::pitched_multi_line_uses_per_instrument_device ... ok
[INFO] [stdout] test engine::compiler::tests::pitched_vn_overrides_velocity_normal ... ok
[INFO] [stdout] test engine::compiler::tests::repetition_carries_octave_and_duration ... ok
[INFO] [stdout] test engine::compiler::tests::repetition_pitched_basic ... ok
[INFO] [stdout] test engine::compiler::tests::pipe_snap_multiple_segments_are_independent ... ok
[INFO] [stdout] test engine::compiler::tests::pipe_snap_pads_short_to_next_beat ... ok
[INFO] [stdout] test engine::compiler::tests::pitched_velocity_normal_sets_default ... ok
[INFO] [stdout] test engine::compiler::tests::bar_jump_sets_position ... ok
[INFO] [stdout] test engine::compiler::tests::resolve_gate_percent_direct ... ok
[INFO] [stdout] test engine::compiler::tests::resolve_gate_percent_normal ... ok
[INFO] [stdout] test engine::compiler::tests::resolve_gate_percent_staccato ... ok
[INFO] [stdout] test engine::compiler::tests::rest_advances_position ... ok
[INFO] [stdout] test engine::compiler::tests::single_note_c4_quarter_at_120bpm ... ok
[INFO] [stdout] test engine::compiler::tests::staccato_uses_gate_staccato ... ok
[INFO] [stdout] test engine::compiler::tests::two_notes_carry_forward ... ok
[INFO] [stdout] test engine::compiler::tests::unknown_instrument_error ... ok
[INFO] [stdout] test engine::config::tests::config_load_nonexistent_returns_default ... ok
[INFO] [stdout] test engine::config::tests::config_load_invalid_toml_returns_err ... ok
[INFO] [stdout] test engine::config::tests::config_load_bpm ... ok
[INFO] [stdout] test engine::error::tests::display_circular_include ... ok
[INFO] [stdout] test engine::error::tests::display_compile_error ... ok
[INFO] [stdout] test engine::error::tests::display_config ... ok
[INFO] [stdout] test engine::config::tests::config_load_ppq_and_midi_ports ... ok
[INFO] [stdout] test engine::error::tests::display_include_not_found ... ok
[INFO] [stdout] test engine::error::tests::display_include_read_error ... ok
[INFO] [stdout] test engine::error::tests::display_invalid_variable_value ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_device ... ok
[INFO] [stdout] test engine::error::tests::display_io ... ok
[INFO] [stdout] test engine::error::tests::from_io_error ... ok
[INFO] [stdout] test engine::evaluator::tests::device_connection_error_clear_noop_for_missing_device ... ok
[INFO] [stdout] test engine::evaluator::tests::device_connection_error_clear_removes_entry ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_kit ... ok
[INFO] [stdout] test engine::evaluator::tests::device_connection_error_record_and_get ... ok
[INFO] [stdout] test engine::error::tests::display_undefined_variable ... ok
[INFO] [stdout] test engine::config::tests::config_default_all_none ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_scene ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_session ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_instrument ... ok
[INFO] [stdout] test engine::evaluator::tests::clock_handle_reflects_tempo_change ... ok
[INFO] [stdout] test engine::evaluator::tests::clock_snapshot_is_independent_copy ... ok
[INFO] [stdout] test engine::evaluator::tests::device_connection_error_overwrites_on_re_record ... ok
[INFO] [stdout] test engine::error::tests::display_unknown_clip ... ok
[INFO] [stdout] test engine::evaluator::tests::device_event_emits_upsert_on_new_device ... ok
[INFO] [stdout] test engine::evaluator::tests::device_event_emits_upsert_on_redefinition_with_same_name ... ok
[INFO] [stdout] test engine::evaluator::tests::device_event_tx_unset_does_not_panic_on_device_eval ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_clip_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_device_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_include_not_at_top ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_circular_include ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_include_at_top_ok ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_duplicate_include_skipped ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_not_found ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_include_processed ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_instrument_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_instrument_with_local_vars ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_nested_include ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_file_single_include ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_kit_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_session_unknown_errors ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_scene_unknown_errors ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_session ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_scene_unknown_clip_errors ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_stop ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_play_session_builds_first_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_source_multiple_blocks ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_session_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_source_empty ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_source_preload_skips_play_and_stop ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_source_parse_error ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_device ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_block_scope_shadowing ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_scale_changed ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_tempo_absolute ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_source_preload_still_emits_device_event ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_scene_registered ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_defined ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_cc_number ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_channel ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_tempo_relative ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_gate_normal ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_invalid_value ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_redefinition_updates_scope ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_expansion_undefined_variable ... ok
[INFO] [stdout] test engine::evaluator::tests::eval_var_registered_in_scope ... ok
[INFO] [stdout] test engine::evaluator::tests::load_file_not_found ... ok
[INFO] [stdout] test engine::evaluator::tests::failed_play_does_not_queue_transport ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_applies_relative_tempo_cumulatively ... ok
[INFO] [stdout] test engine::evaluator::tests::multiple_transport_true_devices_all_receive_messages ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_relative_uses_dynamic_tempo_as_base ... ok
[INFO] [stdout] test engine::evaluator::tests::mute_with_multi_device_queues_only_target_device_channel ... ok
[INFO] [stdout] test engine::evaluator::tests::mute_with_clip_name_mutes_and_queues_its_channel ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_no_tempo_entry_keeps_bpm ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_applies_absolute_tempo_each_loop ... ok
[INFO] [stdout] test engine::evaluator::tests::mute_with_unknown_clip_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_transitions_to_next_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::pause_none_queues_all_notes_off_and_pauses_clips ... ok
[INFO] [stdout] test engine::evaluator::tests::pause_with_clip_name_pauses_single_clip ... ok
[INFO] [stdout] test engine::evaluator::tests::pause_when_stopped_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_loop_returns_continue ... ok
[INFO] [stdout] test engine::evaluator::tests::mute_without_active_scene_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::pause_with_current_scene_name_fully_pauses ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_once_returns_scene_complete ... ok
[INFO] [stdout] test engine::evaluator::tests::pause_with_unknown_target_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::on_scene_loop_complete_session_transition_applies_prev_scene_tempo_only ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_does_not_emit_device_event ... ok
[INFO] [stdout] test engine::evaluator::tests::play_queues_midi_start_for_transport_devices ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_populates_empty_registry ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_populates_registry_without_device_event ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_restores_device_event_tx ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_skips_non_empty_registry ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_with_additional_sources ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_clip_in_single_entry_session_keeps_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::preload_from_source_skips_play_stop ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_clip_during_session_forces_scene_advance_on_grid ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_session_def_forces_advance_on_grid ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_single_entry_session_def_keeps_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::prepare_apply_resolves_instrument_defined_in_same_source ... ok
[INFO] [stdout] test engine::evaluator::tests::prepare_apply_preload_skips_play ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_clip_in_plain_scene_does_not_force_advance ... ok
[INFO] [stdout] test engine::evaluator::tests::prepare_apply_redefines_in_use_clip ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_active_scene_in_single_entry_session_keeps_scene ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_clip_while_playing_stages_pending_and_commit_swaps ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_active_scene_during_session_forces_advance ... ok
[INFO] [stdout] test engine::evaluator::tests::prepare_apply_equivalent_to_eval_source ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_clip_without_active_scene_is_registry_only ... ok
[INFO] [stdout] test engine::evaluator::tests::reeval_inactive_scene_during_session_does_not_force ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_none_restores_state_and_resumes_clips ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_with_clip_name_resumes_single_clip ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_when_not_paused_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_with_unknown_target_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::scene_internal_mute_prefix_can_be_unmuted_dynamically ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_with_unknown_target_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_with_matching_name_restores_state ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_queues_midi_stop_for_transport_devices ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_with_current_scene_name_fully_stops ... ok
[INFO] [stdout] test engine::evaluator::tests::scene_switch_reinitializes_mute_state_from_declaration ... ok
[INFO] [stdout] test engine::evaluator::tests::unmute_with_clip_name_releases_mute ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_with_clip_name_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::scene_internal_mute_prefix_initially_mutes_clip_on_activate ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_none_queues_all_notes_off_for_active_scene_channels ... ok
[INFO] [stdout] test engine::evaluator::tests::resume_with_mismatched_name_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::transport_false_devices_do_not_receive_transport_messages ... ok
[INFO] [stdout] test engine::evaluator::tests::unmute_with_unknown_clip_is_noop ... ok
[INFO] [stdout] test engine::evaluator::tests::take_active_scene_transfers_ownership ... ok
[INFO] [stdout] test engine::evaluator::tests::stop_with_multi_device_queues_all_device_channel_pairs ... ok
[INFO] [stdout] test engine::midi_sink::tests::mock_sink_default_has_empty_sent ... ok
[INFO] [stdout] test engine::midi_sink::tests::mock_sink_send_multiple ... ok
[INFO] [stdout] test engine::midi_sink::tests::send_all_notes_off_all_channels_emits_16_messages ... ok
[INFO] [stdout] test engine::midi_sink::tests::mock_sink_send_note_on ... ok
[INFO] [stdout] test engine::playback::tests::classify_tick_wait_zero_target_treated_as_one ... ok
[INFO] [stdout] test engine::midi_sink::tests::send_all_notes_off_returns_err_if_sink_fails ... ok
[INFO] [stdout] test engine::playback::tests::lock_wait_threshold_at_fifty_percent ... ok
[INFO] [stdout] test engine::playback::tests::lock_wait_threshold_zero_target ... ok
[INFO] [stdout] test engine::playback::tests::first_step_after_play_emits_clock_alongside_start ... ok
[INFO] [stdout] test engine::playback::tests::classify_tick_wait_stages_by_multiplier ... ok
[INFO] [stdout] test engine::playback::tests::multi_device_mute_emits_all_notes_off_only_on_target ... ok
[INFO] [stdout] test engine::playback::tests::events_to_unknown_device_are_dropped_without_error ... ok
[INFO] [stdout] test engine::playback::tests::multi_device_routes_events_to_correct_sinks ... ok
[INFO] [stdout] test engine::playback::tests::clip_swap_applies_on_four_bar_grid_not_each_bar ... ok
[INFO] [stdout] test engine::playback::tests::next_wait_strategy_no_wait_when_deadline_passed ... ok
[INFO] [stdout] test engine::playback::tests::next_wait_strategy_sleeps_minus_threshold_when_over ... ok
[INFO] [stdout] test engine::playback::tests::next_wait_strategy_spins_when_within_threshold ... ok
[INFO] [stdout] test engine::playback::tests::read_tick_duration_us_reflects_clock_updates ... ok
[INFO] [stdout] test engine::playback::tests::mute_clip_silences_its_channel ... ok
[INFO] [stdout] test engine::playback::tests::step_once_on_empty_evaluator_is_noop ... ok
[INFO] [stdout] test engine::playback::tests::replay_resets_tick_counter ... ok
[INFO] [stdout] test engine::playback::tests::shared_sinks_late_insert_dispatches_events ... ok
[INFO] [stdout] test engine::playback::tests::one_beat_emits_24_clocks ... ok
[INFO] [stdout] test engine::playback::tests::play_dispatches_midi_start_to_transport_device ... ok
[INFO] [stdout] test engine::playback::tests::step_once_without_contention_records_negligible_lock_wait ... ok
[INFO] [stdout] test engine::playback::tests::session_scene_advances_on_four_bar_grid_on_clip_update ... ok
[INFO] [stdout] test engine::playback::tests::play_then_step_sends_note_events ... ok
[INFO] [stdout] test engine::player::tests::build_events_by_tick_preserves_insertion_order_for_same_tick ... ok
[INFO] [stdout] test engine::player::tests::clip_player_commit_pending_aligns_arbitrary_offset ... ok
[INFO] [stdout] test engine::player::tests::clip_player_commit_pending_restarts_at_bar_head ... ok
[INFO] [stdout] test engine::playback::tests::session_loop_entry_does_not_advance_without_update ... ok
[INFO] [stdout] test engine::playback::tests::stop_dispatches_midi_stop_to_transport_device ... ok
[INFO] [stdout] test engine::playback::tests::transport_false_device_does_not_receive_transport ... ok
[INFO] [stdout] test engine::playback::tests::with_shared_sinks_runs_step_once ... ok
[INFO] [stdout] test engine::playback::tests::transport_to_unknown_device_is_dropped ... ok
[INFO] [stdout] test engine::playback::tests::stop_emits_all_notes_off_on_next_step ... ok
[INFO] [stdout] test engine::player::tests::clip_player_mute_suppresses_events ... ok
[INFO] [stdout] test engine::player::tests::advance_increments_tick ... ok
[INFO] [stdout] test engine::player::tests::clip_player_mute_does_not_stop_tick_advance ... ok
[INFO] [stdout] test engine::player::tests::clip_player_new_initializes_correctly ... ok
[INFO] [stdout] test engine::player::tests::clip_player_no_replace_normal_loop ... ok
[INFO] [stdout] test engine::player::tests::clip_player_not_paused_by_default ... ok
[INFO] [stdout] test engine::playback::tests::transport_false_device_does_not_receive_clock ... ok
[INFO] [stdout] test engine::player::tests::clip_player_pause_suppresses_events ... ok
[INFO] [stdout] test engine::playback::tests::stop_halts_clock_emission ... ok
[INFO] [stdout] test engine::player::tests::clip_player_pause_freezes_tick ... ok
[INFO] [stdout] test engine::player::tests::clip_player_not_muted_by_default ... ok
[INFO] [stdout] test engine::player::tests::clip_player_paused_and_muted_are_independent ... ok
[INFO] [stdout] test engine::player::tests::drum_mask_full_probability_always_triggers ... ok
[INFO] [stdout] test engine::player::tests::drum_mask_zero_probability_always_muted ... ok
[INFO] [stdout] test engine::player::tests::events_at_no_match_returns_empty ... ok
[INFO] [stdout] test engine::player::tests::is_done_when_not_looping_past_total ... ok
[INFO] [stdout] test engine::player::tests::events_at_empty_tick_returns_empty ... ok
[INFO] [stdout] test engine::player::tests::looping_wraps_via_modulo ... ok
[INFO] [stdout] test engine::player::tests::random_choice_keeps_exactly_one_candidate_per_loop ... ok
[INFO] [stdout] test engine::player::tests::non_looping_past_total_returns_empty ... ok
[INFO] [stdout] test engine::player::tests::reset_sets_tick_to_zero ... ok
[INFO] [stdout] test engine::player::tests::drum_mask_no_groups_no_op ... ok
[INFO] [stdout] test engine::player::tests::polyrhythm_different_total_ticks ... ok
[INFO] [stdout] test engine::player::tests::scene_player_add_clip ... ok
[INFO] [stdout] test engine::player::tests::scene_player_all_done ... ok
[INFO] [stdout] test engine::player::tests::random_choice_reroll_changes_per_loop ... ok
[INFO] [stdout] test engine::player::tests::replace_clip_rebuilds_events_index ... ok
[INFO] [stdout] test engine::player::tests::drum_mask_reroll_changes_per_loop ... ok
[INFO] [stdout] test engine::player::tests::random_choice_and_drum_mask_coexist ... ok
[INFO] [stdout] test engine::player::tests::is_done_false_when_looping ... ok
[INFO] [stdout] test engine::player::tests::events_at_returns_matching_events ... ok
[INFO] [stdout] test engine::player::tests::scene_player_commit_does_not_touch_non_pending ... ok
[INFO] [stdout] test engine::player::tests::scene_player_events_at_aggregates ... ok
[INFO] [stdout] test engine::player::tests::scene_player_mute_clip_targets_single_clip ... ok
[INFO] [stdout] test engine::player::tests::scene_player_pause_unknown_clip_is_noop ... ok
[INFO] [stdout] test engine::player::tests::scene_player_reset_all ... ok
[INFO] [stdout] test engine::player::tests::scene_player_replace_clip ... ok
[INFO] [stdout] test engine::player::tests::scene_player_resume_all_clips_clears_all_pauses ... ok
[INFO] [stdout] test engine::player::tests::scene_tick_length_empty_is_zero ... ok
[INFO] [stdout] test engine::player::tests::scene_player_unmute_all_clears_all_mutes ... ok
[INFO] [stdout] test engine::player::tests::scene_tick_length_polyrhythm_lcm ... ok
[INFO] [stdout] test engine::registry::tests::device_overwrite ... ok
[INFO] [stdout] test engine::registry::tests::get_device_unknown ... ok
[INFO] [stdout] test engine::registry::tests::include_not_registered ... ok
[INFO] [stdout] test engine::player::tests::scene_tick_length_single_clip ... ok
[INFO] [stdout] test engine::player::tests::scene_player_mute_unknown_clip_is_noop ... ok
[INFO] [stdout] test engine::registry::tests::new_is_empty ... ok
[INFO] [stdout] test engine::registry::tests::is_empty_after_register ... ok
[INFO] [stdout] test engine::player::tests::scene_player_new_empty ... ok
[INFO] [stdout] test engine::player::tests::scene_player_pause_all_clips_pauses_all ... ok
[INFO] [stdout] test engine::registry::tests::is_empty_on_new ... ok
[INFO] [stdout] test engine::player::tests::scene_player_pause_clip_targets_single_clip ... ok
[INFO] [stdout] test engine::registry::tests::play_not_registered ... ok
[INFO] [stdout] test engine::registry::tests::register_clip ... ok
[INFO] [stdout] test engine::registry::tests::register_device ... ok
[INFO] [stdout] test engine::registry::tests::register_kit ... ok
[INFO] [stdout] test engine::registry::tests::register_instrument ... ok
[INFO] [stdout] test engine::registry::tests::register_scale ... ok
[INFO] [stdout] test engine::registry::tests::register_scene ... ok
[INFO] [stdout] test engine::registry::tests::stop_not_registered ... ok
[INFO] [stdout] test engine::registry::tests::transport_cache_excludes_transport_disabled_device ... ok
[INFO] [stdout] test engine::registry::tests::register_tempo ... ok
[INFO] [stdout] test engine::registry::tests::transport_cache_includes_transport_enabled_device ... ok
[INFO] [stdout] test engine::registry::tests::transport_cache_rebuilds_on_device_overwrite ... ok
[INFO] [stdout] test engine::registry::tests::register_session ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_device ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_invalid_value ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_cc_number ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_channel ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_gate_normal_and_staccato ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_kit_channel ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_no_unresolved_refs_is_noop ... ok
[INFO] [stdout] test engine::registry::tests::register_var ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_undefined_variable ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_kit_velocity_refs ... ok
[INFO] [stdout] test engine::registry::tests::transport_cache_is_sorted_and_complete ... ok
[INFO] [stdout] test engine::resolver::tests::resolve_instrument_velocity_refs ... ok
[INFO] [stdout] test engine::scene_runner::tests::empty_scene_returns_empty_clips ... ok
[INFO] [stdout] test engine::scene_runner::tests::extract_tempo_change_absolute ... ok
[INFO] [stdout] test engine::scene_runner::tests::extract_tempo_change_last_wins ... ok
[INFO] [stdout] test engine::scene_runner::tests::extract_tempo_change_none_when_no_tempo_entry ... ok
[INFO] [stdout] test engine::scene_runner::tests::empty_candidates_no_clip_added ... ok
[INFO] [stdout] test engine::scene_runner::tests::extract_tempo_change_relative ... ok
[INFO] [stdout] test engine::scene_runner::tests::initial_muted_clips_collects_muted_entries ... ok
[INFO] [stdout] test engine::scene_runner::tests::initial_muted_clips_ignores_tempo ... ok
[INFO] [stdout] test engine::scene_runner::tests::initial_muted_clips_empty_when_no_muted_entries ... ok
[INFO] [stdout] test engine::scene_runner::tests::multiple_tempo_entries_last_wins ... ok
[INFO] [stdout] test engine::scene_runner::tests::probability_zero_never_selected ... ok
[INFO] [stdout] test engine::scene_runner::tests::relative_tempo_preserved ... ok
[INFO] [stdout] test engine::scene_runner::tests::shuffle_candidates_one_is_picked ... ok
[INFO] [stdout] test engine::scene_runner::tests::tempo_entry_sets_tempo_change ... ok
[INFO] [stdout] test engine::scene_runner::tests::mixed_clips_and_tempo ... ok
[INFO] [stdout] test engine::scene_runner::tests::single_clip_no_probability_always_selected ... ok
[INFO] [stdout] test engine::scene_runner::tests::weighted_shuffle_higher_weight_picked_more ... ok
[INFO] [stdout] test engine::scope::tests::block_scope_falls_back_to_global ... ok
[INFO] [stdout] test engine::scene_runner::tests::multiple_clips_independent ... ok
[INFO] [stdout] test engine::scene_runner::tests::initial_muted_clips_includes_all_shuffle_candidates ... ok
[INFO] [stdout] test engine::scene_runner::tests::probability_nine_almost_always_selected ... ok
[INFO] [stdout] test engine::scope::tests::cannot_pop_global ... ok
[INFO] [stdout] test engine::scope::tests::define_global_in_block ... ok
[INFO] [stdout] test engine::scope::tests::block_scope_shadows_global ... ok
[INFO] [stdout] test engine::scope::tests::depth_tracking ... ok
[INFO] [stdout] test engine::scope::tests::global_define_resolve ... ok
[INFO] [stdout] test engine::scope::tests::pop_restores_global ... ok
[INFO] [stdout] test engine::scope::tests::independent_blocks_isolated ... ok
[INFO] [stdout] test engine::scope::tests::undefined_returns_none ... ok
[INFO] [stdout] test engine::session_runner::tests::current_index_tracking ... ok
[INFO] [stdout] test engine::session_runner::tests::empty_session_returns_done ... ok
[INFO] [stdout] test engine::session_runner::tests::force_next_entry_at_last_entry ... ok
[INFO] [stdout] test engine::session_runner::tests::force_next_entry_skips_remaining_count ... ok
[INFO] [stdout] test engine::session_runner::tests::force_next_entry_breaks_loop_entry ... ok
[INFO] [stdout] test engine::session_runner::tests::has_forced_next_entry_predicts_force_outcome ... ok
[INFO] [stdout] test engine::session_runner::tests::count_1_same_as_once ... ok
[INFO] [stdout] test engine::session_runner::tests::mixed_repeat_modes ... ok
[INFO] [stdout] test engine::session_runner::tests::reset_returns_to_start ... ok
[INFO] [stdout] test engine::session_runner::tests::is_done_after_completion ... ok
[INFO] [stdout] test engine::session_runner::tests::session_looping ... ok
[INFO] [stdout] test engine::session_runner::tests::multiple_scenes_once ... ok
[INFO] [stdout] test engine::session_runner::tests::single_scene_once ... ok
[INFO] [stdout] test engine::session_runner::tests::single_scene_loop_never_done ... ok
[INFO] [stdout] test engine::shuffle::tests::probability_check_zero_always_false ... ok
[INFO] [stdout] test engine::state::tests::current_scene_name_returns_prev_while_paused ... ok
[INFO] [stdout] test engine::session_runner::tests::empty_session_is_done ... ok
[INFO] [stdout] test engine::shuffle::tests::weighted_pick_single_candidate_always_returns_it ... ok
[INFO] [stdout] test engine::shuffle::tests::weighted_pick_empty_returns_none ... ok
[INFO] [stdout] test engine::shuffle::tests::probability_check_nine_about_90_percent ... ok
[INFO] [stdout] test engine::session_runner::tests::single_scene_count_3 ... ok
[INFO] [stdout] test engine::shuffle::tests::probability_check_five_about_50_percent ... ok
[INFO] [stdout] test engine::shuffle::tests::probability_check_none_always_true ... ok
[INFO] [stdout] test engine::shuffle::tests::weighted_pick_3_to_1_ratio ... ok
[INFO] [stdout] test engine::state::tests::pause_named_matches_current_scene ... ok
[INFO] [stdout] test engine::shuffle::tests::weighted_pick_equal_weight_roughly_even ... ok
[INFO] [stdout] test engine::state::tests::pause_named_mismatch_is_noop ... ok
[INFO] [stdout] test engine::state::tests::force_advance_breaks_loop_entry ... ok
[INFO] [stdout] test engine::state::tests::force_advance_skips_remaining_count ... ok
[INFO] [stdout] test engine::state::tests::has_forced_next_session_entry_predicts_stop ... ok
[INFO] [stdout] test engine::state::tests::force_advance_noop_for_plain_scene ... ok
[INFO] [stdout] test engine::state::tests::pause_on_paused_is_noop ... ok
[INFO] [stdout] test engine::state::tests::pause_all_while_playing_scene_wraps_state ... ok
[INFO] [stdout] test engine::state::tests::force_advance_swaps_pending_session ... ok
[INFO] [stdout] test engine::state::tests::pause_on_stopped_is_noop ... ok
[INFO] [stdout] test engine::state::tests::play_scene_while_paused_clears_paused ... ok
[INFO] [stdout] test engine::state::tests::resume_all_restores_prev_state ... ok
[INFO] [stdout] test engine::state::tests::resume_named_matches_prev_scene ... ok
[INFO] [stdout] test engine::state::tests::resume_named_mismatch_is_noop ... ok
[INFO] [stdout] test engine::state::tests::resume_on_non_paused_is_noop ... ok
[INFO] [stdout] test engine::state::tests::scene_loop_complete_while_paused_continues ... ok
[INFO] [stdout] test engine::state::tests::session_entry_loop_stays_on_same_scene ... ok
[INFO] [stdout] test engine::state::tests::session_loop_never_completes ... ok
[INFO] [stdout] test engine::state::tests::session_next_action_contains_scene_name ... ok
[INFO] [stdout] test engine::state::tests::session_overwrite_different_name_ignored ... ok
[INFO] [stdout] test engine::state::tests::session_overwrite_swaps_at_next_entry ... ok
[INFO] [stdout] test engine::state::tests::session_overwrite_preserves_looping ... ok
[INFO] [stdout] test engine::state::tests::stop_all_while_paused_resets_state ... ok
[INFO] [stdout] test engine::state::tests::session_repeat_count_loops_entire_session ... ok
[INFO] [stdout] test engine::state::tests::test_current_scene_name ... ok
[INFO] [stdout] test engine::state::tests::stop_named_while_paused_matches_prev ... ok
[INFO] [stdout] test engine::state::tests::test_play_scene_loop ... ok
[INFO] [stdout] test engine::state::tests::test_play_scene_once ... ok
[INFO] [stdout] test engine::state::tests::test_from_repeat_spec ... ok
[INFO] [stdout] test engine::state::tests::test_play_scene_replaces_current ... ok
[INFO] [stdout] test engine::playback::tests::step_once_under_lock_contention_detects_delay ... ok
[INFO] [stdout] test engine::state::tests::test_play_session ... ok
[INFO] [stdout] test engine::state::tests::test_scene_loop_complete_when_stopped ... ok
[INFO] [stdout] test engine::state::tests::test_scene_loop_complete_count ... ok
[INFO] [stdout] test engine::state::tests::test_stop_all ... ok
[INFO] [stdout] test engine::state::tests::test_scene_loop_complete_once ... ok
[INFO] [stdout] test engine::state::tests::test_scene_loop_complete_loop ... ok
[INFO] [stdout] test engine::state::tests::test_stop_matching_target ... ok
[INFO] [stdout] test engine::state::tests::test_stop_non_matching_target ... ok
[INFO] [stdout] test engine::tick_loop::tests::muted_clip_events_are_not_dispatched ... ok
[INFO] [stdout] test engine::state::tests::test_new_is_stopped ... ok
[INFO] [stdout] test engine::state::tests::test_session_scene_advance ... ok
[INFO] [stdout] test engine::tick_loop::tests::scene_mut_mute_takes_effect_next_step ... ok
[INFO] [stdout] test engine::state::tests::test_stop_session_by_name ... ok
[INFO] [stdout] test engine::tick_loop::tests::step_on_empty_scene_is_noop_but_advances_tick ... ok
[INFO] [stdout] test engine::tick_loop::tests::step_dispatches_events_at_current_tick ... ok
[INFO] [stdout] test engine::watcher::tests::default_config ... ok
[INFO] [stdout] test engine::watcher::tests::file_change_event_equality ... ok
[INFO] [stdout] test engine::tick_loop::tests::step_sequence_preserves_tick_order ... ok
[INFO] [stdout] test error::tests::error_display ... ok
[INFO] [stdout] test generator::drum_classify::tests::label_strings_match_emitter_expectations ... ok
[INFO] [stdout] test generator::emitter::tests::bar_marker_aligns_to_bar_head_columns ... ok
[INFO] [stdout] test generator::emitter::tests::bar_markers_align_when_numbers_are_adjacent ... ok
[INFO] [stdout] test generator::emitter::tests::bar_markers_inside_loop_block_align ... ok
[INFO] [stdout] test generator::emitter::tests::bars_per_marker_skips_intermediate_bars ... ok
[INFO] [stdout] test generator::drum_classify::tests::classify_does_not_exceed_five_voices ... ok
[INFO] [stdout] test engine::watcher::tests::watcher_on_valid_path_succeeds ... ok
[INFO] [stdout] test generator::emitter::tests::bars_per_marker_zero_disables_comments ... ok
[INFO] [stdout] test generator::drum_classify::tests::classify_handles_fewer_than_five_samples ... ok
[INFO] [stdout] test generator::drum_classify::tests::closed_hat_decays_faster_than_open_hat ... ok
[INFO] [stdout] test engine::watcher::tests::watcher_on_nonexistent_path_returns_error ... ok
[INFO] [stdout] test generator::emitter::tests::bar_marker_does_not_break_roundtrip ... ok
[INFO] [stdout] test generator::emitter::tests::bass_threshold_is_configurable ... ok
[INFO] [stdout] test generator::emitter::tests::comment_line_handles_adjacent_two_digit_markers ... ok
[INFO] [stdout] test generator::emitter::tests::chord_emitted_with_bracket_notation ... ok
[INFO] [stdout] test generator::drum_classify::tests::kick_has_high_low_freq_ratio ... ok
[INFO] [stdout] test engine::tick_loop::tests::run_for_advances_exact_tick_count ... ok
[INFO] [stdout] test generator::emitter::tests::drum_track_emits_tr808_step_sequencer ... ok
[INFO] [stdout] test generator::drum_classify::tests::classify_assigns_kick_to_low_freq_sample ... ok
[INFO] [stdout] test generator::emitter::tests::chord_inner_octave_partially_omitted ... ok
[INFO] [stdout] test generator::emitter::tests::drum_wraps_every_8_bars_with_backslash ... ok
[INFO] [stdout] test generator::emitter::tests::loop_block_expands_to_repeat_notation ... ok
[INFO] [stdout] test generator::emitter::tests::emit_includes_required_blocks ... ok
[INFO] [stdout] test generator::emitter::tests::melodic_clip_has_single_note ... ok
[INFO] [stdout] test generator::emitter::tests::drum_wrapped_row_round_trips_through_parser ... ok
[INFO] [stdout] test generator::emitter::tests::note_name_conversion_for_middle_c ... ok
[INFO] [stdout] test generator::emitter::tests::octave_shift_down_lowers_emitted_octave ... ok
[INFO] [stdout] test generator::emitter::tests::multiple_fm_tracks_get_numeric_suffix ... ok
[INFO] [stdout] test generator::emitter::tests::octave_shift_does_not_affect_drum_kit_notes ... ok
[INFO] [stdout] test generator::emitter::tests::low_track_named_bass_high_track_named_fm ... ok
[INFO] [stdout] test generator::quantize::tests::decompose_seven_sixteenths_is_dotted_quarter_plus_sixteenth ... ok
[INFO] [stdout] test generator::emitter::tests::rest_inserted_between_notes ... ok
[INFO] [stdout] test generator::quantize::tests::different_ppq_96 ... ok
[INFO] [stdout] test generator::emitter::tests::octave_shift_up_raises_emitted_octave ... ok
[INFO] [stdout] test generator::emitter::tests::melodic_wrapped_clip_round_trips_through_parser ... ok
[INFO] [stdout] test generator::emitter::tests::note_name_conversion_for_a4 ... ok
[INFO] [stdout] test generator::emitter::tests::melodic_wraps_every_8_bars ... ok
[INFO] [stdout] test generator::quantize::tests::five_sixteenths_decomposed_to_quarter_plus_sixteenth ... ok
[INFO] [stdout] test generator::quantize::tests::half_note_at_480_ppq ... ok
[INFO] [stdout] test generator::quantize::tests::quarter_note_at_480_ppq ... ok
[INFO] [stdout] test generator::quantize::tests::dotted_quarter_at_480_ppq ... ok
[INFO] [stdout] test generator::quantize::tests::sixteenth_note_at_480_ppq ... ok
[INFO] [stdout] test generator::quantize::tests::three_quarters_decomposed_to_dotted_half ... ok
[INFO] [stdout] test generator::quantize::tests::dotted_sixteenth_token_is_never_chosen ... ok
[INFO] [stdout] test generator::quantize::tests::three_sixteenths_decompose_to_dotted_eighth ... ok
[INFO] [stdout] test generator::quantize::tests::zero_ticks_rounds_up_to_one_sixteenth ... ok
[INFO] [stdout] test generator::quantize::tests::whole_note_at_480_ppq ... ok
[INFO] [stdout] test generator::readers::mdx::tests::parses_shift_jis_japanese_title ... ok
[INFO] [stdout] test generator::readers::mdx::tests::note_duration_uses_second_byte ... ok
[INFO] [stdout] test generator::readers::mdx::tests::opm_timer_b_to_bpm_uses_correct_formula ... ok
[INFO] [stdout] test generator::quantize::tests::eighth_note_at_480_ppq ... ok
[INFO] [stdout] test generator::quantize::tests::quantization_error_is_reported ... ok
[INFO] [stdout] test generator::emitter::tests::shorthand_emission_round_trips_to_same_notes ... ok
[INFO] [stdout] test generator::readers::mdx::tests::loop_block_with_count_2_is_emitted_for_any_loop ... ok
[INFO] [stdout] test generator::readers::mdx::tests::parses_title_and_one_channel ... ok
[INFO] [stdout] test generator::readers::mdx::tests::rest_byte_advances_cursor ... ok
[INFO] [stdout] test generator::readers::pdx::tests::adpcm_decode_is_deterministic_and_bounded ... ok
[INFO] [stdout] test generator::readers::mdx::tests::tempo_mode_byte_drives_bpm ... ok
[INFO] [stdout] test generator::readers::pdx::tests::decodes_single_sample_entry ... ok
[INFO] [stdout] test generator::readers::pdx::tests::bank_get_by_slot ... ok
[INFO] [stdout] test generator::readers::pdx::tests::empty_or_short_input_yields_empty_bank ... ok
[INFO] [stdout] test generator::readers::smf::tests::ch10_is_classified_as_drum ... ok
[INFO] [stdout] test generator::readers::pdx::tests::skips_out_of_range_entry ... ok
[INFO] [stdout] test generator::readers::smf::tests::rejects_smpte_timecode ... ok
[INFO] [stdout] test generator::readers::smf::tests::note_on_with_velocity_zero_treated_as_note_off ... ok
[INFO] [stdout] test generator::score::tests::track_holds_events_and_kind ... ok
[INFO] [stdout] test generator::score::tests::event_start_tick_handles_both_variants ... ok
[INFO] [stdout] test generator::readers::smf::tests::parses_ppq_tempo_and_time_signature ... ok
[INFO] [stdout] test generator::tests::detect_extension_is_case_insensitive ... ok
[INFO] [stdout] test generator::tests::detect_handles_short_file ... ok
[INFO] [stdout] test generator::tests::detect_no_extension_fails ... ok
[INFO] [stdout] test generator::readers::smf::tests::extracts_notes_with_correct_ticks ... ok
[INFO] [stdout] test generator::tests::detect_mdx_by_extension ... ok
[INFO] [stdout] test generator::tests::detect_smf_by_extension_only_fails_without_magic ... ok
[INFO] [stdout] test generator::tests::detect_smf_by_magic ... ok
[INFO] [stdout] test lsp::analyzer::tests::block_at_offset_after_last ... ok
[INFO] [stdout] test lsp::analyzer::tests::block_at_offset_middle ... ok
[INFO] [stdout] test lsp::analyzer::tests::block_at_offset_before_first ... ok
[INFO] [stdout] test lsp::analyzer::tests::blocks_length_matches ... ok
[INFO] [stdout] test generator::readers::mdx::tests::pcm_channel_builds_drum_track_with_pdx ... ok
[INFO] [stdout] test generator::score::tests::default_score_is_4_4_at_120_bpm_with_480_ppq ... ok
[INFO] [stdout] test generator::readers::mdx::tests::pcm_channel_without_pdx_yields_no_drum_track ... ok
[INFO] [stdout] test generator::tests::detect_unknown_extension_fails ... ok
[INFO] [stdout] test lsp::analyzer::tests::new_is_empty ... ok
[INFO] [stdout] test generator::tests::detect_smf_magic_wins_over_mdx_extension ... ok
[INFO] [stdout] test lsp::analyzer::tests::errors_from_invalid ... ok
[INFO] [stdout] test lsp::analyzer::tests::registry_has_var ... ok
[INFO] [stdout] test lsp::analyzer::tests::source_returns_current ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_device ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_include_sources_dedup ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_include_sources_empty ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_include_sources_multiple ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_include_sources_resolves_clip ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_with_tempo ... ok
[INFO] [stdout] test lsp::analyzer::tests::without_base_registry_update_resets ... ok
[INFO] [stdout] test lsp::completion::tests::diatonic_completions_kind_remains_chord_name ... ok
[INFO] [stdout] test lsp::completion::tests::midi_port_completions_maps_each_port_to_identifier_item ... ok
[INFO] [stdout] test lsp::completion::tests::midi_port_completions_preserves_input_order ... ok
[INFO] [stdout] test lsp::completion::tests::scale_note_completions_c_major_returns_7_in_order ... ok
[INFO] [stdout] test lsp::analyzer::tests::with_base_registry_preserves_definitions ... ok
[INFO] [stdout] test lsp::completion::tests::diatonic_completions_d_minor_labels_are_dsl_insertable ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_clears_errors ... ok
[INFO] [stdout] test lsp::analyzer::tests::update_replaces_previous ... ok
[INFO] [stdout] test engine::playback::tests::run_driver_with_shared_blocks_until_sink_inserted ... ok
[INFO] [stdout] test lsp::analyzer::tests::with_base_registry_source_overrides_base ... ok
[INFO] [stdout] test lsp::completion::tests::midi_port_completions_empty_input_returns_empty ... ok
[INFO] [stdout] test lsp::completion::tests::scale_note_completions_detail_mentions_scale ... ok
[INFO] [stdout] test lsp::completion::tests::test_device_body_completions_contains_port_and_transport ... ok
[INFO] [stdout] test lsp::completion::tests::test_diatonic_completions_c_major ... ok
[INFO] [stdout] test lsp::completion::tests::test_identifier_completions_empty ... ok
[INFO] [stdout] test lsp::completion::tests::scale_note_completions_c_minor_returns_natural_minor ... ok
[INFO] [stdout] test lsp::completion::tests::test_include_path_completions_nonexistent ... ok
[INFO] [stdout] test lsp::completion::tests::test_instrument_cc_empty ... ok
[INFO] [stdout] test lsp::completion::tests::test_keyword_completions_contains_device ... ok
[INFO] [stdout] test lsp::completion::tests::test_keyword_completions_contains_pause_resume ... ok
[INFO] [stdout] test lsp::completion::tests::test_instrument_cc_with_mappings ... ok
[INFO] [stdout] test lsp::completion::tests::test_note_completions_contains_flat ... ok
[INFO] [stdout] test lsp::completion::tests::test_note_completions_contains_sharp ... ok
[INFO] [stdout] test lsp::completion::tests::test_scene_body_keyword_completions_contains_mute ... ok
[INFO] [stdout] test lsp::completion::tests::test_note_completions_count ... ok
[INFO] [stdout] test lsp::completion::tests::test_scene_body_keyword_completions_excludes_unmute ... ok
[INFO] [stdout] test lsp::completion::tests::test_keyword_completions_count ... ok
[INFO] [stdout] test lsp::completion::tests::test_keyword_completions_contains_mute_unmute ... ok
[INFO] [stdout] test lsp::completion::tests::test_standard_cc_contains_modulation ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_after_block ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_skips_block_comment ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_no_braces ... ok
[INFO] [stdout] test lsp::completion::tests::test_include_path_completions_empty_dir ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_skips_line_comment ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_skips_string ... ok
[INFO] [stdout] test lsp::context::tests::build_completion_items_for_after_arp_comma_returns_resolutions ... ok
[INFO] [stdout] test lsp::context::tests::build_completion_items_for_scene_body_includes_mute_keyword ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_after_instrument_clip_local_scale_overrides_registry ... ok
[INFO] [stdout] test lsp::completion::tests::test_include_path_completions ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_after_instrument_excludes_instrument_names ... ok
[INFO] [stdout] test lsp::context::tests::build_completion_items_for_after_arp_open_returns_directions ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_after_instrument_falls_back_to_registry_scale ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_after_instrument_with_clip_local_scale_includes_scale_notes_and_diatonic ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_line_start_returns_only_instrument_names ... ok
[INFO] [stdout] test lsp::context::tests::build_pitched_clip_after_instrument_without_any_scale_uses_chromatic_only ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_arp_comma_no_space ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_arp_open ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_include ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_device_keyword ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_play_session ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_arp_open_with_whitespace ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_scale_keyword ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_scale_note ... ok
[INFO] [stdout] test error::tests::error_from_nom ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_play ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_arp_comma ... ok
[INFO] [stdout] test lsp::context::tests::ctx_clip_after_use ... ok
[INFO] [stdout] test engine::tick_loop::tests::paused_clip_events_are_not_dispatched_and_tick_frozen ... ok
[INFO] [stdout] test lsp::context::tests::ctx_clip_option_inside_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_stop ... ok
[INFO] [stdout] test lsp::context::tests::ctx_drum_clip_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_instrument_after_channel ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_var ... ok
[INFO] [stdout] test lsp::context::tests::ctx_device_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_instrument_after_gate_normal ... ok
[INFO] [stdout] test lsp::context::tests::ctx_clip_option ... ok
[INFO] [stdout] test engine::playback::tests::run_driver_with_shared_survives_tempo_change_and_keeps_dispatching ... ok
[INFO] [stdout] test lsp::context::tests::ctx_after_tempo_keyword ... ok
[INFO] [stdout] test lsp::context::tests::ctx_instrument_after_note ... ok
[INFO] [stdout] test lsp::context::tests::ctx_instrument_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_after_instrument_continues_for_subsequent_tokens ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_after_instrument_when_instrument_then_space ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_line_start ... ok
[INFO] [stdout] test lsp::context::tests::ctx_kit_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_line_start_while_typing_instrument_name ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_line_start_last_scale_wins ... ok
[INFO] [stdout] test lsp::context::tests::ctx_instrument_after_device ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_line_start_with_clip_local_scale_c_major ... ok
[INFO] [stdout] test lsp::context::tests::ctx_session_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_pitched_clip_line_start_with_bars_then_scale_d_minor ... ok
[INFO] [stdout] test lsp::context::tests::ctx_scene_body ... ok
[INFO] [stdout] test lsp::context::tests::ctx_kit_after_device ... ok
[INFO] [stdout] test lsp::context::tests::ctx_session_after_bracket ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_after_closed_bracket ... ok
[INFO] [stdout] test lsp::context::tests::ctx_scene_after_tempo ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_option_after_bars ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_option_after_bars_and_scale ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_option_scale_note ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_option_after_scale ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_empty ... ok
[INFO] [stdout] test lsp::context::tests::device_body_after_port_keyword_is_device_after_port ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_newline ... ok
[INFO] [stdout] test lsp::context::tests::device_body_at_line_start_is_device_body ... ok
[INFO] [stdout] test lsp::context::tests::device_body_with_partial_port_keyword_is_device_body ... ok
[INFO] [stdout] test lsp::context::tests::find_block_keyword_clip_with_options ... ok
[INFO] [stdout] test lsp::context::tests::find_block_keyword_session ... ok
[INFO] [stdout] test lsp::context::tests::find_block_keyword_scene ... ok
[INFO] [stdout] test lsp::context::tests::find_block_keyword_device ... ok
[INFO] [stdout] test lsp::context::tests::ctx_toplevel_clip_option_scale ... ok
[INFO] [stdout] test lsp::diagnostic::tests::arpeggio_with_chord_duration_no_diagnostic ... ok
[INFO] [stdout] test lsp::context::tests::offset_to_line_col_empty ... ok
[INFO] [stdout] test lsp::context::tests::offset_to_line_col_end ... ok
[INFO] [stdout] test lsp::context::tests::offset_to_line_col_middle_second_line ... ok
[INFO] [stdout] test lsp::context::tests::offset_to_line_col_second_line ... ok
[INFO] [stdout] test lsp::context::tests::offset_to_line_col_start ... ok
[INFO] [stdout] test lsp::context::tests::word_at_offset_middle ... ok
[INFO] [stdout] test lsp::diagnostic::tests::bare_pause_resume_not_diagnosed ... ok
[INFO] [stdout] test lsp::diagnostic::tests::arpeggio_with_resolution_no_diagnostic ... ok
[INFO] [stdout] test lsp::context::tests::word_at_offset_none_on_space ... ok
[INFO] [stdout] test lsp::diagnostic::tests::arpeggio_missing_duration_emits_error ... ok
[INFO] [stdout] test lsp::diagnostic::tests::chord_bracket_without_arpeggio_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::chord_name_arpeggio_missing_duration_emits_error ... ok
[INFO] [stdout] test lsp::diagnostic::tests::clip_refs_existing_instrument ... ok
[INFO] [stdout] test lsp::diagnostic::tests::chord_name_arpeggio_with_duration_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::device_connection_diagnostics_empty_errors_returns_empty ... ok
[INFO] [stdout] test lsp::diagnostic::tests::device_connection_diagnostics_ignores_non_device_blocks ... ok
[INFO] [stdout] test lsp::diagnostic::tests::clip_refs_missing_instrument ... ok
[INFO] [stderr] ALSA lib seq_hw.c:528:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
[INFO] [stdout] test lsp::diagnostic::tests::chord_name_arpeggio_with_resolution_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::device_connection_diagnostics_emits_error_for_failed_device ... ok
[INFO] [stdout] test lsp::diagnostic::tests::include_position_not_at_top_error ... ok
[INFO] [stdout] test lsp::diagnostic::tests::multiple_undefined_refs ... ok
[INFO] [stdout] test lsp::diagnostic::tests::device_connection_diagnostics_skips_devices_without_errors ... ok
[INFO] [stdout] test lsp::diagnostic::tests::from_parse_errors_converts ... ok
[INFO] [stdout] test lsp::diagnostic::tests::from_parse_errors_empty ... ok
[INFO] [stdout] test lsp::context::tests::build_completion_items_for_device_after_port_returns_midi_ports_or_empty ... ok
[INFO] [stdout] test lsp::diagnostic::tests::include_position_at_top_ok ... ok
[INFO] [stdout] test lsp::diagnostic::tests::include_position_multiple_at_top_ok ... ok
[INFO] [stdout] test lsp::diagnostic::tests::from_parse_errors_preserves_span_and_message ... ok
[INFO] [stdout] test lsp::diagnostic::tests::mute_with_defined_clip_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::mute_with_scene_name_warns ... ok
[INFO] [stdout] test lsp::diagnostic::tests::mute_with_unknown_target_warns ... ok
[INFO] [stdout] test lsp::diagnostic::tests::pause_with_defined_scene_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::resume_with_unknown_target_warns ... ok
[INFO] [stdout] test lsp::diagnostic::tests::session_refs_missing_scene ... ok
[INFO] [stdout] test lsp::diagnostic::tests::pause_with_clip_name_no_diagnostic ... ok
[INFO] [stdout] test lsp::diagnostic::tests::tempo_block_no_diagnostics ... ok
[INFO] [stdout] test lsp::diagnostic::tests::session_refs_existing_scene ... ok
[INFO] [stdout] test lsp::diagnostic::tests::unmute_with_unknown_target_warns ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_c_major_diatonic_count ... ok
[INFO] [stdout] test lsp::diagnostic::tests::pause_with_unknown_target_warns ... ok
[INFO] [stdout] test lsp::diagnostic::tests::scene_refs_existing_clip ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_a_minor_diatonic_labels_lowercase ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_d_minor_diatonic_labels_lowercase_with_flat ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_c_major_first_chord_meta ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_diatonic_always_7 ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_c_major_diatonic_labels_lowercase ... ok
[INFO] [stdout] test lsp::diagnostic::tests::undefined_refs_empty ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_dorian_intervals ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_note_to_semitone_b ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_note_to_semitone_c ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_note_to_semitone_cs ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_e_major_diatonic_uses_sharp ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_semitone_to_note_11 ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_note_to_semitone_eb ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_semitone_to_note_0 ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_scale_intervals_minor ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_scale_intervals_major ... ok
[INFO] [stdout] test lsp::diatonic::tests::test_semitone_to_note_1 ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_existing_clip_returns_span ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_existing_device_returns_name_span ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_in_empty_blocks_returns_none ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_non_existing_returns_none ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_instrument_by_name ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_scene_by_name ... ok
[INFO] [stdout] test lsp::goto_def::tests::find_var_by_name ... ok
[INFO] [stdout] test lsp::goto_def::tests::finds_first_matching_block ... ok
[INFO] [stdout] test lsp::goto_def::tests::returns_block_span_when_name_span_is_none ... ok
[INFO] [stdout] test lsp::hover::tests::clip_pitched_hover_shows_type ... ok
[INFO] [stdout] test lsp::hover::tests::device_hover_shows_port ... ok
[INFO] [stdout] test lsp::goto_def::tests::returns_name_span_when_available ... ok
[INFO] [stdout] test lsp::hover::tests::include_shows_path ... ok
[INFO] [stdout] test lsp::hover::tests::device_hover_shows_transport_false ... ok
[INFO] [stdout] test lsp::goto_def::tests::tempo_block_is_skipped ... ok
[INFO] [stdout] test lsp::hover::tests::instrument_hover_shows_channel_and_device ... ok
[INFO] [stdout] test lsp::hover::tests::play_returns_none ... ok
[INFO] [stdout] test lsp::hover::tests::instrument_hover_with_cc_mappings ... ok
[INFO] [stdout] test lsp::hover::tests::scene_hover_shows_entry_count ... ok
[INFO] [stdout] test lsp::hover::tests::mute_hover_shows_target ... ok
[INFO] [stdout] test lsp::hover::tests::scale_hover_shows_root_and_type ... ok
[INFO] [stdout] test lsp::hover::tests::kit_hover_shows_device_and_count ... ok
[INFO] [stdout] test lsp::hover::tests::stop_returns_none ... ok
[INFO] [stdout] test lsp::hover::tests::unmute_hover_shows_target ... ok
[INFO] [stdout] test lsp::span_parser::tests::block_comment_multiline_skipped ... ok
[INFO] [stdout] test lsp::hover::tests::session_hover_shows_entry_count ... ok
[INFO] [stdout] test lsp::hover::tests::tempo_hover_shows_value ... ok
[INFO] [stdout] test lsp::hover::tests::var_hover_shows_name_and_value ... ok
[INFO] [stdout] test lsp::span_parser::tests::block_comment_skipped ... ok
[INFO] [stdout] test lsp::span_parser::tests::clip_name_span ... ok
[INFO] [stdout] test lsp::span_parser::tests::clip_with_cc_time_automation ... ok
[INFO] [stdout] test lsp::span_parser::tests::comment_lines_skipped ... ok
[INFO] [stdout] test lsp::span_parser::tests::device_block_with_name_span ... ok
[INFO] [stdout] test lsp::span_parser::tests::error_message_generic_for_unknown_input ... ok
[INFO] [stdout] test lsp::span_parser::tests::error_message_includes_block_kind_and_snippet ... ok
[INFO] [stdout] test lsp::span_parser::tests::empty_source ... ok
[INFO] [stdout] test lsp::span_parser::tests::leading_trailing_whitespace ... ok
[INFO] [stdout] test lsp::span_parser::tests::error_message_excludes_full_source ... ok
[INFO] [stdout] test lsp::span_parser::tests::error_no_recovery ... ok
[INFO] [stdout] test lsp::span_parser::tests::mixed_comments_skipped ... ok
[INFO] [stdout] test lsp::span_parser::tests::multiple_blocks ... ok
[INFO] [stdout] test lsp::span_parser::tests::error_with_recovery ... ok
[INFO] [stdout] test lsp::span_parser::tests::clip_with_multiple_cc_patterns ... ok
[INFO] [stdout] test lsp::span_parser::tests::nested_block_comment_skipped ... ok
[INFO] [stdout] test lsp::span_parser::tests::scene_name_span ... ok
[INFO] [stdout] test lsp::span_parser::tests::single_tempo ... ok
[INFO] [stdout] test lsp::span_parser::tests::whitespace_only ... ok
[INFO] [stdout] test lsp::symbols::tests::empty_blocks_returns_empty_symbols ... ok
[INFO] [stdout] test lsp::symbols::tests::include_symbol_uses_path_as_name ... ok
[INFO] [stdout] test lsp::symbols::tests::mute_and_unmute_kinds ... ok
[INFO] [stdout] test lsp::symbols::tests::multiple_blocks_correct_count ... ok
[INFO] [stdout] test lsp::symbols::tests::play_and_stop_kinds ... ok
[INFO] [stdout] test lsp::symbols::tests::session_symbol ... ok
[INFO] [stdout] test lsp::symbols::tests::single_clip_symbol ... ok
[INFO] [stdout] test lsp::symbols::tests::single_device_symbol ... ok
[INFO] [stdout] test lsp::span_parser::tests::span_covers_full_block_text ... ok
[INFO] [stdout] test lsp::symbols::tests::symbols_preserve_name_span ... ok
[INFO] [stdout] test lsp::symbols::tests::symbols_preserve_span ... ok
[INFO] [stdout] test lsp::symbols::tests::var_symbol_kind ... ok
[INFO] [stdout] test midi::cc::tests::exponential_curve_below_linear ... ok
[INFO] [stdout] test lsp::symbols::tests::scale_symbol_kind ... ok
[INFO] [stdout] test lsp::symbols::tests::tempo_symbol_kind ... ok
[INFO] [stdout] test midi::cc::tests::exponential_reverse ... ok
[INFO] [stdout] test midi::cc::tests::exponential_steps_0 ... ok
[INFO] [stdout] test midi::cc::tests::exponential_steps_1 ... ok
[INFO] [stdout] test midi::cc::tests::exponential_steps_2 ... ok
[INFO] [stdout] test midi::cc::tests::linear_no_change ... ok
[INFO] [stdout] test lsp::span_parser::tests::tempo_has_no_name_span ... ok
[INFO] [stdout] test lsp::symbols::tests::single_scene_symbol ... ok
[INFO] [stdout] test midi::cc::tests::linear_reverse ... ok
[INFO] [stdout] test midi::cc::tests::linear_steps_1 ... ok
[INFO] [stdout] test midi::cc::tests::linear_steps_0 ... ok
[INFO] [stdout] test midi::cc::tests::linear_steps_2 ... ok
[INFO] [stdout] test midi::cc::tests::linear_steps_5 ... ok
[INFO] [stdout] test midi::chord::tests::add9 ... ok
[INFO] [stdout] test midi::chord::tests::aug_maj7 ... ok
[INFO] [stdout] test midi::cc::tests::linear_steps_3 ... ok
[INFO] [stdout] test midi::chord::tests::different_root_a_minor ... ok
[INFO] [stdout] test midi::chord::tests::dim7 ... ok
[INFO] [stdout] test midi::chord::tests::dim_triad ... ok
[INFO] [stdout] test midi::chord::tests::high_octave_clamps_to_127 ... ok
[INFO] [stdout] test midi::chord::tests::intervals_count_matches_notes_count ... ok
[INFO] [stdout] test midi::chord::tests::aug_triad ... ok
[INFO] [stdout] test midi::chord::tests::maj7 ... ok
[INFO] [stdout] test midi::chord::tests::major_triad ... ok
[INFO] [stdout] test midi::chord::tests::min7 ... ok
[INFO] [stdout] test midi::chord::tests::min7b5 ... ok
[INFO] [stdout] test midi::chord::tests::min13 ... ok
[INFO] [stdout] test midi::chord::tests::min9 ... ok
[INFO] [stdout] test midi::chord::tests::min_maj7 ... ok
[INFO] [stdout] test midi::chord::tests::minor_triad ... ok
[INFO] [stdout] test midi::chord::tests::min6 ... ok
[INFO] [stdout] test midi::chord::tests::sus4 ... ok
[INFO] [stdout] test midi::chord::tests::sixth ... ok
[INFO] [stdout] test midi::gate::tests::gate_100_percent_legato ... ok
[INFO] [stdout] test midi::chord::tests::thirteenth ... ok
[INFO] [stdout] test midi::chord::tests::ninth ... ok
[INFO] [stdout] test midi::gate::tests::gate_80_percent ... ok
[INFO] [stdout] test midi::gate::tests::gate_minimum_off_guarantee ... ok
[INFO] [stdout] test midi::chord::tests::sus2 ... ok
[INFO] [stdout] test midi::chord::tests::dom7 ... ok
[INFO] [stdout] test midi::gate::tests::gate_very_short_duration ... ok
[INFO] [stdout] test midi::input::tests::subscribe_unknown_port_returns_port_not_found ... ignored
[INFO] [stdout] test midi::message::tests::channel_15_boundary ... ok
[INFO] [stdout] test midi::message::tests::control_change ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_note_off ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_control_change ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_program_change ... ok
[INFO] [stdout] test midi::gate::tests::note_duration_eighth_at_120bpm ... ok
[INFO] [stdout] test midi::gate::tests::note_duration_dotted_quarter_at_120bpm ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_note_on_drum_ch9 ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_note_on ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_too_short_is_none ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_system_realtime ... ok
[INFO] [stdout] test midi::message::tests::note_on_ch0 ... ok
[INFO] [stdout] test midi::message::tests::from_bytes_unsupported_status_is_none ... ok
[INFO] [stdout] test midi::message::tests::note_on_drum_ch9 ... ok
[INFO] [stdout] test midi::gate::tests::note_duration_quarter_at_120bpm ... ok
[INFO] [stdout] test midi::message::tests::one_based_channel_10_yields_status_0x99 ... ok
[INFO] [stdout] test midi::message::tests::round_trip_note_on ... ok
[INFO] [stdout] test midi::message::tests::one_based_channel_1_yields_status_0x90 ... ok
[INFO] [stdout] test midi::message::tests::system_realtime_clock ... ok
[INFO] [stdout] test midi::message::tests::system_realtime_continue ... ok
[INFO] [stdout] test midi::message::tests::program_change ... ok
[INFO] [stdout] test midi::message::tests::note_off_ch0 ... ok
[INFO] [stdout] test midi::message::tests::system_realtime_start ... ok
[INFO] [stdout] test midi::message::tests::system_realtime_stop ... ok
[INFO] [stdout] test midi::monitor::tests::default_config_interval ... ok
[INFO] [stdout] test midi::monitor::tests::detect_changes_input_connected ... ok
[INFO] [stdout] test midi::monitor::tests::detect_changes_input_disconnected ... ok
[INFO] [stdout] test midi::monitor::tests::detect_changes_output_connected ... ok
[INFO] [stdout] test midi::monitor::tests::detect_changes_no_change ... ok
[INFO] [stdout] test midi::note::tests::boundary_b9 ... ok
[INFO] [stdout] test midi::note::tests::a4_is_69 ... ok
[INFO] [stdout] test lsp::completion::tests::scale_note_completions_sort_text_prefixed_for_top_priority ... ok
[INFO] [stdout] test midi::note::tests::c0_is_12 ... ok
[INFO] [stdout] test midi::note::tests::c4_is_60 ... ok
[INFO] [stdout] test midi::note::tests::enharmonic_cs_db ... ok
[INFO] [stdout] test midi::monitor::tests::detect_changes_output_disconnected ... ok
[INFO] [stdout] test midi::port::tests::connect_nonexistent_port_returns_error ... ignored
[INFO] [stdout] test midi::port::tests::list_input_ports_returns_ok ... ignored
[INFO] [stdout] test midi::note::tests::enharmonic_as_bb ... ok
[INFO] [stdout] test midi::note::tests::enharmonic_ds_eb ... ok
[INFO] [stdout] test midi::note::tests::enharmonic_fs_gb ... ok
[INFO] [stdout] test midi::note::tests::enharmonic_gs_ab ... ok
[INFO] [stdout] test midi::port::tests::list_ports_returns_ok ... ignored
[INFO] [stdout] test midi::note::tests::g9_is_127 ... ok
[INFO] [stdout] test lsp::completion::tests::scale_note_completions_kind_is_note_name ... ok
[INFO] [stdout] test midi::port::tests::port_manager_default_is_empty ... ok
[INFO] [stdout] test midi::port::tests::port_manager_disconnect_unknown_is_noop ... ok
[INFO] [stdout] test midi::port::tests::port_manager_is_connected_false_when_empty ... ok
[INFO] [stderr] ALSA lib seq_hw.c:528:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
[INFO] [stdout] test midi::note::tests::middle_c_neighbors ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_all_zero_all_false ... ok
[INFO] [stdout] test midi::port::tests::port_manager_new_is_empty ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_none_all_true ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_empty ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_shorter_probs_uses_none_for_missing ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_hundred_all_true ... ok
[INFO] [stdout] test midi::port::tests::port_manager_send_to_unknown_returns_error ... ok
[INFO] [stdout] test midi::probability::tests::apply_mask_length_matches_hits_len ... ok
[INFO] [stdout] test midi::probability::tests::fifty_triggers_about_50_percent ... ok
[INFO] [stdout] test midi::probability::tests::hundred_always_triggers ... ok
[INFO] [stdout] test midi::probability::tests::zero_never_triggers ... ok
[INFO] [stdout] test midi::transcribe::tests::bytes_to_dsl_end_to_end ... ok
[INFO] [stdout] test midi::transcribe::tests::message_to_dsl_note_on ... ok
[INFO] [stdout] test midi::transcribe::tests::message_to_dsl_note_on_velocity_zero_is_none ... ok
[INFO] [stdout] test midi::transcribe::tests::note_token_a4 ... ok
[INFO] [stdout] test midi::transcribe::tests::message_to_dsl_realtime_is_none ... ok
[INFO] [stdout] test midi::transcribe::tests::note_token_low_and_high ... ok
[INFO] [stdout] test midi::velocity::tests::clamp_max_valid ... ok
[INFO] [stdout] test midi::transcribe::tests::message_to_dsl_note_off_is_none ... ok
[INFO] [stdout] test midi::transcribe::tests::note_token_sharp ... ok
[INFO] [stdout] test midi::probability::tests::ninety_triggers_about_90_percent ... ok
[INFO] [stdout] test midi::transcribe::tests::note_token_middle_c ... ok
[INFO] [stdout] test midi::probability::tests::none_always_triggers ... ok
[INFO] [stdout] test midi::transcribe::tests::message_to_dsl_cc_is_none ... ok
[INFO] [stdout] test midi::probability::tests::ten_triggers_about_10_percent ... ok
[INFO] [stdout] test midi::velocity::tests::clamp_over_max ... ok
[INFO] [stdout] test midi::velocity::tests::clamp_mid ... ok
[INFO] [stdout] test midi::velocity::tests::clamp_zero ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_auto_total_rounds_up_to_bar ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_absent_is_identity ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_to_bar1_rewinds_and_overwrites ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_total_pads_trailing_with_skip ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_to_bar2_pads_prefix ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_absent_is_identity ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_zero_is_error ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_at_exact_boundary_is_noop ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_with_pipe_left_is_error ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_multiple_segments_are_independent ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_passes_through_bar_jump_tokens ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_pads_short_to_next_beat_boundary ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipeline_pipe_then_bar_jump ... ok
[INFO] [stdout] test parser::cell_normalize::tests::pipe_truncates_overrun_to_previous_beat_boundary ... ok
[INFO] [stdout] test parser::cell_normalize::tests::bar_jump_total_truncates_excess ... ok
[INFO] [stdout] test parser::clip::tests::drum_probability_row_tiled_to_hits_via_parse ... ok
[INFO] [stdout] test parser::clip::tests::repetition_content_preserves_arpeggio ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_resolution_4_is_valid ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_clip_with_cc_time ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_row_backslash_continuation_three_lines ... ok
[INFO] [stdout] test parser::clip::tests::test_clip_no_options ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_row_backslash_with_trailing_space ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_row_pipe_truncates_overrun ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_row_backslash_continuation ... ok
[INFO] [stdout] test parser::clip::tests::repetition_content_supports_nested_group_with_arp ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_resolution_below_4_is_parse_error_not_panic ... ok
[INFO] [stdout] test parser::clip::tests::test_drum_row_with_pipe_and_bar_jump ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_chord_name ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_chord_name_with_arpeggio ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_chord_name_with_arpeggio_no_resolution ... ok
[INFO] [stdout] test parser::clip::tests::test_multiline_pitched ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_clip_with_cc_step ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_trailing_pipe_snap ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_clip_with_cc_time ... ok
[INFO] [stdout] test parser::clip::tests::tile_probability_longer_is_truncated ... ok
[INFO] [stdout] test parser::clip::tests::test_simple_pitched_clip ... ok
[INFO] [stdout] test parser::clip::tests::tile_probability_same_length_unchanged ... ok
[INFO] [stdout] test parser::clip::tests::tile_probability_empty_fills_with_100 ... ok
[INFO] [stdout] test parser::clip::tests::test_pitched_pipe_snap ... ok
[INFO] [stdout] test parser::clip::tests::tile_probability_shorter_is_repeated ... ok
[INFO] [stdout] test parser::clip::tests::test_simple_drum_clip ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_random_8 ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_comma_only_whitespace_fails ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_down_16 ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_down_no_resolution_with_spaces ... ok
[INFO] [stdout] test parser::clip::tests::tile_probability_non_divisible_length ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_trailing_comma_fails ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_up_16 ... ok
[INFO] [stdout] test lsp::context::tests::brace_depth_inside_block ... ok
[INFO] [stdout] test lsp::completion::tests::test_identifier_completions_count ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_normal_with_space ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_up_no_resolution ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_staccato_and_gate_conflict_is_error_order1 ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_with_spaces ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_empty_suffix_is_normal_no_velocity ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_gate_direct ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_gate_direct_with_space ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_gate_duplicate_is_error ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_gate_then_velocity ... ok
[INFO] [stdout] test parser::clip_arpeggio::tests::test_arp_updown_16 ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_normal_empty ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_staccato ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_staccato_and_gate_conflict_is_error_order2 ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_staccato_then_velocity ... ok
[INFO] [stdout] test lsp::diagnostic::tests::scene_refs_missing_clip ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_duplicate_is_error ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_only_normal_articulation ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_127 ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_only ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_then_staccato ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_staccato_duplicate_is_error ... ok
[INFO] [stdout] test parser::clip_bar_jump::tests::test_bar_jump_1 ... ok
[INFO] [stdout] test parser::clip_bar_jump::tests::test_bar_jump_3 ... ok
[INFO] [stdout] test parser::clip_cc::tests::cc_repetition_grouping_no_count ... ok
[INFO] [stdout] test parser::clip_articulation::tests::test_velocity_then_gate ... ok
[INFO] [stdout] test parser::clip_cc::tests::cc_repetition_nested ... ok
[INFO] [stdout] test parser::clip_cc::tests::cc_repetition_keeps_numeric_boundary ... ok
[INFO] [stdout] test parser::clip_cc::tests::parse_step_with_meta_tokens ... ok
[INFO] [stdout] test parser::clip_cc::tests::parse_step_repetition_expanded ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_cc_target ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_full_step_line ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_full_time_line ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_time_segment_exp ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_time_point ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_time_segment_no_interp ... ok
[INFO] [stdout] test parser::clip_cc::tests::test_time_segment_linear ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_bar_jump_without_number_is_error ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_bar_jump ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_dot_becomes_none ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_consecutive_meta_tokens ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_pipe ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_unknown_char_is_error ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_basic ... ok
[INFO] [stdout] test parser::clip_cc::tests::tokenize_out_of_range_is_error ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_multiline_around_star ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_grouping_no_count ... ok
[INFO] [stderr] ALSA lib seq_hw.c:528:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
[INFO] [stderr] ALSA lib seq_hw.c:528:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
[INFO] [stdout] test parser::clip_cc::tests::tokenize_numbers_only ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_multiple ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_probability ... ok
[INFO] [stdout] test parser::clip_drum::tests::find_innermost_paren_no_close ... ok
[INFO] [stdout] test parser::clip_bar_jump::tests::test_bar_jump_12 ... ok
[INFO] [stdout] test parser::clip_cc::tests::parse_step_numbers_only ... ok
[INFO] [stdout] test parser::clip_cc::tests::parse_step_stops_at_newline ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_no_repetition ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_space_between_close_paren_and_star ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_space_between_star_and_number ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_with_surrounding ... ok
[INFO] [stdout] test parser::clip_drum::tests::find_innermost_paren_nested ... ok
[INFO] [stdout] test parser::clip_drum::tests::find_innermost_paren_no_open ... ok
[INFO] [stdout] test parser::clip_drum::tests::expand_repetition_nested ... ok
[INFO] [stdout] test parser::clip_drum::tests::find_innermost_paren_none ... ok
[INFO] [stdout] test parser::clip_drum::tests::find_innermost_paren_simple ... ok
[INFO] [stdout] test parser::clip_drum::tests::hit_symbols_accent_ghost ... ok
[INFO] [stdout] test parser::clip_drum::tests::hit_symbols_spaces_stripped_before_parse ... ok
[INFO] [stdout] test parser::clip_drum::tests::probability_basic ... ok
[INFO] [stdout] test parser::clip_drum::tests::probability_full_row ... ok
[INFO] [stdout] test parser::clip_drum::tests::probability_unknown_char_returns_error ... ok
[INFO] [stdout] test parser::clip_drum::tests::probability_zero ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_bar_jump_single_digit ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_bar_jump_multi_digit_with_spaces ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_bare_gt_errors ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_empty_input ... ok
[INFO] [stdout] test parser::clip_drum::tests::probability_spaces_stripped_before_parse ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_probability_with_pipe_and_bar_jump ... ok
[INFO] [stdout] test parser::clip_note::tests::test_aug_maj7_alias ... ok
[INFO] [stdout] test parser::clip_note::tests::test_chord_full ... ok
[INFO] [stdout] test parser::clip_note::tests::test_chord_name_only ... ok
[INFO] [stdout] test parser::clip_note::tests::test_chord_oct_omitted ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_ignores_whitespace ... ok
[INFO] [stdout] test parser::clip_drum::tests::hit_symbols_basic ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_plain_cells ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_unknown_char_errors ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_probability_basic ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_probability_unknown_char_errors ... ok
[INFO] [stdout] test parser::clip_drum::tests::tokenize_drum_pipe ... ok
[INFO] [stdout] test parser::clip_note::tests::test_dotted ... ok
[INFO] [stdout] test parser::clip_note::tests::test_flat_chord ... ok
[INFO] [stdout] test parser::clip_note::tests::test_maj7_alias ... ok
[INFO] [stdout] test parser::clip_note::tests::test_min_maj7 ... ok
[INFO] [stdout] test parser::clip_note::tests::test_minor_chord ... ok
[INFO] [stdout] test parser::clip_note::tests::test_rest ... ok
[INFO] [stdout] test parser::clip_note::tests::test_rest_with_duration ... ok
[INFO] [stdout] test parser::clip_note::tests::test_single_both_omitted ... ok
[INFO] [stdout] test parser::clip_note::tests::test_single_full ... ok
[INFO] [stdout] test parser::clip_note::tests::test_single_oct_only ... ok
[INFO] [stdout] test parser::clip_options::tests::test_bars_and_scale ... ok
[INFO] [stdout] test parser::clip_options::tests::test_bars_only ... ok
[INFO] [stdout] test parser::clip_note::tests::test_single_oct_omitted ... ok
[INFO] [stdout] test parser::clip_options::tests::test_no_options ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_mixed_cancels ... ok
[INFO] [stdout] test parser::clip_options::tests::test_full_options ... ok
[INFO] [stdout] test parser::clip_options::tests::test_no_options_octave_shift_default_zero ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_mixed_nets_up ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_up ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_down ... ok
[INFO] [stdout] test parser::clip_options::tests::test_scale_only ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_with_other_options ... ok
[INFO] [stdout] test parser::clip_options::tests::test_stops_at_non_option ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_up_two ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_drum_repetition ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_separate_brackets_accumulate ... ok
[INFO] [stdout] test parser::clip_options::tests::test_reversed_order ... ok
[INFO] [stdout] test parser::clip_options::tests::test_octave_shift_stops_at_brace ... ok
[INFO] [stdout] test parser::clip_options::tests::test_time_only ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_grouping_does_not_consume_trailing_tokens ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_grouping_no_repeat_count ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_multiline_space_around_star ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_simple_repetition ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_nested_repetition ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_space_between_star_and_number ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::both_omitted ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_space_between_close_paren_and_star ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::full_specify ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::initial_state ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::octave_omitted_duration_changed ... ok
[INFO] [stdout] test parser::clip_repetition::tests::test_grouping_with_inner_whitespace ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::resolve_duration_only_carries_previous ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::dotted_note ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_deeply_nested ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::resolve_then_duration_only_preserves_octave ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_nested ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_unclosed_fails ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_simple ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::sequential_resolve ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_with_whitespace ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::octave_changed_duration_omitted ... ok
[INFO] [stdout] test parser::common::tests::test_identifier_starts_with_digit_fails ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_multiline ... ok
[INFO] [stdout] test parser::common::tests::test_identifier ... ok
[INFO] [stdout] test parser::clip_shorthand::tests::resolve_duration_only_updates_duration ... ok
[INFO] [stdout] test parser::common::tests::test_block_comment_with_line_comment_inside ... ok
[INFO] [stdout] test parser::common::tests::test_duration_dotted ... ok
[INFO] [stdout] test parser::common::tests::test_duration_simple ... ok
[INFO] [stdout] test parser::common::tests::test_mixed_line_and_block_comments ... ok
[INFO] [stdout] test parser::common::tests::test_note_name_sharp ... ok
[INFO] [stdout] test parser::common::tests::test_note_name_flat ... ok
[INFO] [stdout] test parser::common::tests::test_note_name_with_remaining ... ok
[INFO] [stdout] test parser::common::tests::test_note_name_single ... ok
[INFO] [stdout] test parser::common::tests::test_parse_u32 ... ok
[INFO] [stdout] test parser::common::tests::test_parse_u8_or_identifier_ident ... ok
[INFO] [stdout] test parser::common::tests::test_octave ... ok
[INFO] [stdout] test parser::common::tests::test_parse_u8_or_identifier_number ... ok
[INFO] [stdout] test parser::common::tests::test_path_string ... ok
[INFO] [stdout] test parser::common::tests::test_non_reserved_identifier ... ok
[INFO] [stdout] test parser::common::tests::test_path_string_empty_fails ... ok
[INFO] [stdout] test parser::common::tests::test_is_reserved ... ok
[INFO] [stdout] test parser::common::tests::test_quoted_string ... ok
[INFO] [stdout] test parser::common::tests::test_unquoted_value ... ok
[INFO] [stdout] test parser::common::tests::test_unquoted_value_empty_fails ... ok
[INFO] [stdout] test parser::common::tests::test_ws_empty ... ok
[INFO] [stdout] test parser::common::tests::test_ws_mixed ... ok
[INFO] [stdout] test parser::common::tests::test_ws_comment ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_basic ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_missing_port ... ok
[INFO] [stdout] test parser::common::tests::test_ws_spaces ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_multiple_independent ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_space_port_then_transport ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_transport_before_port ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_single_word_port ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_transport_invalid_value ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_transport_false ... ok
[INFO] [stdout] test parser::include::tests::include_relative_path ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_space_in_port ... ok
[INFO] [stdout] test parser::include::tests::include_trims_trailing_spaces ... ok
[INFO] [stdout] test parser::device::tests::test_parse_device_transport_true ... ok
[INFO] [stdout] test parser::instrument::tests::test_arbitrary_property_order ... ok
[INFO] [stdout] test parser::include::tests::include_directory_path ... ok
[INFO] [stdout] test parser::include::tests::include_no_trailing_newline ... ok
[INFO] [stdout] test parser::instrument::tests::test_channel_seventeen_is_rejected ... ok
[INFO] [stdout] test parser::instrument::tests::test_channel_zero_is_rejected ... ok
[INFO] [stdout] test parser::instrument::tests::test_channel_sixteen_boundary ... ok
[INFO] [stdout] test parser::instrument::tests::test_drum_instrument_with_note ... ok
[INFO] [stdout] test parser::instrument::tests::test_full_instrument ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_cc_var_ref ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_no_local_vars ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_device_var_ref ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_local_vars ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_channel_var_ref ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_multiple_local_vars ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_velocity_literals ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_velocity_var_refs ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_without_velocity ... ok
[INFO] [stdout] test parser::instrument::tests::test_minimal_instrument ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_instrument_with_gate_var_refs ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_instrument_with_velocity_literals ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_instrument_with_velocity_var_refs ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_instrument_with_channel_var_ref ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_channel_zero_is_rejected ... ok
[INFO] [stdout] test parser::instrument::tests::test_instrument_with_gate_var_refs ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_channel_seventeen_is_rejected ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_with_mixed_separators ... ok
[INFO] [stdout] test parser::kit::tests::test_full_kit_with_multiple_instruments ... ok
[INFO] [stdout] test parser::kit::tests::test_kit_with_newline_separated_props ... ok
[INFO] [stdout] test parser::kit::tests::test_minimal_instrument ... ok
[INFO] [stdout] test parser::kit::tests::test_parse_instrument_note ... ok
[INFO] [stdout] test parser::playback::tests::mute_with_target ... ok
[INFO] [stdout] test parser::playback::tests::pause_scene_name ... ok
[INFO] [stdout] test parser::playback::tests::pause_named ... ok
[INFO] [stdout] test parser::playback::tests::mute_without_target_fails ... ok
[INFO] [stdout] test parser::playback::tests::play_scene_once ... ok
[INFO] [stdout] test parser::playback::tests::play_session_loop ... ok
[INFO] [stdout] test parser::playback::tests::play_scene_repeat ... ok
[INFO] [stdout] test parser::playback::tests::play_session_repeat ... ok
[INFO] [stdout] test parser::playback::tests::resume_named ... ok
[INFO] [stdout] test parser::playback::tests::play_scene_loop ... ok
[INFO] [stdout] test parser::playback::tests::play_session_once ... ok
[INFO] [stdout] test parser::playback::tests::pause_all ... ok
[INFO] [stdout] test parser::playback::tests::resume_all ... ok
[INFO] [stdout] test parser::playback::tests::stop_specific ... ok
[INFO] [stdout] test parser::playback::tests::resume_session_name ... ok
[INFO] [stdout] test parser::playback::tests::unmute_with_target ... ok
[INFO] [stdout] test parser::kit::tests::test_sharp_and_flat_notes ... ok
[INFO] [stdout] test parser::playback::tests::unmute_without_target_fails ... ok
[INFO] [stdout] test parser::scale::tests::test_scale_all_roots ... ok
[INFO] [stdout] test parser::playback::tests::stop_all ... ok
[INFO] [stdout] test parser::scale::tests::test_scale_all_types ... ok
[INFO] [stdout] test parser::scale::tests::test_scale_c_minor ... ok
[INFO] [stdout] test parser::scale::tests::test_scale_d_dorian ... ok
[INFO] [stdout] test parser::scene::tests::test_clip_with_probability ... ok
[INFO] [stdout] test parser::scene::tests::test_combined_scene ... ok
[INFO] [stdout] test parser::scene::tests::test_empty_scene ... ok
[INFO] [stdout] test parser::scene::tests::test_multiple_clips ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_with_probability ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_simple_clip ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_with_weighted_shuffle_and_probability ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_mixed_in_scene ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_in_identifier_is_not_prefix ... ok
[INFO] [stdout] test parser::scene::tests::test_shuffle_with_probability ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_without_clip_is_error ... ok
[INFO] [stdout] test parser::scene::tests::test_three_way_shuffle ... ok
[INFO] [stdout] test parser::scene::tests::test_tempo_relative_positive ... ok
[INFO] [stdout] test parser::scene::tests::test_tempo_relative_negative ... ok
[INFO] [stdout] test parser::scene::tests::test_tempo_absolute ... ok
[INFO] [stdout] test parser::scene::tests::test_mute_prefix_with_shuffle ... ok
[INFO] [stdout] test parser::scene::tests::test_shuffle ... ok
[INFO] [stdout] test parser::session::tests::test_session_multiple_entries ... ok
[INFO] [stdout] test parser::session::tests::test_session_mixed_entries ... ok
[INFO] [stdout] test parser::scene::tests::test_simple_clip ... ok
[INFO] [stdout] test parser::scene::tests::test_weighted_shuffle ... ok
[INFO] [stdout] test parser::session::tests::test_session_with_loop ... ok
[INFO] [stdout] test parser::session::tests::test_simple_session_one_scene ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_absolute ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_absolute_140 ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_negative ... ok
[INFO] [stdout] test parser::session::tests::test_session_with_repeat ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_negative_with_space ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_positive ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_positive_space_between_sign_and_number ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_rejects_newline_after_sign ... ok
[INFO] [stdout] test parser::tests::test_parse_empty_source ... ok
[INFO] [stdout] test parser::tempo::tests::test_tempo_relative_positive_multiple_spaces_and_tabs ... ok
[INFO] [stdout] test parser::tests::test_parse_unmute_before_mute ... ok
[INFO] [stdout] test parser::var::tests::var_identifier_value ... ok
[INFO] [stdout] test parser::tests::test_parse_pause_resume_block ... ok
[INFO] [stdout] test parser::tests::test_parse_multiple_blocks ... ok
[INFO] [stdout] test parser::tests::test_parse_mute_unmute_block ... ok
[INFO] [stdout] test parser::var::tests::var_mute_unmute_reserved ... ok
[INFO] [stdout] test parser::tests::test_parse_source_with_pause_resume ... ok
[INFO] [stdout] test parser::var::tests::var_numeric_value ... ok
[INFO] [stdout] test parser::tests::test_parse_source_with_comments ... ok
[INFO] [stdout] test parser::tests::test_parse_single_tempo ... ok
[INFO] [stdout] test parser::var::tests::var_reserved_word_as_name_fails ... ok
[INFO] [stdout] test parser::var::tests::var_pause_resume_reserved ... ok
[INFO] [stdout] test server::handler::tests::handle_list_ports ... ignored
[INFO] [stdout] test server::handler::tests::handle_eval_parse_error ... ok
[INFO] [stdout] test server::handler::tests::handle_eval_success ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_completion_toplevel ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_completion_does_not_emit_device_event ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_with_include_sources_resolves_clips ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_does_not_emit_device_event ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_goto_definition_device ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_document_symbols_tempo ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_without_include_sources_unchanged ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_document_symbols_does_not_emit_device_event ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_valid ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_goto_definition_does_not_emit_device_event ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_recovers_after_fix ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_list_ports_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_eval_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_completion_request ... ok
[INFO] [stdout] test server::handler::tests::handle_status ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_completion_request_with_include_sources ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_hover_does_not_emit_device_event ... ok
[INFO] [stdout] test server::handler::tests::handle_preload_skips_play_stop ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_diagnostics_broken_drum_resolution_does_not_panic ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_diagnostics_request ... ok
[INFO] [stdout] test server::handler::tests::handle_lsp_hover_tempo ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_goto_definition_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_hover_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_preload_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_document_symbols_request ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_lsp_diagnostics_request_with_include_sources ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_unknown_type_fails ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_unsubscribe_midi_in_request ... ok
[INFO] [stdout] test server::protocol::tests::lsp_response_fields ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_status_request ... ok
[INFO] [stdout] test server::handler::tests::handle_request_guard_preserves_normal_response ... ok
[INFO] [stdout] test server::protocol::tests::deserialize_subscribe_midi_in_request ... ok
[INFO] [stdout] test server::protocol::tests::ports_response_content ... ok
[INFO] [stdout] test server::protocol::tests::response_err_error_content ... ok
[INFO] [stdout] test server::protocol::tests::response_err_has_no_lsp ... ok
[INFO] [stdout] test server::protocol::tests::response_ok_has_no_lsp ... ok
[INFO] [stdout] test server::protocol::tests::response_ok_message_content ... ok
[INFO] [stdout] test server::protocol::tests::round_trip_midi_in_event ... ok
[INFO] [stdout] test server::protocol::tests::serialize_lsp_completion_response_with_sort_text ... ok
[INFO] [stdout] test server::protocol::tests::serialize_lsp_completion_response ... ok
[INFO] [stdout] test server::protocol::tests::serialize_ok_response ... ok
[INFO] [stdout] test server::protocol::tests::serialize_err_response ... ok
[INFO] [stderr] ALSA lib seq_hw.c:528:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
[INFO] [stdout] test server::tests::unsubscribe_midi_in_is_idempotent_success ... ok
[INFO] [stdout] test server::tests::server_accepts_eval_request ... ok
[INFO] [stdout] test server::tests::server_handles_invalid_json ... ok
[INFO] [stdout] test midi::monitor::tests::run_port_monitor_abort ... ok
[INFO] [stdout] test server::tests::subscribe_midi_in_bad_port_returns_error ... ok
[INFO] [stdout] test server::protocol::tests::serialize_ports_response ... ok
[INFO] [stdout] test server::protocol::tests::serialize_midi_in_event ... ok
[INFO] [stdout] test parser::clip_drum::tests::hit_symbols_unknown_char_returns_error ... ok
[INFO] [stdout] test server::handler::tests::spawned_panic_is_caught_as_join_error ... ok
[INFO] [stdout] test engine::playback::tests::lock_contention_during_playback_increases_tick_jitter ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1257 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.66s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lcvgc-1f56dabf70773e38)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test cli::tests::test_file_option ... ok
[INFO] [stdout] test cli::tests::test_all_options ... ok
[INFO] [stdout] test cli::tests::test_default_args ... ok
[INFO] [stdout] test cli::tests::test_no_args_uses_defaults ... ok
[INFO] [stdout] test cli::tests::test_version_contains_git_hash ... ok
[INFO] [stdout] test win_timer::tests::acquire_returns_guard_and_drops_cleanly ... ok
[INFO] [stdout] test win_timer::tests::disable_throttling_does_not_panic ... ok
[INFO] [stdout] test win_timer::tests::log_windows_build_info_does_not_panic ... ok
[INFO] [stdout] test win_timer::tests::log_current_timer_resolution_does_not_panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/lcvgc-gen.rs (/opt/rustwide/target/debug/deps/lcvgc_gen-48bae48d295c4cc7)
[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] [stderr]      Running tests/apply_device_event.rs (/opt/rustwide/target/debug/deps/apply_device_event-551281439f714c94)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test apply_inserts_new_sink_and_notifies ... ok
[INFO] [stdout] test apply_returns_connected_outcome_on_success ... ok
[INFO] [stdout] test apply_with_failing_builder_logs_warn_and_clears_sink ... ok
[INFO] [stdout] test apply_to_existing_sink_sends_all_notes_off_to_old_sink ... ok
[INFO] [stdout] test apply_returns_failed_outcome_on_build_error ... ok
[INFO] [stdout] test apply_emits_no_notify_on_build_failure ... ok
[INFO] [stderr]      Running tests/device_event_receiver.rs (/opt/rustwide/target/debug/deps/device_event_receiver-3ac20264486f915c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test dropping_tx_terminates_receiver ... ok
[INFO] [stdout] test same_name_different_port_rebuilds_sink ... ok
[INFO] [stdout] test initial_ports_does_not_block_different_port ... ok
[INFO] [stdout] test evaluator_emits_upsert_received_and_sink_inserted ... ok
[INFO] [stdout] test successful_build_clears_existing_device_connection_error ... ok
[INFO] [stdout] test same_name_same_port_redefinition_is_noop ... ok
[INFO] [stdout] test initial_ports_dedups_startup_event ... ok
[INFO] [stdout] test failed_build_records_device_connection_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generator_integration.rs (/opt/rustwide/target/debug/deps/generator_integration-95efc0b0cd40726a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test input_format_from_str_recognizes_aliases ... ok
[INFO] [stdout] test smf_generated_dsl_parses ... ok
[INFO] [stdout] test mdx_generated_dsl_parses ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/include_integration.rs (/opt/rustwide/target/debug/deps/include_integration-7917ce0641815c45)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test include_single_file ... ok
[INFO] [stdout] test include_file_not_found ... ok
[INFO] [stdout] test include_circular_detection ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-19c03f03307e1476)
[INFO] [stdout] test include_direct_duplicate_skipped ... ok
[INFO] [stdout] test include_multiple_files_in_order ... ok
[INFO] [stdout] test include_diamond_dedup ... ok
[INFO] [stdout] test include_parse_error_propagates ... ok
[INFO] [stdout] test include_nested_two_levels ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test e2e_carry_over_continues_across_consecutive_lines ... ok
[INFO] [stdout] test e2e_carry_over_resets_after_dash_divider ... ok
[INFO] [stdout] test e2e_clip_octave_shift_up_raises_notes ... ok
[INFO] [stdout] test e2e_compiled_clip_produces_midi_messages ... ok
[INFO] [stdout] test e2e_clip_octave_shift_down_lowers_notes ... ok
[INFO] [stdout] test e2e_clip_octave_shift_two_up_with_other_options ... ok
[INFO] [stdout] test e2e_clip_registration_and_compile ... ok
[INFO] [stdout] test e2e_consecutive_same_instrument_lines_are_merged ... ok
[INFO] [stdout] test e2e_dash_divider_creates_parallel_layer ... ok
[INFO] [stdout] test e2e_dash_divider_in_drum_clip_is_noop ... ok
[INFO] [stdout] test e2e_drum_clip ... ok
[INFO] [stdout] test e2e_different_instrument_remains_parallel_layer ... ok
[INFO] [stdout] test e2e_drum_pattern_with_spaces ... ok
[INFO] [stdout] test e2e_pitched_repetition ... ok
[INFO] [stdout] test e2e_file_load ... ok
[INFO] [stdout] test e2e_tempo_and_device_registration ... ok
[INFO] [stdout] test e2e_pitched_repetition_state_carry ... ok
[INFO] [stdout] test e2e_scale_and_var_definition ... ok
[INFO] [stdout] test e2e_scene_and_session ... ok
[INFO] [stdout] test e2e_tempo_relative ... ok
[INFO] [stdout] test e2e_play_and_stop ... ok
[INFO] [stdout] test e2e_drum_repetition ... ok
[INFO] [stdout] test e2e_parse_error_returns_err ... ok
[INFO] [stdout] test e2e_drum_probability_with_pipe ... ok
[INFO] [stdout] test e2e_drum_probability_with_repetition ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/playback_lock_contention.rs (/opt/rustwide/target/debug/deps/playback_lock_contention-6acbb2ba337f1ec1)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test hot_reload_lock_contention_causes_noteon_stutter ... ok
[INFO] [stdout] test off_lock_eval_does_not_cause_noteon_stutter ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.59s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tempo_realtime.rs (/opt/rustwide/target/debug/deps/tempo_realtime-17ce6b6cf90ddfbb)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test driver_interval_scales_with_tempo ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/variable_expansion.rs (/opt/rustwide/target/debug/deps/variable_expansion-ef2de4ee52727d7d)
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.58s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test var_expansion_block_scope_shadowing ... ok
[INFO] [stdout] test var_expansion_channel ... ok
[INFO] [stdout] test var_expansion_gate_normal ... ok
[INFO] [stdout] test var_expansion_device ... ok
[INFO] [stdout] test var_expansion_global_scope_restored ... ok
[INFO] [stdout] test var_expansion_gate_staccato ... ok
[INFO] [stdout] test var_expansion_cc_number ... ok
[INFO] [stdout] test var_expansion_kit_channel ... ok
[INFO] [stdout] test var_expansion_kit_device ... ok
[INFO] [stdout] test var_expansion_multiple_fields ... ok
[INFO] [stdout] test var_expansion_invalid_value ... ok
[INFO] [stdout] test var_expansion_via_include ... ok
[INFO] [stderr]      Running tests/velocity_vn.rs (/opt/rustwide/target/debug/deps/velocity_vn-c822e9292a863ff6)
[INFO] [stdout] test var_expansion_undefined_variable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test staccato_and_gate_conflict_is_parse_error ... ok
[INFO] [stdout] test velocity_duplicate_is_parse_error ... ok
[INFO] [stdout] test velocity_default_is_100 ... ok
[INFO] [stdout] test velocity_order_independent_with_gate ... ok
[INFO] [stdout] test velocity_combined_with_other_suffixes ... ok
[INFO] [stdout] test velocity_per_note_override ... ok
[INFO] [stdout] test velocity_boundary_values ... ok
[INFO] [stdout] test velocity_order_independent_with_staccato ... ok
[INFO] [stdout] test velocity_on_chord_bracket ... ok
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lcvgc
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[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" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6", kill_on_drop: false }`
[INFO] [stdout] b785b143ae83d522e35fe542357d02b4cdfba742d0f7c6e52f3fd75eb9dd7ad6
