[INFO] updating cached repository aelred/nes-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/aelred/nes-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/aelred/nes-rust" "work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/aelred/nes-rust" "work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/aelred/nes-rust"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/aelred/nes-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0cfab031c10cc098b9f29ceb3706f337179c710c [INFO] sha for GitHub repo aelred/nes-rust: 0cfab031c10cc098b9f29ceb3706f337179c710c [INFO] validating manifest of aelred/nes-rust on toolchain 1.37.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of aelred/nes-rust on toolchain beta-2019-08-13 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing aelred/nes-rust [INFO] finished frobbing aelred/nes-rust [INFO] frobbed toml for aelred/nes-rust written to work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust/Cargo.toml [INFO] started frobbing aelred/nes-rust [INFO] finished frobbing aelred/nes-rust [INFO] frobbed toml for aelred/nes-rust written to work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/aelred/nes-rust/Cargo.toml [INFO] crate aelred/nes-rust already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing aelred/nes-rust against 1.37.0 for beta-1.38-1 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-4/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.37.0" "build" "--frozen"` [INFO] [stdout] b64a23a7b4fe6e7ab01a2084fe6a1b6f918dd2659fd5ad135502452c2bb4bf90 [INFO] running `"docker" "start" "-a" "b64a23a7b4fe6e7ab01a2084fe6a1b6f918dd2659fd5ad135502452c2bb4bf90"` [INFO] [stderr] Compiling sdl2-sys v0.32.5 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling env_logger v0.6.0 [INFO] [stderr] Compiling enum-primitive-derive v0.1.2 [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling sdl2 v0.32.1 [INFO] [stderr] Compiling nes-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:38:19 [INFO] [stderr] | [INFO] [stderr] 38 | 0x6000...0x7fff => self.prg_ram[address.index() - 0x6000], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: #[warn(ellipsis_inclusive_range_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | 0x8000...0xffff => self.prg_rom[(address.index() - 0x8000) % self.prg_rom.len()], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | 0x6000...0x7fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:51:19 [INFO] [stderr] | [INFO] [stderr] 51 | 0x8000...0xffff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:69:19 [INFO] [stderr] | [INFO] [stderr] 69 | 0x0000...0x1fff => self.chr_rom[address.index()], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:70:19 [INFO] [stderr] | [INFO] [stderr] 70 | 0x2000...0x3eff => self.ppu_ram[(address.index() - 0x2000) % 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:79:19 [INFO] [stderr] | [INFO] [stderr] 79 | 0x0000...0x1fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | 0x2000...0x3eff => self.ppu_ram[(address.index() - 0x2000) % 0x800] = byte, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | 0x0000...CHR_END => self.chr.read(address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | PALETTE_OFFSET...0x3fff => self.palette_ram[self.palette_index(address)], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 46 | 0x0000...CHR_END => self.chr.write(address, byte), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | PALETTE_OFFSET...0x3fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:25:29 [INFO] [stderr] | [INFO] [stderr] 25 | fn main() -> Result<(), Box> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.23s [INFO] running `"docker" "inspect" "b64a23a7b4fe6e7ab01a2084fe6a1b6f918dd2659fd5ad135502452c2bb4bf90"` [INFO] running `"docker" "rm" "-f" "b64a23a7b4fe6e7ab01a2084fe6a1b6f918dd2659fd5ad135502452c2bb4bf90"` [INFO] [stdout] b64a23a7b4fe6e7ab01a2084fe6a1b6f918dd2659fd5ad135502452c2bb4bf90 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-4/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.37.0" "test" "--frozen" "--no-run"` [INFO] [stdout] d19451ac0029b26837eacafc36f1c480b1d8b56eae171690d885403899086911 [INFO] running `"docker" "start" "-a" "d19451ac0029b26837eacafc36f1c480b1d8b56eae171690d885403899086911"` [INFO] [stderr] Compiling odds v0.2.26 [INFO] [stderr] Compiling nodrop v0.1.13 [INFO] [stderr] Compiling itertools v0.4.19 [INFO] [stderr] Compiling arrayvec v0.3.25 [INFO] [stderr] Compiling hexdump v0.1.0 [INFO] [stderr] Compiling nes-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:25:29 [INFO] [stderr] | [INFO] [stderr] 25 | fn main() -> Result<(), Box> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:38:19 [INFO] [stderr] | [INFO] [stderr] 38 | 0x6000...0x7fff => self.prg_ram[address.index() - 0x6000], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: #[warn(ellipsis_inclusive_range_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | 0x8000...0xffff => self.prg_rom[(address.index() - 0x8000) % self.prg_rom.len()], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | 0x6000...0x7fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:51:19 [INFO] [stderr] | [INFO] [stderr] 51 | 0x8000...0xffff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:69:19 [INFO] [stderr] | [INFO] [stderr] 69 | 0x0000...0x1fff => self.chr_rom[address.index()], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:70:19 [INFO] [stderr] | [INFO] [stderr] 70 | 0x2000...0x3eff => self.ppu_ram[(address.index() - 0x2000) % 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:79:19 [INFO] [stderr] | [INFO] [stderr] 79 | 0x0000...0x1fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/cartridge.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | 0x2000...0x3eff => self.ppu_ram[(address.index() - 0x2000) % 0x800] = byte, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | 0x0000...CHR_END => self.chr.read(address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | PALETTE_OFFSET...0x3fff => self.palette_ram[self.palette_index(address)], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 46 | 0x0000...CHR_END => self.chr.write(address, byte), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/ppu/memory.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | PALETTE_OFFSET...0x3fff => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 11.57s [INFO] running `"docker" "inspect" "d19451ac0029b26837eacafc36f1c480b1d8b56eae171690d885403899086911"` [INFO] running `"docker" "rm" "-f" "d19451ac0029b26837eacafc36f1c480b1d8b56eae171690d885403899086911"` [INFO] [stdout] d19451ac0029b26837eacafc36f1c480b1d8b56eae171690d885403899086911 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-4/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/aelred/nes-rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.37.0" "test" "--frozen"` [INFO] [stdout] 976301af811faa92a2803ab02f4a146c1217a65f0c6f4389b1eaf8cfc71d3c5f [INFO] running `"docker" "start" "-a" "976301af811faa92a2803ab02f4a146c1217a65f0c6f4389b1eaf8cfc71d3c5f"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stderr] Running /opt/crater/target/debug/deps/nes_rust-f65a6d72b1a2b153 [INFO] [stdout] [INFO] [stdout] running 201 tests [INFO] [stdout] test cartridge::tests::cartridge_is_constructed_from_prg_rom_chr_rom_and_mapper ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x2000_through_0x27ff_to_ppu_ram ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x0000_through_0x1fff_to_chr_rom ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_0x3000_through_0x3eff_to_ppu_ram ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_rom_if_not_large_enough ... ok [INFO] [stdout] test cartridge::tests::rom_cartridge_maps_0x6000_through_0x7fff_to_prg_ram ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_0x2800_through_0x2fff_to_ppu_ram ... ok [INFO] [stdout] test cpu::addressing_modes::tests::absolute_y_addressing_mode_fetches_values_at_given_address_offset_by_y ... ok [INFO] [stdout] test cpu::addressing_modes::tests::absolute_x_addressing_mode_fetches_values_at_given_address_offset_by_x ... ok [INFO] [stdout] test cpu::addressing_modes::tests::absolute_addressing_mode_fetches_values_at_given_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indexed_indirect_addressing_mode_fetches_address_at_given_zero_page_address_offset_by_x ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indexed_indirect_addressing_mode_wraps_address_read_from_zero_page ... ok [INFO] [stdout] test cpu::addressing_modes::tests::accumulator_addressing_mode_fetches_accumulator_value ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x8000_through_0xffff_to_prg_rom ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_addressing_mode_wraps_at_end_of_page ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indexed_indirect_addressing_mode_wraps_on_zero_page_overflow ... ok [INFO] [stdout] test cpu::addressing_modes::tests::immediate_addressing_mode_fetches_given_value ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_addressing_mode_fetches_address_at_given_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_addressing_mode_fetches_value_at_given_zero_page_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_y_addressing_mode_fetches_value_at_given_zero_page_address_offset_by_y ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_indexed_addressing_mode_wraps_address_read_from_zero_page ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_indexed_addressing_mode_fetches_address_offset_by_y_at_given_zero_page_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_y_addressing_mode_wraps ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_x_addressing_mode_wraps ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_x_addressing_mode_fetches_value_at_given_zero_page_address_offset_by_x ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_cartridge_space_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_oamdata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_oamaddr_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_read_ppustatus_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_internal_ram_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_ppudata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_oamdma_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuscroll_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuaddr_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::writing_to_4016_writes_to_input_device ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuctrl_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::reading_from_4016_reads_from_input_device ... ok [INFO] [stdout] test cpu::tests::calling_non_maskable_interrupt_sets_interrupt_flag ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppumask_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_adc_sets_carry_flag_on_unsigned_overflow ... ok [INFO] [stdout] test cpu::tests::instr_adc_sets_overflow_flag_on_signed_overflow ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_program_counter_to_reset_vector ... ok [INFO] [stdout] test cpu::memory::tests::nes_cpu_memory_addresses_0x800_to_0x1fff_mirror_internal_ram ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_in_default_state ... ok [INFO] [stdout] test cpu::tests::instr_adc_adds_numbers ... ok [INFO] [stdout] test cpu::tests::instr_asl_can_operate_on_memory ... ok [INFO] [stdout] test cpu::tests::instr_and_performs_bitwise_and ... ok [INFO] [stdout] test cpu::tests::instr_asl_sets_carry_flag_on_overflow ... ok [INFO] [stdout] test cpu::tests::instr_asl_shifts_left ... ok [INFO] [stdout] test cpu::tests::instr_beq_branches_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bcc_does_not_branch_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bit_clears_zero_flag_when_bitwise_and_is_not_zero ... ok [INFO] [stdout] test cpu::tests::instr_bcc_branches_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bcs_does_not_branch_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_zero_flag_when_bitwise_and_is_zero ... ok [INFO] [stdout] test cpu::tests::instr_beq_does_not_branch_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bcs_branches_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_overflow_bit_based_on_bit_6_of_operand ... ok [INFO] [stdout] test cpu::tests::instr_bne_branches_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bne_does_not_branch_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bmi_branches_when_negative_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bmi_does_not_branch_when_negative_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_brk_jumps_to_address_at_interrupt_vector ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_negative_bit_based_on_bit_7_of_operand ... ok [INFO] [stdout] test cpu::tests::instr_brk_sets_break_flag_on_stack ... ok [INFO] [stdout] test cpu::tests::instr_bpl_does_not_branch_when_negative_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_brk_decrements_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test cpu::tests::instr_bvc_branches_when_overflow_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bpl_branches_when_negative_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_brk_writes_program_counter_and_status_with_break_flag_set_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::instr_bvs_branches_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_cli_clears_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_cld_clears_decimal_flag ... ok [INFO] [stdout] test cpu::tests::instr_clv_clears_overflow_flag ... ok [INFO] [stdout] test cpu::tests::instr_bvc_does_not_branch_when_overflow_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bvs_does_not_branch_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_clc_clears_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_dec_decrements_operand ... ok [INFO] [stdout] test cpu::tests::instr_cpx_compares_using_x_register ... ok [INFO] [stdout] test cpu::tests::instr_cmp_sets_zero_flag_if_accumulator_equals_operand ... ok [INFO] [stdout] test cpu::tests::instr_dex_decrements_x_register ... ok [INFO] [stdout] test cpu::tests::instr_cmp_sets_negative_flag_if_bit_7_of_accumulator_sub_operand_is_set ... ok [INFO] [stdout] test cpu::tests::instr_dec_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_cmp_sets_carry_flag_if_accumulator_greater_or_equal_to_operand ... ok [INFO] [stdout] test cpu::tests::instr_dec_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dex_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_cpy_compares_using_y_register ... ok [INFO] [stdout] test cpu::tests::instr_dex_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_inc_increments_operand ... ok [INFO] [stdout] test cpu::tests::instr_inc_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dey_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dey_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_inx_increments_x_register ... ok [INFO] [stdout] test cpu::tests::instr_iny_increments_y_register ... ok [INFO] [stdout] test cpu::tests::instr_inc_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dey_decrements_y_register ... ok [INFO] [stdout] test cpu::tests::instr_eor_performs_bitwise_xor ... ok [INFO] [stdout] test cpu::tests::instr_jsr_decrements_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test cpu::tests::instr_lda_loads_operand_into_accunmulator ... ok [INFO] [stdout] test cpu::tests::instr_jsr_jumps_to_operand ... ok [INFO] [stdout] test cpu::tests::instr_jmp_jumps_to_indirect_operand ... ok [INFO] [stdout] test cpu::tests::instr_jmp_jumps_to_immediate_operand ... ok [INFO] [stdout] test cpu::tests::instr_jsr_writes_program_counter_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::instr_ldx_loads_operand_into_x_register ... ok [INFO] [stdout] test cpu::tests::instr_ldy_loads_operand_into_y_register ... ok [INFO] [stdout] test cpu::tests::instr_lsr_shifts_right ... ok [INFO] [stdout] test cpu::tests::instr_nop_increments_program_counter ... ok [INFO] [stdout] test cpu::tests::addition_behaves_appropriately_across_many_values ... ok [INFO] [stdout] test cpu::tests::instr_pha_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_lsr_sets_carry_flag_on_underflow ... ok [INFO] [stdout] test cpu::tests::instr_pha_writes_accumulator_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::instr_ora_performs_bitwise_or ... ok [INFO] [stdout] test cpu::tests::instr_php_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_plp_reads_status_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_php_writes_status_to_stack_pointer_with_break_always_set ... ok [INFO] [stdout] test cpu::tests::instr_plp_increments_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_rti_reads_status_and_program_counter_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_rti_increments_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test cpu::tests::instr_pla_increments_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_ror_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_pla_reads_accumulator_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_rts_increments_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test cpu::tests::instr_sbc_subtracts_numbers ... ok [INFO] [stdout] test cpu::tests::instr_sta_stores_accumulator_in_memory ... ok [INFO] [stdout] test cpu::tests::instr_rts_reads_program_counter_plus_one_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_sec_sets_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_sbc_sets_overflow_bit_when_sign_is_wrong ... ok [INFO] [stdout] test cpu::tests::instr_sei_sets_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_rol_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_sed_sets_decimal_flag ... ok [INFO] [stdout] test cpu::tests::instr_tsx_transfers_stack_pointer_to_x_register ... ok [INFO] [stdout] test cpu::tests::instr_sty_stores_y_register_in_memory ... ok [INFO] [stdout] test cpu::tests::instr_txs_does_not_modify_zero_or_negative_register ... ok [INFO] [stdout] test cpu::tests::instr_stx_stores_x_register_in_memory ... ok [INFO] [stdout] test cpu::tests::instr_tay_transfers_accumulator_to_y_register ... ok [INFO] [stdout] test cpu::tests::instr_tya_transfers_y_register_to_accumulator ... ok [INFO] [stdout] test cpu::tests::instr_tax_transfers_accumulator_to_x_register ... ok [INFO] [stdout] test cpu::tests::instr_txa_transfers_x_register_to_accumulator ... ok [INFO] [stdout] test cpu::tests::instr_txs_transfers_x_register_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_jumps_to_address_at_nmi_vector ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_push_program_counter_and_status_with_clear_break_flag_to_stack ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_not_set_when_accumulator_is_positive ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_set_when_accumulator_is_negative ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_reset_interrupt_flag ... ok [INFO] [stdout] test cpu::tests::instructions_can_wrap_on_program_counter_overflow ... ok [INFO] [stdout] test cpu::tests::program_counter_wraps_on_overflow ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_1_when_executing_1_byte_instr ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_2_when_executing_2_byte_instr ... ok [INFO] [stdout] test cpu::tests::stack_pointer_wraps_on_overflow ... ok [INFO] [stdout] test cpu::tests::stack_operations_wrap_value_on_overflow ... ok [INFO] [stdout] test i_nes::tests::can_read_mapper_from_ines_file ... ok [INFO] [stdout] test input::tests::after_reading_status_subsequent_reads_return_zero ... ok [INFO] [stdout] test input::tests::pressing_and_releasing_buttons_toggles_fields ... ok [INFO] [stdout] test i_nes::tests::can_read_chr_rom_data_from_ines_file ... ok [INFO] [stdout] test input::tests::while_strobe_is_on_always_report_state_of_button_a ... ok [INFO] [stdout] test input::tests::when_strobe_is_toggled_off_button_status_is_reported ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_address_increment ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_nmi_on_vblank ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_sprite_pattern_table_address ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_background_pattern_table_address ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_set_when_accumulator_is_zero ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_3_when_executing_3_byte_instr ... ok [INFO] [stdout] test ppu::memory::tests::can_read_cartridge_space_in_nes_ppu_memory ... ok [INFO] [stdout] test ppu::status::tests::reading_status_resets_vblank ... ok [INFO] [stdout] test i_nes::tests::can_read_prg_rom_data_from_ines_file ... ok [INFO] [stdout] test ppu::memory::tests::can_read_palette_ram_in_nes_ppu_memory ... ok [INFO] [stdout] test ppu::memory::tests::palette_ram_mirrors_from_0x3f20_to_0x3fff ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_not_set_when_accumulator_is_non_zero ... ok [INFO] [stdout] test ppu::memory::tests::palette_ram_mirrors_0x3f1x_to_0x3f0x_for_0_4_8_and_c ... ok [INFO] [stdout] test ppu::tests::each_tick_produces_a_color ... ok [INFO] [stdout] test ppu::tests::can_get_tile_address_from_scroll ... ok [INFO] [stdout] test ppu::tests::incrementing_coarse_x_increments_to_next_tile ... ok [INFO] [stdout] test ppu::tests::can_read_rows_from_nametable ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_increments_coarse_y_when_fine_y_is_7 ... ok [INFO] [stdout] test ppu::tests::loading_sprites_clears_active_sprites ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_switches_to_next_vertical_nametable_when_coarse_y_is_29 ... ok [INFO] [stdout] test ppu::tests::incrementing_coarse_x_switches_to_next_horizontal_nametable_when_coarse_x_is_31 ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_increments_fine_y_by_1 ... ok [INFO] [stdout] test ppu::tests::reading_or_writing_ppu_data_increments_address_by_increment_in_control_register ... ok [INFO] [stdout] test ppu::tests::can_get_attribute_address_from_scroll ... ok [INFO] [stdout] test ppu::tests::transfer_horizontal_scroll_transfers_horizontal_scroll_from_temporary_to_address ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_from_palette_does_not_use_internal_buffer ... ok [INFO] [stdout] test ppu::tests::loading_sprites_loads_all_sprites_for_a_given_scanline ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_reads_from_internal_buffer ... ok [INFO] [stdout] test ppu::tests::writing_oam_dma_writes_from_cpu_page_to_oam ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_once_sets_masked_upper_bits_of_temporary_address ... ok [INFO] [stdout] test ppu::tests::reading_ppu_status_resets_address_toggle ... ok [INFO] [stdout] test ppu::tests::when_more_than_eight_sprites_on_scanline_only_first_eight_are_loaded ... ok [INFO] [stdout] test ppu::tests::reading_ppu_status_returns_status ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_twice_sets_lower_bits_of_temporary_address_and_transfers_to_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_twice_then_reading_data_reads_data_from_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_twice_then_writing_data_writes_data_to_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_attribute_address ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_cannot_write_to_read_only_memory ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_control ... ok [INFO] [stdout] test ppu::tests::writing_oam_address_sets_oam_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_mask_sets_mask ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_temporary_address_to_nametable ... ok [INFO] [stdout] test ppu::tests::writing_ppu_scroll_writes_to_temporary_register ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_tile_address ... ok [INFO] [stdout] test cpu::tests::subtraction_behaves_appropriately_across_many_values ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 201 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/nes_rust-bd5b1462c8077d86 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/external_tests-d25840223f2ee88e [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test nestest ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/simple_programs-8849a5e167335b3a [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test hello_world ... ok [INFO] [stdout] test triangle_number ... ok [INFO] [stdout] test one_plus_two ... ok [INFO] [stdout] test fibonacci ... ok [INFO] [stdout] test triangle_number_subroutine ... ok [INFO] [stdout] test seven_times_six ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests nes-rust [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 [INFO] [stdout] [INFO] running `"docker" "inspect" "976301af811faa92a2803ab02f4a146c1217a65f0c6f4389b1eaf8cfc71d3c5f"` [INFO] running `"docker" "rm" "-f" "976301af811faa92a2803ab02f4a146c1217a65f0c6f4389b1eaf8cfc71d3c5f"` [INFO] [stdout] 976301af811faa92a2803ab02f4a146c1217a65f0c6f4389b1eaf8cfc71d3c5f