[INFO] updating cached repository https://github.com/aelred/nes-rust [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4deb07e9f9bdf56aacac46ed1a5bfda2fb1005f3 [INFO] testing aelred/nes-rust against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faelred%2Fnes-rust" "/workspace/builds/worker-3/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/aelred/nes-rust on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/aelred/nes-rust [INFO] finished tweaking git repo https://github.com/aelred/nes-rust [INFO] tweaked toml for git repo https://github.com/aelred/nes-rust written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/aelred/nes-rust already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stdout] c97ff5bd6556b6dfa555f7c8c12e81bd9b8a289b10e244c74284b1bd1c1b188c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "c97ff5bd6556b6dfa555f7c8c12e81bd9b8a289b10e244c74284b1bd1c1b188c"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling rand_core v0.3.0 [INFO] [stderr] Compiling num-traits v0.2.6 [INFO] [stderr] Compiling libc v0.2.47 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling cfg-if v0.1.6 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Compiling quick-error v1.2.2 [INFO] [stderr] Compiling bitflags v1.0.4 [INFO] [stderr] Compiling lazy_static v1.2.0 [INFO] [stderr] Compiling termcolor v1.0.4 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.4 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling log v0.4.6 [INFO] [stderr] Compiling sdl2-sys v0.32.5 [INFO] [stderr] Compiling humantime v1.2.0 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling rand_os v0.1.1 [INFO] [stderr] Compiling atty v0.2.11 [INFO] [stderr] Compiling rand_pcg v0.1.1 [INFO] [stderr] Compiling env_logger v0.6.0 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Compiling enum-primitive-derive v0.1.2 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling sdl2 v0.32.1 [INFO] [stderr] Compiling nes-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 32.55s [INFO] running `"docker" "inspect" "c97ff5bd6556b6dfa555f7c8c12e81bd9b8a289b10e244c74284b1bd1c1b188c"` [INFO] running `"docker" "rm" "-f" "c97ff5bd6556b6dfa555f7c8c12e81bd9b8a289b10e244c74284b1bd1c1b188c"` [INFO] [stdout] c97ff5bd6556b6dfa555f7c8c12e81bd9b8a289b10e244c74284b1bd1c1b188c [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b727e79313b93774cb33d9615e29d0b50a192b99e19f3ad7fcdd7abecd09f62c [INFO] running `"docker" "start" "-a" "b727e79313b93774cb33d9615e29d0b50a192b99e19f3ad7fcdd7abecd09f62c"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling nodrop v0.1.13 [INFO] [stderr] Compiling odds v0.2.26 [INFO] [stderr] Compiling itertools v0.4.19 [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Compiling arrayvec v0.3.25 [INFO] [stderr] Compiling hexdump v0.1.0 [INFO] [stderr] Compiling nes-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 80 | / run!([1, 2] -> [3]; [INFO] [stderr] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 82 | | INX, [INFO] [stderr] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 87 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(array_into_iter)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 80 | / run!([1, 2] -> [3]; [INFO] [stderr] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 82 | | INX, [INFO] [stderr] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 87 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 92 | / run!([7, 6] -> [42]; [INFO] [stderr] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 95 | | INX, [INFO] [stderr] ... | [INFO] [stderr] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 102 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 92 | / run!([7, 6] -> [42]; [INFO] [stderr] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 95 | | INX, [INFO] [stderr] ... | [INFO] [stderr] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 102 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 107 | / run!([20] -> [210]; [INFO] [stderr] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 116 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 107 | / run!([20] -> [210]; [INFO] [stderr] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 116 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 121 | / run!([20] -> [210]; [INFO] [stderr] 122 | | 0 => { [INFO] [stderr] 123 | | JSR, 0x34, 0x12, [INFO] [stderr] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stderr] ... | [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 121 | / run!([20] -> [210]; [INFO] [stderr] 122 | | 0 => { [INFO] [stderr] 123 | | JSR, 0x34, 0x12, [INFO] [stderr] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stderr] ... | [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 141 | / run!([11] -> [89]; [INFO] [stderr] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stderr] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stderr] 144 | | SEC, [INFO] [stderr] ... | [INFO] [stderr] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 161 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 141 | / run!([11] -> [89]; [INFO] [stderr] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stderr] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stderr] 144 | | SEC, [INFO] [stderr] ... | [INFO] [stderr] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 161 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 11.79s [INFO] running `"docker" "inspect" "b727e79313b93774cb33d9615e29d0b50a192b99e19f3ad7fcdd7abecd09f62c"` [INFO] running `"docker" "rm" "-f" "b727e79313b93774cb33d9615e29d0b50a192b99e19f3ad7fcdd7abecd09f62c"` [INFO] [stdout] b727e79313b93774cb33d9615e29d0b50a192b99e19f3ad7fcdd7abecd09f62c [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stdout] 67f559bed320d78b846d45095a790f0b731b63ebb63ba426762eac158e3ba65b [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "67f559bed320d78b846d45095a790f0b731b63ebb63ba426762eac158e3ba65b"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 80 | / run!([1, 2] -> [3]; [INFO] [stderr] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 82 | | INX, [INFO] [stderr] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 87 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(array_into_iter)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 80 | / run!([1, 2] -> [3]; [INFO] [stderr] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 82 | | INX, [INFO] [stderr] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 87 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 92 | / run!([7, 6] -> [42]; [INFO] [stderr] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 95 | | INX, [INFO] [stderr] ... | [INFO] [stderr] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 102 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 92 | / run!([7, 6] -> [42]; [INFO] [stderr] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 95 | | INX, [INFO] [stderr] ... | [INFO] [stderr] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 102 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 107 | / run!([20] -> [210]; [INFO] [stderr] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 116 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 107 | / run!([20] -> [210]; [INFO] [stderr] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stderr] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stderr] ... | [INFO] [stderr] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 116 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 121 | / run!([20] -> [210]; [INFO] [stderr] 122 | | 0 => { [INFO] [stderr] 123 | | JSR, 0x34, 0x12, [INFO] [stderr] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stderr] ... | [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 121 | / run!([20] -> [210]; [INFO] [stderr] 122 | | 0 => { [INFO] [stderr] 123 | | JSR, 0x34, 0x12, [INFO] [stderr] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stderr] ... | [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 141 | / run!([11] -> [89]; [INFO] [stderr] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stderr] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stderr] 144 | | SEC, [INFO] [stderr] ... | [INFO] [stderr] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 161 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] ... [INFO] [stderr] 141 | / run!([11] -> [89]; [INFO] [stderr] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stderr] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stderr] 144 | | SEC, [INFO] [stderr] ... | [INFO] [stderr] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stderr] 161 | | ); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.19s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/nes_rust-e43f1cca340e95aa [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 cpu::addressing_modes::tests::absolute_x_addressing_mode_fetches_values_at_given_address_offset_by_x ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x0000_through_0x1fff_to_chr_rom ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x2000_through_0x27ff_to_ppu_ram ... ok [INFO] [stdout] test cpu::addressing_modes::tests::accumulator_addressing_mode_fetches_accumulator_value ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_0x2800_through_0x2fff_to_ppu_ram ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x8000_through_0xffff_to_prg_rom ... ok [INFO] [stdout] test cpu::addressing_modes::tests::immediate_addressing_mode_fetches_given_value ... 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 cartridge::tests::nrom_cartridge_mirrors_rom_if_not_large_enough ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_y_addressing_mode_wraps ... 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::absolute_addressing_mode_fetches_values_at_given_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_addressing_mode_fetches_address_at_given_address ... ok [INFO] [stdout] test cartridge::tests::rom_cartridge_maps_0x6000_through_0x7fff_to_prg_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 cartridge::tests::nrom_cartridge_mirrors_0x3000_through_0x3eff_to_ppu_ram ... 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::indirect_indexed_addressing_mode_fetches_address_offset_by_y_at_given_zero_page_address ... ok [INFO] [stdout] test cpu::addressing_modes::tests::indirect_addressing_mode_wraps_at_end_of_page ... 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::indirect_indexed_addressing_mode_wraps_address_read_from_zero_page ... 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::memory::tests::can_write_oamdma_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_x_addressing_mode_wraps ... 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::tests::calling_non_maskable_interrupt_sets_interrupt_flag ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_oamdata_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_oamaddr_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::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::tests::instr_adc_sets_carry_flag_on_unsigned_overflow ... ok [INFO] [stdout] test cpu::memory::tests::writing_to_4016_writes_to_input_device ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuscroll_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppumask_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuctrl_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_asl_sets_carry_flag_on_overflow ... ok [INFO] [stdout] test cpu::memory::tests::reading_from_4016_reads_from_input_device ... ok [INFO] [stdout] test cpu::memory::tests::nes_cpu_memory_addresses_0x800_to_0x1fff_mirror_internal_ram ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_cartridge_space_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_and_performs_bitwise_and ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_program_counter_to_reset_vector ... ok [INFO] [stdout] test cpu::tests::instr_asl_can_operate_on_memory ... ok [INFO] [stdout] test cpu::tests::instr_adc_adds_numbers ... ok [INFO] [stdout] test cpu::tests::instr_adc_sets_overflow_flag_on_signed_overflow ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_in_default_state ... ok [INFO] [stdout] test cpu::tests::instr_asl_shifts_left ... ok [INFO] [stdout] test cpu::tests::instr_bit_clears_zero_flag_when_bitwise_and_is_not_zero ... ok [INFO] [stdout] test cpu::tests::instr_bcs_branches_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_beq_does_not_branch_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bcc_does_not_branch_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bne_does_not_branch_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bcc_branches_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_beq_branches_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_negative_bit_based_on_bit_7_of_operand ... ok [INFO] [stdout] test cpu::tests::instr_bne_branches_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bcs_does_not_branch_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bpl_does_not_branch_when_negative_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_bit_sets_zero_flag_when_bitwise_and_is_zero ... ok [INFO] [stdout] test cpu::tests::instr_brk_decrements_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test cpu::tests::instr_bmi_does_not_branch_when_negative_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bmi_branches_when_negative_flag_set ... 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_clc_clears_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_bvs_branches_when_carry_flag_set ... 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_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_cli_clears_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_brk_jumps_to_address_at_interrupt_vector ... ok [INFO] [stdout] test cpu::tests::instr_brk_sets_break_flag_on_stack ... 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_cmp_sets_zero_flag_if_accumulator_equals_operand ... ok [INFO] [stdout] test cpu::tests::instr_dey_decrements_y_register ... ok [INFO] [stdout] test cpu::tests::instr_dex_decrements_x_register ... ok [INFO] [stdout] test cpu::tests::instr_inc_increments_operand ... ok [INFO] [stdout] test cpu::tests::instr_dex_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dec_decrements_operand ... ok [INFO] [stdout] test cpu::tests::instr_eor_performs_bitwise_xor ... ok [INFO] [stdout] test cpu::tests::instr_cpy_compares_using_y_register ... ok [INFO] [stdout] test cpu::tests::instr_dec_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_inc_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_cpx_compares_using_x_register ... ok [INFO] [stdout] test cpu::tests::instr_dey_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_iny_increments_y_register ... ok [INFO] [stdout] test cpu::tests::instr_inx_increments_x_register ... 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_inc_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_jmp_jumps_to_immediate_operand ... ok [INFO] [stdout] test cpu::tests::instr_dex_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_jsr_jumps_to_operand ... ok [INFO] [stdout] test cpu::tests::instr_dec_sets_zero_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_jsr_writes_program_counter_to_stack_pointer ... 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_jsr_decrements_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test cpu::tests::addition_behaves_appropriately_across_many_values ... ok [INFO] [stdout] test cpu::tests::instr_ldy_loads_operand_into_y_register ... ok [INFO] [stdout] test cpu::tests::instr_lda_loads_operand_into_accunmulator ... ok [INFO] [stdout] test cpu::tests::instr_php_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_nop_increments_program_counter ... ok [INFO] [stdout] test cpu::tests::instr_lsr_shifts_right ... ok [INFO] [stdout] test cpu::tests::instr_ldx_loads_operand_into_x_register ... ok [INFO] [stdout] test cpu::tests::instr_pha_writes_accumulator_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::instr_lsr_sets_carry_flag_on_underflow ... ok [INFO] [stdout] test cpu::tests::instr_ora_performs_bitwise_or ... ok [INFO] [stdout] test cpu::tests::instr_pla_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_jmp_jumps_to_indirect_operand ... ok [INFO] [stdout] test cpu::tests::instr_php_writes_status_to_stack_pointer_with_break_always_set ... ok [INFO] [stdout] test cpu::tests::instr_sei_sets_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_plp_increments_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_pha_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_rts_reads_program_counter_plus_one_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_rts_increments_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test cpu::tests::instr_rti_increments_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test cpu::tests::instr_sed_sets_decimal_flag ... ok [INFO] [stdout] test cpu::tests::instr_sbc_subtracts_numbers ... ok [INFO] [stdout] test cpu::tests::instr_rol_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_txa_transfers_x_register_to_accumulator ... ok [INFO] [stdout] test cpu::tests::instr_ror_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_sta_stores_accumulator_in_memory ... ok [INFO] [stdout] test cpu::tests::instr_sty_stores_y_register_in_memory ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_not_set_when_accumulator_is_positive ... ok [INFO] [stdout] test cpu::tests::instr_sbc_sets_overflow_bit_when_sign_is_wrong ... ok [INFO] [stdout] test cpu::tests::instr_plp_reads_status_from_stack ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_jumps_to_address_at_nmi_vector ... ok [INFO] [stdout] test cpu::tests::instructions_can_wrap_on_program_counter_overflow ... ok [INFO] [stdout] test cpu::tests::instr_stx_stores_x_register_in_memory ... ok [INFO] [stdout] test cpu::tests::instr_pla_reads_accumulator_from_stack ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_reset_interrupt_flag ... ok [INFO] [stdout] test cpu::tests::instr_sec_sets_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_tay_transfers_accumulator_to_y_register ... ok [INFO] [stdout] test cpu::tests::instr_tsx_transfers_stack_pointer_to_x_register ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_set_when_accumulator_is_negative ... ok [INFO] [stdout] test cpu::tests::instr_tya_transfers_y_register_to_accumulator ... ok [INFO] [stdout] test cpu::tests::program_counter_wraps_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 cpu::tests::instr_tax_transfers_accumulator_to_x_register ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_1_when_executing_1_byte_instr ... ok [INFO] [stdout] test input::tests::when_strobe_is_toggled_off_button_status_is_reported ... ok [INFO] [stdout] test input::tests::pressing_and_releasing_buttons_toggles_fields ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_3_when_executing_3_byte_instr ... ok [INFO] [stdout] test cpu::tests::stack_operations_wrap_value_on_overflow ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_2_when_executing_2_byte_instr ... 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 ppu::control::tests::control_specifies_address_increment ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_background_pattern_table_address ... ok [INFO] [stdout] test input::tests::while_strobe_is_on_always_report_state_of_button_a ... 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 cpu::tests::instr_txs_does_not_modify_zero_or_negative_register ... ok [INFO] [stdout] test ppu::status::tests::reading_status_resets_vblank ... ok [INFO] [stdout] test ppu::tests::can_get_tile_address_from_scroll ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_set_when_accumulator_is_zero ... ok [INFO] [stdout] test ppu::tests::can_read_rows_from_nametable ... ok [INFO] [stdout] test cpu::tests::instr_txs_transfers_x_register_to_stack_pointer ... ok [INFO] [stdout] test ppu::tests::incrementing_coarse_x_increments_to_next_tile ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_switches_to_next_vertical_nametable_when_coarse_y_is_29 ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_not_set_when_accumulator_is_non_zero ... ok [INFO] [stdout] test ppu::tests::each_tick_produces_a_color ... ok [INFO] [stdout] test ppu::tests::incrementing_coarse_x_switches_to_next_horizontal_nametable_when_coarse_x_is_31 ... ok [INFO] [stdout] test i_nes::tests::can_read_prg_rom_data_from_ines_file ... ok [INFO] [stdout] test i_nes::tests::can_read_chr_rom_data_from_ines_file ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_increments_fine_y_by_1 ... ok [INFO] [stdout] test ppu::memory::tests::palette_ram_mirrors_from_0x3f20_to_0x3fff ... ok [INFO] [stdout] test ppu::memory::tests::can_read_palette_ram_in_nes_ppu_memory ... ok [INFO] [stdout] test cpu::tests::stack_pointer_wraps_on_overflow ... ok [INFO] [stdout] test ppu::memory::tests::can_read_cartridge_space_in_nes_ppu_memory ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_from_palette_does_not_use_internal_buffer ... ok [INFO] [stdout] test ppu::tests::can_get_attribute_address_from_scroll ... 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::memory::tests::palette_ram_mirrors_0x3f1x_to_0x3f0x_for_0_4_8_and_c ... ok [INFO] [stdout] test ppu::tests::reading_or_writing_ppu_data_increments_address_by_increment_in_control_register ... ok [INFO] [stdout] test ppu::tests::transfer_horizontal_scroll_transfers_horizontal_scroll_from_temporary_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::loading_sprites_loads_all_sprites_for_a_given_scanline ... ok [INFO] [stdout] test ppu::tests::writing_oam_dma_writes_from_cpu_page_to_oam ... 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::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::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_mask_sets_mask ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_tile_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_attribute_address ... ok [INFO] [stdout] test ppu::tests::writing_oam_address_sets_oam_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_address_once_sets_masked_upper_bits_of_temporary_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_control ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_reads_from_internal_buffer ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_cannot_write_to_read_only_memory ... 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/rustwide/target/debug/deps/nes_rust-4e1c4d66efca56ad [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/rustwide/target/debug/deps/external_tests-0a83ec78afb233d0 [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] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/simple_programs-f557e45d4b35c383 [INFO] [stdout] running 6 tests [INFO] [stdout] test fibonacci ... ok [INFO] [stdout] test triangle_number ... ok [INFO] [stdout] test one_plus_two ... ok [INFO] [stdout] test seven_times_six ... ok [INFO] [stdout] test triangle_number_subroutine ... ok [INFO] [stdout] test hello_world ... 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] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> /opt/rustwide/workdir/src/cpu.rs:408:89 [INFO] [stderr] | [INFO] [stderr] 408 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [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" "67f559bed320d78b846d45095a790f0b731b63ebb63ba426762eac158e3ba65b"` [INFO] running `"docker" "rm" "-f" "67f559bed320d78b846d45095a790f0b731b63ebb63ba426762eac158e3ba65b"` [INFO] [stdout] 67f559bed320d78b846d45095a790f0b731b63ebb63ba426762eac158e3ba65b