[INFO] cloning repository https://github.com/kalleeh/spark
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kalleeh/spark" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkalleeh%2Fspark", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkalleeh%2Fspark'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d8c61183d50d5c8ab14c1e9b667403ba1a08d425
[INFO] testing kalleeh/spark against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkalleeh%2Fspark" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/kalleeh/spark
[INFO] finished tweaking git repo https://github.com/kalleeh/spark
[INFO] tweaked toml for git repo https://github.com/kalleeh/spark written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kalleeh/spark on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kalleeh/spark 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cortex-m-rt-macros v0.7.5
[INFO] [stderr]   Downloaded vcell v0.1.3
[INFO] [stderr]   Downloaded volatile-register v0.2.2
[INFO] [stderr]   Downloaded embedded-hal-async v1.0.0
[INFO] [stderr]   Downloaded embedded-hal-nb v1.0.0
[INFO] [stderr]   Downloaded gcd v2.3.0
[INFO] [stderr]   Downloaded dasp_frame v0.11.0
[INFO] [stderr]   Downloaded linked_list_allocator v0.10.5
[INFO] [stderr]   Downloaded ogg v0.7.1
[INFO] [stderr]   Downloaded const-default v1.0.0
[INFO] [stderr]   Downloaded audrey v0.3.0
[INFO] [stderr]   Downloaded byte-slice-cast v1.2.3
[INFO] [stderr]   Downloaded audir-sles v0.1.0
[INFO] [stderr]   Downloaded embedded-io v0.7.1
[INFO] [stderr]   Downloaded lewton v0.9.4
[INFO] [stderr]   Downloaded mlua-sys v0.6.8
[INFO] [stderr]   Downloaded mlua v0.10.5
[INFO] [stderr]   Downloaded lalrpop v0.22.2
[INFO] [stderr]   Downloaded pio v0.3.0
[INFO] [stderr]   Downloaded display-interface-spi v0.5.0
[INFO] [stderr]   Downloaded quad-alsa-sys v0.3.2
[INFO] [stderr]   Downloaded fugit v0.3.9
[INFO] [stderr]   Downloaded rp-hal-common v0.1.0
[INFO] [stderr]   Downloaded rp235x-hal v0.4.0
[INFO] [stderr]   Downloaded rlsf v0.2.2
[INFO] [stderr]   Downloaded az v1.3.0
[INFO] [stderr]   Downloaded embedded-dma v0.2.0
[INFO] [stderr]   Downloaded frunk v0.4.4
[INFO] [stderr]   Downloaded pio-proc v0.3.0
[INFO] [stderr]   Downloaded cortex-m v0.7.7
[INFO] [stderr]   Downloaded libm v0.2.16
[INFO] [stderr]   Downloaded frunk_proc_macro_helpers v0.1.4
[INFO] [stderr]   Downloaded pio-parser v0.3.0
[INFO] [stderr]   Downloaded riscv v0.11.1
[INFO] [stderr]   Downloaded rp-binary-info v0.1.2
[INFO] [stderr]   Downloaded lua-src v547.0.0
[INFO] [stderr]   Downloaded embedded-graphics-core v0.4.0
[INFO] [stderr]   Downloaded term v1.2.1
[INFO] [stderr]   Downloaded embedded-alloc v0.6.0
[INFO] [stderr]   Downloaded display-interface v0.5.0
[INFO] [stderr]   Downloaded mipidsi v0.8.0
[INFO] [stderr]   Downloaded panic-halt v1.0.0
[INFO] [stderr]   Downloaded bitfield v0.14.0
[INFO] [stderr]   Downloaded ena v0.14.4
[INFO] [stderr]   Downloaded lalrpop-util v0.22.2
[INFO] [stderr]   Downloaded embedded-hal v1.0.0
[INFO] [stderr]   Downloaded quad-snd v0.2.8
[INFO] [stderr]   Downloaded svgbobdoc v0.3.0
[INFO] [stderr]   Downloaded luajit-src v210.5.12+a4f56a4
[INFO] [stderr]   Downloaded embedded-hal-bus v0.3.0
[INFO] [stderr]   Downloaded bitfield v0.13.2
[INFO] [stderr]   Downloaded bare-metal v0.2.5
[INFO] [stderr]   Downloaded rp235x-pac v0.2.0
[INFO] [stderr]   Downloaded embedded-hal v0.2.7
[INFO] [stderr]   Downloaded rp235x-hal-macros v0.1.0
[INFO] [stderr]   Downloaded cortex-m-rt v0.7.5
[INFO] [stderr]   Downloaded frunk_derives v0.4.4
[INFO] [stderr]   Downloaded ascii-canvas v4.0.0
[INFO] [stderr]   Downloaded pio-core v0.3.0
[INFO] [stderr]   Downloaded riscv-rt v0.12.2
[INFO] [stderr]   Downloaded nb v1.1.0
[INFO] [stderr]   Downloaded nb v0.1.3
[INFO] [stderr]   Downloaded riscv-rt-macros v0.2.2
[INFO] [stderr]   Downloaded usb-device v0.3.2
[INFO] [stderr]   Downloaded sha2-const-stable v0.1.0
[INFO] [stderr]   Downloaded frunk_core v0.4.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7773e7ca7f40c361fdfba8846f82f583416368c899ede99c4a7814001457b278
[INFO] running `Command { std: "docker" "start" "-a" "7773e7ca7f40c361fdfba8846f82f583416368c899ede99c4a7814001457b278", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7773e7ca7f40c361fdfba8846f82f583416368c899ede99c4a7814001457b278", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7773e7ca7f40c361fdfba8846f82f583416368c899ede99c4a7814001457b278", kill_on_drop: false }`
[INFO] [stdout] 7773e7ca7f40c361fdfba8846f82f583416368c899ede99c4a7814001457b278
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c89069fa385233f044f95b85b74b2c87b274c0ac57cd4334efafe26687439792
[INFO] running `Command { std: "docker" "start" "-a" "c89069fa385233f044f95b85b74b2c87b274c0ac57cd4334efafe26687439792", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.181
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling quad-alsa-sys v0.3.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ogg v0.7.1
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling hound v3.5.1
[INFO] [stderr]    Compiling quad-snd v0.2.8
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling dasp_frame v0.11.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling ttf-parser v0.21.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling glam v0.27.0
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]    Compiling quad-rand v0.2.3
[INFO] [stderr]    Compiling lewton v0.9.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling spark-core v0.1.0 (/opt/rustwide/workdir/spark-core)
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling lua-src v547.0.0
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling audrey v0.3.0
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling fontdue v0.9.3
[INFO] [stderr]    Compiling luajit-src v210.5.12+a4f56a4
[INFO] [stderr]    Compiling mlua-sys v0.6.8
[INFO] [stderr]    Compiling macroquad v0.4.14
[INFO] [stderr]    Compiling mlua v0.10.5
[INFO] [stderr]    Compiling spark-desktop v0.1.0 (/opt/rustwide/workdir/spark-desktop)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.15s
[INFO] running `Command { std: "docker" "inspect" "c89069fa385233f044f95b85b74b2c87b274c0ac57cd4334efafe26687439792", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c89069fa385233f044f95b85b74b2c87b274c0ac57cd4334efafe26687439792", kill_on_drop: false }`
[INFO] [stdout] c89069fa385233f044f95b85b74b2c87b274c0ac57cd4334efafe26687439792
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0af5bddc1ff6c25bd2cbb75aaaa48213dcf08241c4e5c080c93d92a8709c7ed8
[INFO] running `Command { std: "docker" "start" "-a" "0af5bddc1ff6c25bd2cbb75aaaa48213dcf08241c4e5c080c93d92a8709c7ed8", kill_on_drop: false }`
[INFO] [stderr]    Compiling spark-core v0.1.0 (/opt/rustwide/workdir/spark-core)
[INFO] [stderr]    Compiling spark-desktop v0.1.0 (/opt/rustwide/workdir/spark-desktop)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.86s
[INFO] running `Command { std: "docker" "inspect" "0af5bddc1ff6c25bd2cbb75aaaa48213dcf08241c4e5c080c93d92a8709c7ed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0af5bddc1ff6c25bd2cbb75aaaa48213dcf08241c4e5c080c93d92a8709c7ed8", kill_on_drop: false }`
[INFO] [stdout] 0af5bddc1ff6c25bd2cbb75aaaa48213dcf08241c4e5c080c93d92a8709c7ed8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ec94c1aea825b8fffe333eb4251b0696253feff5e10857898087b3dd9a24579e
[INFO] running `Command { std: "docker" "start" "-a" "ec94c1aea825b8fffe333eb4251b0696253feff5e10857898087b3dd9a24579e", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/spark_core-26a04f6bb92a044d)
[INFO] [stdout] 
[INFO] [stdout] running 200 tests
[INFO] [stdout] test audio::tests::test_effect_fade_in ... ok
[INFO] [stdout] test audio::tests::test_effect_arpeggio_slow ... ok
[INFO] [stdout] test audio::tests::test_effect_drop ... ok
[INFO] [stdout] test audio::tests::test_effect_arpeggio_fast ... ok
[INFO] [stdout] test audio::tests::test_effect_fade_out ... ok
[INFO] [stdout] test audio::tests::test_effect_slide ... ok
[INFO] [stdout] test audio::tests::test_effect_vibrato ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_silence_when_nothing_playing ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_produces_nonzero_with_sfx ... ok
[INFO] [stdout] test audio::tests::test_music_start_stop ... ok
[INFO] [stdout] test audio::tests::test_new_audio ... ok
[INFO] [stdout] test audio::tests::test_music_pattern ... ok
[INFO] [stdout] test audio::tests::test_samples_per_note_calculation ... ok
[INFO] [stdout] test audio::tests::test_sfx_stop_all ... ok
[INFO] [stdout] test audio::tests::test_sfx_completion_marks_channel_inactive ... ok
[INFO] [stdout] test audio::tests::test_music_triggers_sfx_and_produces_audio ... ok
[INFO] [stdout] test audio::tests::test_mixing_multiple_channels ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_all_waveforms_produce_output ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_volume_scaling ... ok
[INFO] [stdout] test audio::tests::test_waveform_enum_from_u8 ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_output_in_range ... ok
[INFO] [stdout] test audio::tests::test_waveform_samples ... ok
[INFO] [stdout] test audio::tests::test_sfx_auto_assign ... ok
[INFO] [stdout] test audio::tests::test_sfx_finishes ... ok
[INFO] [stdout] test cart::tests::test_parse_music_line_no_space ... ok
[INFO] [stdout] test audio::tests::test_pitch_to_freq ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_header_only ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_malformed_chars ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_max_pitch ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_note_encoding_pitches ... ok
[INFO] [stdout] test cart::tests::test_parse_cart_with_sfx_and_music ... ok
[INFO] [stdout] test cart::tests::test_parse_music_line_basic ... ok
[INFO] [stdout] test audio::tests::test_sfx_update_advances ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_section_overflow ... ok
[INFO] [stdout] test audio::tests::test_generate_samples_zero_volume_is_silent ... ok
[INFO] [stdout] test audio::tests::test_phase_stays_in_range ... ok
[INFO] [stdout] test cart::tests::test_parse_music_line_empty ... ok
[INFO] [stdout] test cart::tests::test_parse_music_line_flags ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_all_zeros ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_basic ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_line_empty ... ok
[INFO] [stdout] test audio::tests::test_query_helpers ... ok
[INFO] [stdout] test audio::tests::test_sfx_trigger_and_stop ... ok
[INFO] [stdout] test cart::tests::test_parse_sfx_waveform_values ... ok
[INFO] [stdout] test audio::tests::test_sfx_loop_in_generate_samples ... ok
[INFO] [stdout] test cart::tests::test_serialize_music_line_format ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_line_length ... ok
[INFO] [stdout] test cart::tests::test_serialize_music_roundtrip ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_note_max_values ... ok
[INFO] [stdout] test cart::tests::test_serialize_code_roundtrip ... ok
[INFO] [stdout] test console::tests::test_btn_default_player0_behavior ... ok
[INFO] [stdout] test cart::tests::test_serialize_flag_data_roundtrip ... ok
[INFO] [stdout] test cart::tests::test_serialize_starfall_roundtrip ... ok
[INFO] [stdout] test cart::tests::test_serialize_empty_cart_produces_valid_p8 ... ok
[INFO] [stdout] test console::tests::test_btn_player0_returns_player1_state ... ok
[INFO] [stdout] test cart::tests::test_serialize_double_roundtrip_stable ... ok
[INFO] [stdout] test console::tests::test_btn_out_of_bounds_player_returns_false ... ok
[INFO] [stdout] test cart::tests::test_serialize_empty_cart_roundtrip ... ok
[INFO] [stdout] test console::tests::test_btnp_out_of_bounds_player_returns_false ... ok
[INFO] [stdout] test console::tests::test_btnp_player0_vs_player1 ... ok
[INFO] [stdout] test cart::tests::test_serialize_map_line_length ... ok
[INFO] [stdout] test console::tests::test_cstore_out_of_bounds_rom_is_safe ... ok
[INFO] [stdout] test cart::tests::test_serialize_gfx_line_length ... ok
[INFO] [stdout] test cart::tests::test_serialize_full_roundtrip ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_multiple_notes ... ok
[INFO] [stdout] test cart::tests::test_serialize_map_data_roundtrip ... ok
[INFO] [stdout] test cart::tests::test_serialize_sprite_data_roundtrip ... ok
[INFO] [stdout] test console::tests::test_cstore_and_reload ... ok
[INFO] [stdout] test console::tests::test_btn_player1_returns_player2_state ... ok
[INFO] [stdout] test console::tests::test_btn_player_isolation ... ok
[INFO] [stdout] test console::tests::test_cstore_reload_different_addresses ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_note_all_waveforms ... ok
[INFO] [stdout] test console::tests::test_cursor_negative_values ... ok
[INFO] [stdout] test console::tests::test_cursor_sets_position ... ok
[INFO] [stdout] test console::tests::test_dget_default_is_zero ... ok
[INFO] [stdout] test console::tests::test_dset_and_dget ... ok
[INFO] [stdout] test console::tests::test_dget_out_of_bounds_returns_zero ... ok
[INFO] [stdout] test console::tests::test_fillp_pattern_bits_affect_drawing ... ok
[INFO] [stdout] test console::tests::test_fillp_zero_clears_pattern ... ok
[INFO] [stdout] test console::tests::test_fillp_transparency_mode ... ok
[INFO] [stdout] test console::tests::test_memcpy_zero_length ... ok
[INFO] [stdout] test console::tests::test_oval_draws_outline ... ok
[INFO] [stdout] test console::tests::test_oval_single_pixel ... ok
[INFO] [stdout] test console::tests::test_dset_out_of_bounds_is_noop ... ok
[INFO] [stdout] test console::tests::test_ovalfill_single_pixel ... ok
[INFO] [stdout] test console::tests::test_memcpy_within_same_region ... ok
[INFO] [stdout] test console::tests::test_memset ... ok
[INFO] [stdout] test console::tests::test_memset_zero_length ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_note_all_effects ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_note_all_volumes ... ok
[INFO] [stdout] test console::tests::test_memcpy_across_regions ... ok
[INFO] [stdout] test console::tests::test_ovalfill_fills_interior ... ok
[INFO] [stdout] test console::tests::test_peek4_reads_little_endian ... ok
[INFO] [stdout] test console::tests::test_peek_out_of_bounds ... ok
[INFO] [stdout] test console::tests::test_peek2_reads_little_endian ... ok
[INFO] [stdout] test console::tests::test_peek_poke_map_data ... ok
[INFO] [stdout] test console::tests::test_peek_poke_sprite_flags ... ok
[INFO] [stdout] test console::tests::test_peek_poke_user_data ... ok
[INFO] [stdout] test console::tests::test_poke2_peek2_round_trip ... ok
[INFO] [stdout] test console::tests::test_poke4_peek4_round_trip ... ok
[INFO] [stdout] test console::tests::test_poke4_writes_little_endian ... ok
[INFO] [stdout] test console::tests::test_poke_out_of_bounds_is_noop ... ok
[INFO] [stdout] test console::tests::test_peek_poke_screen_buffer ... ok
[INFO] [stdout] test console::tests::test_peek_poke_draw_state ... ok
[INFO] [stdout] test console::tests::test_reload_out_of_bounds_rom_is_safe ... ok
[INFO] [stdout] test console::tests::test_reset_draw_state_clears_fill_pattern ... ok
[INFO] [stdout] test console::tests::test_sprite_pixel_packing_round_trip ... ok
[INFO] [stdout] test console::tests::test_tline_basic_draws_pixels ... ok
[INFO] [stdout] test lua_preprocess::tests::test_backslash_in_comment_not_continuation ... ok
[INFO] [stdout] test lua_preprocess::tests::test_backslash_in_string_not_continuation ... ok
[INFO] [stdout] test lua_preprocess::tests::test_comment_preserved ... ok
[INFO] [stdout] test lua_preprocess::tests::test_compound_assign_table_member ... ok
[INFO] [stdout] test lua_preprocess::tests::test_concat_equals_with_spaces ... ok
[INFO] [stdout] test lua_preprocess::tests::test_concat_equals_real_world ... ok
[INFO] [stdout] test lua_preprocess::tests::test_div_equals_not_confused_with_floor_div ... ok
[INFO] [stdout] test lua_preprocess::tests::test_div_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_backslash_continuation_multiple ... ok
[INFO] [stdout] test lua_preprocess::tests::test_backslash_continuation_with_compound ... ok
[INFO] [stdout] test lua_preprocess::tests::test_concat_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_double_dash_is_comment_not_operator ... ok
[INFO] [stdout] test lua_preprocess::tests::test_empty_line ... ok
[INFO] [stdout] test lua_preprocess::tests::test_empty_multiline_string ... ok
[INFO] [stdout] test lua_preprocess::tests::test_escaped_quote_in_string ... ok
[INFO] [stdout] test lua_preprocess::tests::test_floor_division_not_comment ... ok
[INFO] [stdout] test lua_preprocess::tests::test_floor_division_passthrough ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_basic_replaces_line ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_content_is_preprocessed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_cycle_detection ... ok
[INFO] [stdout] test console::tests::test_tline_single_pixel ... ok
[INFO] [stdout] test lua_preprocess::tests::test_backslash_continuation ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_depth_limit ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_inside_comment_not_processed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_inside_multiline_string_not_processed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_inside_string_not_processed ... ok
[INFO] [stdout] test console::tests::test_peek_poke_sprite_sheet ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_recursive ... ok
[INFO] [stdout] test console::tests::test_poke2_writes_little_endian ... ok
[INFO] [stdout] test lua_preprocess::tests::test_compound_assign_after_string ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_resolver_returns_none ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_with_leading_whitespace ... ok
[INFO] [stdout] test lua_preprocess::tests::test_include_with_quotes ... ok
[INFO] [stdout] test lua_preprocess::tests::test_length_operator_passthrough ... ok
[INFO] [stdout] test lua_preprocess::tests::test_line_after_multiline_string_processed_normally ... ok
[INFO] [stdout] test lua_preprocess::tests::test_length_in_expression ... ok
[INFO] [stdout] test lua_preprocess::tests::test_minus_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_mod_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_mul_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_comment_same_line ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_mismatched_equals_not_closed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_open_inside_regular_string_not_triggered ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_basic_passes_through ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_comment_suppresses_transforms ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_comment_with_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_code_after_close ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_code_before_open ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_nested_brackets ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_no_transforms_inside ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_open_close_same_line ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_real_world_data ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_with_one_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_with_operators_that_look_like_transforms ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiline_string_with_two_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_no_false_compound_on_comparison ... ok
[INFO] [stdout] test lua_preprocess::tests::test_no_false_compound_on_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_normal_if_not_transformed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_not_equal ... ok
[INFO] [stdout] test lua_preprocess::tests::test_not_equal_multiple ... ok
[INFO] [stdout] test lua_preprocess::tests::test_operators_in_comment_not_transformed ... ok
[INFO] [stdout] test lua_preprocess::tests::test_operators_in_double_quoted_string ... ok
[INFO] [stdout] test lua_preprocess::tests::test_operators_in_single_quoted_string ... ok
[INFO] [stdout] test lua_preprocess::tests::test_pico8_cart_header_comment ... ok
[INFO] [stdout] test lua_preprocess::tests::test_not_equal_in_string_preserved ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiple_compound_on_same_line_in_code ... ok
[INFO] [stdout] test lua_preprocess::tests::test_multiple_transforms_same_line ... ok
[INFO] [stdout] test lua_preprocess::tests::test_print_shorthand_with_args ... ok
[INFO] [stdout] test lua_preprocess::tests::test_preprocess_pico8_backward_compatible ... ok
[INFO] [stdout] test lua_preprocess::tests::test_print_shorthand_simple ... ok
[INFO] [stdout] test lua_preprocess::tests::test_print_shorthand_expression ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_deeply_nested_parens ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_else_with_assignments ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_else_with_function_calls ... ok
[INFO] [stdout] test lua_preprocess::tests::test_print_shorthand_with_indent ... ok
[INFO] [stdout] test lua_preprocess::tests::test_real_world_bg_scroll ... ok
[INFO] [stdout] test lua_preprocess::tests::test_real_world_fire_timer ... ok
[INFO] [stdout] test lua_preprocess::tests::test_real_world_particle_friction ... ok
[INFO] [stdout] test lua_preprocess::tests::test_no_false_compound_on_gte ... ok
[INFO] [stdout] test lua_preprocess::tests::test_real_world_combo_display ... ok
[INFO] [stdout] test lua_preprocess::tests::test_real_world_score_display ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_basic ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_nested_parens ... ok
[INFO] [stdout] test lua_preprocess::tests::test_plus_equals ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_no_body_does_not_transform ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_preserves_indent ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_with_compound_in_body ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_with_function_call ... ok
[INFO] [stdout] test lua_preprocess::tests::test_then_in_string_does_not_prevent_shorthand_if ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_with_else ... ok
[INFO] [stdout] test lua_preprocess::tests::test_shorthand_if_with_string_containing_parens ... ok
[INFO] [stdout] test lua_preprocess::tests::test_whitespace_only_line ... ok
[INFO] [stdout] test cart::tests::test_serialize_sfx_note_all_pitches ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 200 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spark-a7ca99ecd9637bb3)
[INFO] [stdout] 
[INFO] [stdout] running 245 tests
[INFO] [stdout] test audio_output::tests::test_audio_output_new ... ok
[INFO] [stdout] test audio_output::tests::test_set_volume_clamps_high ... ok
[INFO] [stdout] test audio_output::tests::test_set_volume_default ... ok
[INFO] [stdout] test audio_output::tests::test_set_volume_clamps_low ... ok
[INFO] [stdout] test audio_output::tests::test_set_volume_normal ... ok
[INFO] [stdout] test audio_output::tests::test_set_volume_zero ... ok
[INFO] [stdout] test audio_output::tests::test_silence_detection_below_threshold ... ok
[INFO] [stdout] test audio_output::tests::test_silence_detection_negative_above_threshold ... ok
[INFO] [stdout] test audio_output::tests::test_silence_detection_above_threshold ... ok
[INFO] [stdout] test audio_output::tests::test_silence_detection_empty ... ok
[INFO] [stdout] test audio_output::tests::test_volume_scaling_half ... ok
[INFO] [stdout] test audio_output::tests::test_volume_scaling_full ... ok
[INFO] [stdout] test audio_output::tests::test_volume_scaling_with_clamp ... ok
[INFO] [stdout] test audio_output::tests::test_wav_buffer_reuse ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_clamps_out_of_range ... ok
[INFO] [stdout] test audio_output::tests::test_volume_scaling_zero ... ok
[INFO] [stdout] test audio_output::tests::test_wav_buffer_reuse_shrink ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_different_sample_rates ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_empty_samples ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_header_structure ... ok
[INFO] [stdout] test editor::tests::auto_indent_extra_after_function ... ok
[INFO] [stdout] test editor::tests::clipboard_copy_last_line ... ok
[INFO] [stdout] test editor::tests::auto_indent_extra_after_then ... ok
[INFO] [stdout] test editor::tests::clipboard_copy_first_line ... ok
[INFO] [stdout] test editor::tests::auto_indent_matches_previous_line ... ok
[INFO] [stdout] test editor::tests::clipboard_cut_pushes_undo ... ok
[INFO] [stdout] test editor::tests::clipboard_paste_empty_clipboard ... ok
[INFO] [stdout] test editor::tests::clipboard_cut_line_removes_line ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_second_line_middle ... ok
[INFO] [stdout] test editor::tests::auto_indent_extra_after_do ... ok
[INFO] [stdout] test editor::tests::clipboard_copy_line_basic ... ok
[INFO] [stdout] test editor::tests::clipboard_paste_pushes_undo ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_middle_of_first_line ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_end_of_first_line ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_second_line_start ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_past_end ... ok
[INFO] [stdout] test editor::tests::cursor_to_line_col_start ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_sample_values ... ok
[INFO] [stdout] test editor::tests::clipboard_paste_inserts_line ... ok
[INFO] [stdout] test editor::tests::delete_selection_all ... ok
[INFO] [stdout] test editor::tests::delete_selection_backward ... ok
[INFO] [stdout] test editor::tests::delete_selection_empty ... ok
[INFO] [stdout] test editor::tests::delete_selection_forward ... ok
[INFO] [stdout] test editor::tests::delete_selection_from_start ... ok
[INFO] [stdout] test editor::tests::delete_selection_with_newlines ... ok
[INFO] [stdout] test editor::tests::editor_action_enum_variants ... ok
[INFO] [stdout] test editor::tests::editor_action_save_cart_variant_exists ... ok
[INFO] [stdout] test editor::tests::editor_tab_equality ... ok
[INFO] [stdout] test editor::tests::editor_tab_music_exists ... ok
[INFO] [stdout] test editor::tests::indent_after_do ... ok
[INFO] [stdout] test editor::tests::indent_after_else ... ok
[INFO] [stdout] test editor::tests::indent_after_function_parens ... ok
[INFO] [stdout] test editor::tests::indent_after_repeat ... ok
[INFO] [stdout] test editor::tests::indent_after_then ... ok
[INFO] [stdout] test editor::tests::indent_after_then_with_comment ... ok
[INFO] [stdout] test editor::tests::leading_whitespace_none ... ok
[INFO] [stdout] test editor::tests::indent_after_function_with_args ... ok
[INFO] [stdout] test editor::tests::leading_whitespace_empty ... ok
[INFO] [stdout] test editor::tests::editor_tab_sfx_exists ... ok
[INFO] [stdout] test editor::tests::line_col_to_pos_basic ... ok
[INFO] [stdout] test editor::tests::line_col_to_pos_clamped_column ... ok
[INFO] [stdout] test editor::tests::line_col_to_pos_clamped_line ... ok
[INFO] [stdout] test editor::tests::leading_whitespace_all_spaces ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_basic ... ok
[INFO] [stdout] test editor::tests::line_col_to_pos_clamped_to_code_len ... ok
[INFO] [stdout] test editor::tests::line_col_to_pos_second_line ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_edge_pixel_within_cell ... ok
[INFO] [stdout] test editor::tests::leading_whitespace_spaces ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_map_boundary_y_overflow ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_last_valid_cell ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_map_boundary_overflow ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_out_of_bounds_below ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_with_scroll ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_out_of_bounds_left ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_out_of_bounds_right ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_out_of_bounds_above ... ok
[INFO] [stdout] test audio_output::tests::test_silence_detection_all_zero ... ok
[INFO] [stdout] test editor::tests::clipboard_cut_last_line ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_top_left_no_scroll ... ok
[INFO] [stdout] test editor::tests::new_edit_clears_redo_stack ... ok
[INFO] [stdout] test editor::tests::no_indent_after_end ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_above ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_first ... ok
[INFO] [stdout] test editor::tests::no_indent_partial_keyword ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_middle ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_last ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_negative_x ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_past_right_edge ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_within_swatch ... ok
[INFO] [stdout] test editor::tests::push_undo_no_duplicate ... ok
[INFO] [stdout] test editor::tests::redo_on_empty_stack ... ok
[INFO] [stdout] test editor::tests::map_view_to_tile_with_scroll_offset ... ok
[INFO] [stdout] test editor::tests::no_indent_after_plain_statement ... ok
[INFO] [stdout] test editor::tests::reset_clears_search_state ... ok
[INFO] [stdout] test editor::tests::search_cursor_jumps_to_match ... ok
[INFO] [stdout] test editor::tests::redo_after_undo ... ok
[INFO] [stdout] test editor::tests::search_multiline ... ok
[INFO] [stdout] test editor::tests::round_trip_cursor_line_col ... ok
[INFO] [stdout] test editor::tests::palette_click_to_color_below ... ok
[INFO] [stdout] test editor::tests::round_trip_line_col_cursor ... ok
[INFO] [stdout] test editor::tests::search_empty_query_returns_no_results ... ok
[INFO] [stdout] test editor::tests::search_next_wraps_around ... ok
[INFO] [stdout] test editor::tests::search_overlapping_not_found ... ok
[INFO] [stdout] test editor::tests::search_previous_wraps_around ... ok
[INFO] [stdout] test editor::tests::search_fields_default ... ok
[INFO] [stdout] test editor::tests::search_find_case_insensitive ... ok
[INFO] [stdout] test editor::tests::search_find_no_match ... ok
[INFO] [stdout] test editor::tests::search_empty_code ... ok
[INFO] [stdout] test editor::tests::search_find_occurrences_correct_byte_offsets ... ok
[INFO] [stdout] test editor::tests::search_single_char ... ok
[INFO] [stdout] test editor::tests::search_find_occurrences_basic ... ok
[INFO] [stdout] test editor::tests::search_update_results_empty_query ... ok
[INFO] [stdout] test editor::tests::selected_text_clamped_to_code_len ... ok
[INFO] [stdout] test editor::tests::selected_text_forward ... ok
[INFO] [stdout] test editor::tests::selected_text_backward ... ok
[INFO] [stdout] test editor::tests::selected_text_full ... ok
[INFO] [stdout] test editor::tests::selection_range_backward ... ok
[INFO] [stdout] test editor::tests::selection_range_forward ... ok
[INFO] [stdout] test editor::tests::selected_text_empty ... ok
[INFO] [stdout] test editor::tests::selected_text_with_newline ... ok
[INFO] [stdout] test audio_output::tests::test_wav_encoding_large_buffer ... ok
[INFO] [stdout] test editor::tests::selection_cleared_on_construction ... ok
[INFO] [stdout] test editor::tests::search_update_results_populates ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_outside_left ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_outside_right ... ok
[INFO] [stdout] test editor::tests::selection_range_same ... ok
[INFO] [stdout] test editor::tests::selection_range_zero ... ok
[INFO] [stdout] test editor::tests::selection_start_field_set_and_cleared ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_bottom_right ... ok
[INFO] [stdout] test editor::tests::sfx_pitch_to_y_max_at_top ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_column_boundaries ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_top_left ... ok
[INFO] [stdout] test editor::tests::sfx_pitch_to_y_within_bounds ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_outside_above ... ok
[INFO] [stdout] test editor::tests::sfx_pitch_to_y_monotonic ... ok
[INFO] [stdout] test editor::tests::sfx_pitch_to_y_zero_at_bottom ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_outside_below ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_last_valid ... ok
[INFO] [stdout] test editor::tests::sfx_click_to_note_outside_below ... ok
[INFO] [stdout] test editor::tests::split_lines_trailing_newline ... ok
[INFO] [stdout] test editor::tests::sprite_origin_index_0 ... ok
[INFO] [stdout] test editor::tests::sprite_origin_index_1 ... ok
[INFO] [stdout] test editor::tests::sprite_origin_index_16 ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_outside_right ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_second_col ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_second_row ... ok
[INFO] [stdout] test editor::tests::sprite_origin_index_17 ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_top_left ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_with_page_and_offset ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_with_page_offset ... ok
[INFO] [stdout] test editor::tests::split_lines_empty ... ok
[INFO] [stdout] test editor::tests::split_lines_multiple_lines ... ok
[INFO] [stdout] test editor::tests::split_lines_single_line ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_double_toggle_restores ... ok
[INFO] [stdout] test editor::tests::sheet_click_to_sprite_outside_left ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_lsb_off ... ok
[INFO] [stdout] test editor::tests::sprite_origin_index_255 ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_lsb_on ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_middle ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_on ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_off ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_out_of_range ... ok
[INFO] [stdout] test editor::tests::toggle_flag_bit_preserves_others ... ok
[INFO] [stdout] test editor::tests::token_count_empty_code ... ok
[INFO] [stdout] test editor::tests::token_color_mapping ... ok
[INFO] [stdout] test editor::tests::token_count_multiline ... ok
[INFO] [stdout] test editor::tests::token_count_only_comments ... ok
[INFO] [stdout] test editor::tests::token_count_free_punctuation ... ok
[INFO] [stdout] test editor::tests::token_count_with_comment ... ok
[INFO] [stdout] test editor::tests::tokenize_all_keyword_types ... ok
[INFO] [stdout] test editor::tests::tokenize_api_function ... ok
[INFO] [stdout] test editor::tests::tokenize_comment ... ok
[INFO] [stdout] test editor::tests::token_count_with_string ... ok
[INFO] [stdout] test editor::tests::tokenize_empty_line ... ok
[INFO] [stdout] test editor::tests::tokenize_identifier_not_keyword ... ok
[INFO] [stdout] test editor::tests::tokenize_inline_comment ... ok
[INFO] [stdout] test editor::tests::token_count_operators ... ok
[INFO] [stdout] test editor::tests::tokenize_keyword_function ... ok
[INFO] [stdout] test editor::tests::tokenize_mixed_line ... ok
[INFO] [stdout] test editor::tests::tokenize_keyword_if ... ok
[INFO] [stdout] test editor::tests::tokenize_number_hex ... ok
[INFO] [stdout] test editor::tests::tokenize_number_decimal ... ok
[INFO] [stdout] test editor::tests::tokenize_number_with_decimal_point ... ok
[INFO] [stdout] test editor::tests::tokenize_string_double_quotes ... ok
[INFO] [stdout] test editor::tests::tokenize_contiguous_coverage ... ok
[INFO] [stdout] test editor::tests::tokenize_api_pset ... ok
[INFO] [stdout] test editor::tests::token_count_with_keywords ... ok
[INFO] [stdout] test editor::tests::token_count_simple_code ... ok
[INFO] [stdout] test editor::tests::tokenize_string_single_quotes ... ok
[INFO] [stdout] test editor::tests::waveform_color_wraps ... ok
[INFO] [stdout] test editor::tests::undo_on_empty_stack ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_bottom_right_corner ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_first_cell_interior ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_out_of_bounds_left ... ok
[INFO] [stdout] test editor::tests::tokenize_string_with_escape ... ok
[INFO] [stdout] test editor::tests::undo_stack_size_limit ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_top_left_corner ... ok
[INFO] [stdout] test editor::tests::waveform_color_all_valid ... ok
[INFO] [stdout] test editor::tests::undo_push_and_pop ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_out_of_bounds_right ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_out_of_bounds_above ... ok
[INFO] [stdout] test lua_api::integration_tests::test_has_update60_false_when_not_defined ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_middle ... ok
[INFO] [stdout] test lua_api::integration_tests::test_parse_load_signal_with_breadcrumb ... ok
[INFO] [stdout] test editor::tests::zoom_to_sprite_pixel_out_of_bounds_below ... ok
[INFO] [stdout] test lua_api::integration_tests::test_parse_load_signal_no_match ... ok
[INFO] [stdout] test lua_api::integration_tests::test_cart_roundtrip_starfall ... ok
[INFO] [stdout] test lua_api::integration_tests::test_load_produces_signal_error ... ok
[INFO] [stdout] test lua_api::integration_tests::test_lshr_basic ... ok
[INFO] [stdout] test lua_api::integration_tests::test_lshr_unsigned_no_sign_extension ... ok
[INFO] [stdout] test lua_api::integration_tests::test_parse_and_preprocess_hello ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotl_basic ... ok
[INFO] [stdout] test lua_api::integration_tests::test_load_signal_roundtrip ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotr_basic ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotl_msb_wraps ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotr_byte_shift ... ok
[INFO] [stdout] test lua_api::integration_tests::test_shr_arithmetic_preserves_sign ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotl_identity ... ok
[INFO] [stdout] test lua_api::integration_tests::test_parse_load_signal_without_breadcrumb ... ok
[INFO] [stdout] test lua_api::integration_tests::test_parse_and_preprocess_starfall ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotr_identity ... ok
[INFO] [stdout] test lua_api::integration_tests::test_has_update60_true_when_defined ... ok
[INFO] [stdout] test lua_api::integration_tests::test_stat6_returns_breadcrumb ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotl_byte_shift ... ok
[INFO] [stdout] test lua_api::integration_tests::test_rotr_lsb_wraps ... ok
[INFO] [stdout] test lua_api::integration_tests::test_stat6_returns_empty_by_default ... ok
[INFO] [stdout] test png_cart::tests::test_bit_reader ... ok
[INFO] [stdout] test png_cart::tests::test_bit_reader_eof ... ok
[INFO] [stdout] test png_cart::tests::test_bit_reader_multi_bit ... ok
[INFO] [stdout] test png_cart::tests::test_decode_music ... ok
[INFO] [stdout] test png_cart::tests::test_decode_sfx_max_values ... ok
[INFO] [stdout] test png_cart::tests::test_decode_gfx ... ok
[INFO] [stdout] test png_cart::tests::test_decode_map_lower ... ok
[INFO] [stdout] test png_cart::tests::test_decode_map_upper ... ok
[INFO] [stdout] test png_cart::tests::test_decode_music_all_flags ... ok
[INFO] [stdout] test png_cart::tests::test_invalid_png ... ok
[INFO] [stdout] test png_cart::tests::test_decode_gff ... ok
[INFO] [stdout] test png_cart::tests::test_decode_sfx ... ok
[INFO] [stdout] test lua_api::integration_tests::test_system_stubs_callable ... ok
[INFO] [stdout] test png_cart::tests::test_extract_all_byte_values ... ok
[INFO] [stdout] test png_cart::tests::test_full_png_roundtrip ... ok
[INFO] [stdout] test png_cart::tests::test_extract_steganographic_data ... ok
[INFO] [stdout] test lua_api::integration_tests::test_execute_hello_p8 ... ok
[INFO] [stdout] test lua_api::integration_tests::test_execute_starfall_p8 ... ok
[INFO] [stdout] test lua_api::integration_tests::test_preprocessor_transforms_starfall ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 245 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests spark_core
[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" "ec94c1aea825b8fffe333eb4251b0696253feff5e10857898087b3dd9a24579e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec94c1aea825b8fffe333eb4251b0696253feff5e10857898087b3dd9a24579e", kill_on_drop: false }`
[INFO] [stdout] ec94c1aea825b8fffe333eb4251b0696253feff5e10857898087b3dd9a24579e
