[INFO] cloning repository https://github.com/aelred/nes-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aelred/nes-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faelred%2Fnes-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faelred%2Fnes-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 91f3b96fc4d6cb34d0e2d91474ce33a0a4f4b9f8 [INFO] testing aelred/nes-rust against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faelred%2Fnes-rust" "/workspace/builds/worker-117/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-117/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/aelred/nes-rust on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-117/source/Cargo.toml [INFO] crate git repo https://github.com/aelred/nes-rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 42715dab1d1b54afedcd283936ea4d9fc336c911280eecd22f945ae5d8e68985 [INFO] running `Command { std: "docker" "start" "-a" "42715dab1d1b54afedcd283936ea4d9fc336c911280eecd22f945ae5d8e68985", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "42715dab1d1b54afedcd283936ea4d9fc336c911280eecd22f945ae5d8e68985", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "42715dab1d1b54afedcd283936ea4d9fc336c911280eecd22f945ae5d8e68985", kill_on_drop: false }` [INFO] [stdout] 42715dab1d1b54afedcd283936ea4d9fc336c911280eecd22f945ae5d8e68985 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 90e58e35966caa7122c1c29c4a930f3d174eb8e5c7439400210728a5da714ec4 [INFO] running `Command { std: "docker" "start" "-a" "90e58e35966caa7122c1c29c4a930f3d174eb8e5c7439400210728a5da714ec4", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling rand_core v0.3.0 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling autocfg v0.1.2 [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling termcolor v1.0.4 [INFO] [stderr] Compiling bitflags v1.0.4 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling sdl2-sys v0.32.5 [INFO] [stderr] Compiling log v0.4.6 [INFO] [stderr] Compiling humantime v1.2.0 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.4 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling rand_pcg v0.1.1 [INFO] [stderr] Compiling rand_os v0.1.1 [INFO] [stderr] Compiling atty v0.2.11 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling enum-primitive-derive v0.1.2 [INFO] [stderr] Compiling env_logger v0.6.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/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/cpu.rs:410:89 [INFO] [stdout] | [INFO] [stdout] 410 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 410 - fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] 410 + fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 26s [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "90e58e35966caa7122c1c29c4a930f3d174eb8e5c7439400210728a5da714ec4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "90e58e35966caa7122c1c29c4a930f3d174eb8e5c7439400210728a5da714ec4", kill_on_drop: false }` [INFO] [stdout] 90e58e35966caa7122c1c29c4a930f3d174eb8e5c7439400210728a5da714ec4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d3477578842735f888830395f8beffc6e334e0e203caf92f065d11a8ef4f3891 [INFO] running `Command { std: "docker" "start" "-a" "d3477578842735f888830395f8beffc6e334e0e203caf92f065d11a8ef4f3891", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling rayon-core v1.8.1 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling crc32fast v1.3.0 [INFO] [stderr] Compiling syn v1.0.85 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling weezl v0.1.5 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling predicates-core v1.0.3 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling termtree v0.2.4 [INFO] [stderr] Compiling nodrop v0.1.13 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling fragile v1.0.0 [INFO] [stderr] Compiling itertools v0.4.19 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling bytemuck v1.7.3 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling rayon v1.4.1 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling itertools v0.10.3 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling float-cmp v0.9.0 [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/cpu.rs:410:89 [INFO] [stdout] | [INFO] [stdout] 410 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 410 - fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] 410 + fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling miniz_oxide v0.3.7 [INFO] [stderr] Compiling deflate v0.8.6 [INFO] [stderr] Compiling arrayvec v0.3.25 [INFO] [stderr] Compiling gif v0.11.3 [INFO] [stderr] Compiling predicates-tree v1.0.5 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling hexdump v0.1.0 [INFO] [stderr] Compiling png v0.16.8 [INFO] [stderr] Compiling quote v1.0.14 [INFO] [stderr] Compiling crossbeam-channel v0.4.4 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling crossbeam-deque v0.7.4 [INFO] [stderr] Compiling predicates v2.1.1 [INFO] [stderr] Compiling jpeg-decoder v0.1.22 [INFO] [stderr] Compiling tiff v0.6.1 [INFO] [stderr] Compiling image v0.23.14 [INFO] [stderr] Compiling mockall_derive v0.11.0 [INFO] [stderr] Compiling mockall v0.11.0 [INFO] [stderr] Compiling nes-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:15:39 [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | / run!([1, 2] -> [3]; [INFO] [stdout] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 82 | | INX, [INFO] [stdout] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stdout] ... | [INFO] [stdout] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 87 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:16:43 [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | / run!([1, 2] -> [3]; [INFO] [stdout] 81 | | LDA_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 82 | | INX, [INFO] [stdout] 83 | | ADC_ABSOLUTE_X, PARAM_ADDRESS, 0, [INFO] [stdout] ... | [INFO] [stdout] 86 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 87 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:15:39 [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | / run!([7, 6] -> [42]; [INFO] [stdout] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stdout] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 95 | | INX, [INFO] [stdout] ... | [INFO] [stdout] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 102 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:16:43 [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | / run!([7, 6] -> [42]; [INFO] [stdout] 93 | | LDA_IMMEDIATE, 0u8, [INFO] [stdout] 94 | | LDY_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 95 | | INX, [INFO] [stdout] ... | [INFO] [stdout] 101 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 102 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:15:39 [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | / run!([20] -> [210]; [INFO] [stdout] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stdout] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] ... | [INFO] [stdout] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 116 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:16:43 [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | / run!([20] -> [210]; [INFO] [stdout] 108 | | LDA_IMMEDIATE, 0u8, [INFO] [stdout] 109 | | LDX_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] 110 | | ADC_ABSOLUTE, PARAM_ADDRESS, 0, [INFO] [stdout] ... | [INFO] [stdout] 115 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 116 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:15:39 [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | / run!([20] -> [210]; [INFO] [stdout] 122 | | 0 => { [INFO] [stdout] 123 | | JSR, 0x34, 0x12, [INFO] [stdout] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stdout] ... | [INFO] [stdout] 135 | | } [INFO] [stdout] 136 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:16:43 [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | / run!([20] -> [210]; [INFO] [stdout] 122 | | 0 => { [INFO] [stdout] 123 | | JSR, 0x34, 0x12, [INFO] [stdout] 124 | | LDA_IMMEDIATE, 1u8, [INFO] [stdout] ... | [INFO] [stdout] 135 | | } [INFO] [stdout] 136 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:15:39 [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | / run!([11] -> [89]; [INFO] [stdout] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stdout] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stdout] 144 | | SEC, [INFO] [stdout] ... | [INFO] [stdout] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 161 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> tests/simple_programs.rs:16:43 [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | / run!([11] -> [89]; [INFO] [stdout] 142 | | LDX_IMMEDIATE, 0x01u8, [INFO] [stdout] 143 | | STX_ZERO_PAGE, 0xefu8, [INFO] [stdout] 144 | | SEC, [INFO] [stdout] ... | [INFO] [stdout] 160 | | STA_ABSOLUTE, HALT_ADDRESS, 0 [INFO] [stdout] 161 | | ); [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stdout] | ++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/cpu.rs:410:89 [INFO] [stdout] | [INFO] [stdout] 410 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 410 - fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stdout] 410 + fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 33.58s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/nes_rust-8cd349153b17d548) [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/nes_rust-f7fae399b97a4bb3) [INFO] [stderr] Executable tests/external_tests.rs (/opt/rustwide/target/debug/deps/external_tests-a7d99044ff6ca23f) [INFO] [stderr] Executable tests/simple_programs.rs (/opt/rustwide/target/debug/deps/simple_programs-5a7f2d82f1ed5195) [INFO] running `Command { std: "docker" "inspect" "d3477578842735f888830395f8beffc6e334e0e203caf92f065d11a8ef4f3891", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3477578842735f888830395f8beffc6e334e0e203caf92f065d11a8ef4f3891", kill_on_drop: false }` [INFO] [stdout] d3477578842735f888830395f8beffc6e334e0e203caf92f065d11a8ef4f3891 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-117/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fc66ac2d4ccbc42ae45a92cb49effabbcae9ff48565a9e12b2086009a948a190 [INFO] running `Command { std: "docker" "start" "-a" "fc66ac2d4ccbc42ae45a92cb49effabbcae9ff48565a9e12b2086009a948a190", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/cpu.rs:410:89 [INFO] [stderr] | [INFO] [stderr] 410 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 410 - fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] 410 + fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `nes-rust` (lib) generated 1 warning [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 15 | let params: Vec = $params.into_iterIntoIterator::into_iter(()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> tests/simple_programs.rs:16:43 [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.into_iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^ [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 changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: this warning originates in the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = $expected.iter().cloned().collect(); [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stderr] | [INFO] [stderr] 16 | let expected: Vec = IntoIterator::into_iter($expected.into_iter()).cloned().collect(); [INFO] [stderr] | ++++++++++++++++++++++++ + [INFO] [stderr] [INFO] [stderr] warning: `nes-rust` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `nes-rust` (test "simple_programs") generated 10 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.73s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nes_rust-8cd349153b17d548) [INFO] [stdout] [INFO] [stdout] running 207 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_mirrors_0x3000_through_0x3eff_to_ppu_ram ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_maps_0x8000_through_0xffff_to_prg_rom ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_rom_if_not_large_enough ... 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_maps_0x0000_through_0x1fff_to_chr_rom ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_mirrors_0x2800_through_0x2fff_to_ppu_ram ... ok [INFO] [stdout] test cartridge::tests::rom_cartridge_maps_0x6000_through_0x7fff_to_prg_ram ... ok [INFO] [stdout] test cpu::addressing_modes::tests::accumulator_addressing_mode_fetches_accumulator_value ... 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::indirect_addressing_mode_fetches_address_at_given_address ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_internal_ram_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::addressing_modes::tests::immediate_addressing_mode_fetches_given_value ... ok [INFO] [stdout] test cpu::addressing_modes::tests::zero_page_y_addressing_mode_wraps ... 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::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::indirect_addressing_mode_wraps_at_end_of_page ... 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::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::memory::tests::can_read_oamdata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_read_ppustatus_in_nes_cpu_memory ... 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::indexed_indirect_addressing_mode_wraps_on_zero_page_overflow ... 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_write_ppuaddr_in_nes_cpu_memory ... 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::memory::tests::can_read_ppudata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_adc_sets_overflow_flag_on_signed_overflow ... ok [INFO] [stdout] test cpu::memory::tests::nes_cpu_memory_addresses_0x800_to_0x1fff_mirror_internal_ram ... ok [INFO] [stdout] test cpu::tests::instr_bcc_does_not_branch_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_adc_sets_carry_flag_on_unsigned_overflow ... ok [INFO] [stdout] test cpu::tests::instr_bmi_branches_when_negative_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_bcs_branches_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bmi_does_not_branch_when_negative_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_beq_does_not_branch_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_asl_sets_carry_flag_on_overflow ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_zero_flag_when_bitwise_and_is_zero ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_program_counter_to_reset_vector ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuscroll_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::can_write_oamdata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::memory::tests::reading_from_4016_reads_from_input_device ... ok [INFO] [stdout] test cpu::tests::cpu_initialises_in_default_state ... ok [INFO] [stdout] test cpu::memory::tests::can_read_and_write_cartridge_space_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_bpl_branches_when_negative_flag_clear ... ok [INFO] [stdout] test cpu::tests::calling_non_maskable_interrupt_sets_interrupt_flag ... 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::memory::tests::writing_to_4016_writes_to_input_device ... ok [INFO] [stdout] test cpu::tests::instr_brk_jumps_to_address_at_interrupt_vector ... ok [INFO] [stdout] test cpu::tests::instr_bpl_does_not_branch_when_negative_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_clc_clears_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_dex_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_cld_clears_decimal_flag ... 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_bvs_branches_when_carry_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_bvc_branches_when_overflow_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_dey_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_dex_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_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_negative_flag_based_on_result ... ok [INFO] [stdout] test cpu::tests::instr_cpy_compares_using_y_register ... ok [INFO] [stdout] test cpu::tests::instr_bcs_does_not_branch_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_bne_does_not_branch_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_eor_performs_bitwise_xor ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_negative_bit_based_on_bit_7_of_operand ... ok [INFO] [stdout] test cpu::tests::instr_inc_increments_operand ... ok [INFO] [stdout] test cpu::tests::instr_brk_sets_break_flag_on_stack ... ok [INFO] [stdout] test cpu::tests::instr_dec_sets_zero_flag_based_on_result ... 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_jsr_decrements_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test cpu::tests::instr_ora_performs_bitwise_or ... ok [INFO] [stdout] test cpu::tests::instr_ldy_loads_operand_into_y_register ... ok [INFO] [stdout] test cpu::tests::instr_nop_increments_program_counter ... ok [INFO] [stdout] test cpu::tests::instr_jmp_jumps_to_immediate_operand ... ok [INFO] [stdout] test cpu::tests::instr_adc_adds_numbers ... ok [INFO] [stdout] test cpu::tests::instr_inx_increments_x_register ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppuctrl_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_bvc_does_not_branch_when_overflow_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_beq_branches_when_zero_flag_set ... ok [INFO] [stdout] test cpu::tests::instr_pha_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppumask_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_pla_increments_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_php_decrements_stack_pointer_by_one_byte ... ok [INFO] [stdout] test cpu::tests::instr_sec_sets_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_bne_branches_when_zero_flag_clear ... ok [INFO] [stdout] test cpu::tests::instr_rti_reads_status_and_program_counter_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_plp_reads_status_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_sei_sets_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_sta_stores_accumulator_in_memory ... 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_stx_stores_x_register_in_memory ... 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::instr_php_writes_status_to_stack_pointer_with_break_always_set ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_jumps_to_address_at_nmi_vector ... ok [INFO] [stdout] test cpu::tests::instr_tay_transfers_accumulator_to_y_register ... ok [INFO] [stdout] test cpu::tests::instr_txs_does_not_modify_zero_or_negative_register ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_3_when_executing_3_byte_instr ... ok [INFO] [stdout] test cpu::tests::instr_tya_transfers_y_register_to_accumulator ... ok [INFO] [stdout] test cpu::tests::instructions_can_wrap_on_program_counter_overflow ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_2_when_executing_2_byte_instr ... ok [INFO] [stdout] test cpu::tests::instr_sbc_subtracts_numbers ... ok [INFO] [stdout] test cpu::tests::on_non_maskable_interrupt_reset_interrupt_flag ... ok [INFO] [stdout] test i_nes::tests::can_read_chr_rom_data_from_ines_file ... ok [INFO] [stdout] test cpu::tests::stack_pointer_wraps_on_overflow ... ok [INFO] [stdout] test i_nes::tests::can_read_mapper_from_ines_file ... ok [INFO] [stdout] test cpu::tests::stack_operations_wrap_value_on_overflow ... ok [INFO] [stdout] test cpu::tests::instr_asl_shifts_left ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_not_set_when_accumulator_is_non_zero ... ok [INFO] [stdout] test cpu::tests::instr_lda_loads_operand_into_accunmulator ... ok [INFO] [stdout] test cpu::tests::instr_sbc_sets_overflow_bit_when_sign_is_wrong ... ok [INFO] [stdout] test i_nes::tests::can_read_prg_rom_data_from_ines_file ... ok [INFO] [stdout] test cpu::tests::program_counter_is_incremented_by_1_when_executing_1_byte_instr ... ok [INFO] [stdout] test cpu::tests::instr_clv_clears_overflow_flag ... ok [INFO] [stdout] test cpu::memory::tests::can_write_oamdma_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_bit_sets_overflow_bit_based_on_bit_6_of_operand ... ok [INFO] [stdout] test cpu::tests::zero_flag_is_set_when_accumulator_is_zero ... ok [INFO] [stdout] test input::tests::after_reading_status_subsequent_reads_return_zero ... 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_cmp_sets_zero_flag_if_accumulator_equals_operand ... ok [INFO] [stdout] test input::tests::when_strobe_is_toggled_off_button_status_is_reported ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_set_when_accumulator_is_negative ... ok [INFO] [stdout] test cpu::tests::instr_inc_sets_negative_flag_based_on_result ... ok [INFO] [stdout] test input::tests::pressing_and_releasing_buttons_toggles_fields ... ok [INFO] [stdout] test ppu::memory::tests::can_read_palette_ram_in_nes_ppu_memory ... ok [INFO] [stdout] test input::tests::while_strobe_is_on_always_report_state_of_button_a ... ok [INFO] [stdout] test ppu::status::tests::reading_status_resets_vblank ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_sprite_pattern_table_address ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_nmi_on_vblank ... ok [INFO] [stdout] test ppu::tests::incrementing_coarse_x_increments_to_next_tile ... 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::can_get_tile_address_from_scroll ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_increments_coarse_y_when_fine_y_is_7 ... ok [INFO] [stdout] test cpu::tests::instr_ldx_loads_operand_into_x_register ... ok [INFO] [stdout] test cpu::tests::instr_iny_increments_y_register ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_background_pattern_table_address ... ok [INFO] [stdout] test ppu::control::tests::control_specifies_address_increment ... ok [INFO] [stdout] test cpu::tests::instr_bvs_does_not_branch_when_carry_flag_clear ... ok [INFO] [stdout] test ppu::tests::incrementing_fine_y_increments_fine_y_by_1 ... ok [INFO] [stdout] test ppu::tests::can_read_rows_from_nametable ... ok [INFO] [stdout] test ppu::tests::can_get_attribute_address_from_scroll ... 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::instr_pla_reads_accumulator_from_stack ... ok [INFO] [stdout] test ppu::memory::tests::palette_ram_mirrors_from_0x3f20_to_0x3fff ... ok [INFO] [stdout] test cpu::tests::instr_pha_writes_accumulator_to_stack_pointer ... ok [INFO] [stdout] test cpu::tests::instr_dey_decrements_y_register ... ok [INFO] [stdout] test cpu::tests::instr_rts_reads_program_counter_plus_one_from_stack ... ok [INFO] [stdout] test cpu::tests::instr_cli_clears_interrupt_disable_flag ... ok [INFO] [stdout] test cpu::tests::instr_inc_sets_zero_flag_based_on_result ... ok [INFO] [stdout] test ppu::tests::loading_sprites_loads_all_sprites_for_a_given_scanline ... ok [INFO] [stdout] test cpu::memory::tests::can_write_oamaddr_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_brk_decrements_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test ppu::memory::tests::can_read_cartridge_space_in_nes_ppu_memory ... ok [INFO] [stdout] test ppu::memory::tests::palette_ram_mirrors_0x3f1x_to_0x3f0x_for_0_4_8_and_c ... ok [INFO] [stdout] test cpu::tests::instr_dec_decrements_operand ... ok [INFO] [stdout] test cpu::tests::instr_rti_increments_stack_pointer_by_three_bytes ... ok [INFO] [stdout] test cartridge::tests::nrom_cartridge_cannot_write_to_read_only_memory - should panic ... ok [INFO] [stdout] test cpu::tests::instr_bcc_branches_when_carry_flag_clear ... ok [INFO] [stdout] test cpu::tests::negative_flag_is_not_set_when_accumulator_is_positive ... ok [INFO] [stdout] test cpu::tests::instr_jsr_writes_program_counter_to_stack_pointer ... ok [INFO] [stdout] test ppu::tests::reading_oam_data_reads_from_oam_address ... ok [INFO] [stdout] test cpu::tests::instr_rts_increments_stack_pointer_by_two_bytes ... ok [INFO] [stdout] test ppu::tests::reading_or_writing_ppu_data_increments_address_by_increment_in_control_register ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_from_palette_does_not_use_internal_buffer ... ok [INFO] [stdout] test ppu::tests::loading_sprites_clears_active_sprites ... ok [INFO] [stdout] test cpu::tests::instr_cpx_compares_using_x_register ... ok [INFO] [stdout] test cpu::tests::instr_lsr_sets_carry_flag_on_underflow ... ok [INFO] [stdout] test cpu::memory::tests::can_write_ppudata_in_nes_cpu_memory ... ok [INFO] [stdout] test cpu::tests::instr_sty_stores_y_register_in_memory ... ok [INFO] [stdout] test ppu::tests::reading_ppu_data_reads_from_internal_buffer ... ok [INFO] [stdout] test ppu::tests::when_more_than_eight_sprites_on_scanline_only_first_eight_are_loaded ... ok [INFO] [stdout] test ppu::tests::each_tick_produces_a_color ... 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::instr_plp_increments_stack_pointer_by_one_byte ... ok [INFO] [stdout] test ppu::tests::transfer_horizontal_scroll_transfers_horizontal_scroll_from_temporary_to_address ... ok [INFO] [stdout] test ppu::tests::reading_ppu_status_resets_address_toggle ... 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_control_sets_temporary_address_to_nametable ... ok [INFO] [stdout] test ppu::tests::writing_oam_data_increments_oam_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_once_sets_masked_upper_bits_of_temporary_address ... ok [INFO] [stdout] test cpu::tests::program_counter_wraps_on_overflow ... ok [INFO] [stdout] test ppu::tests::writing_oam_dma_writes_from_cpu_page_to_oam ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_twice_then_writing_data_writes_data_to_address ... ok [INFO] [stdout] test ppu::tests::writing_oam_data_writes_to_oam_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_mask_sets_mask ... ok [INFO] [stdout] test cpu::tests::instr_lsr_shifts_right ... ok [INFO] [stdout] test ppu::tests::writing_oam_dma_writes_from_oam_address_and_wraps ... ok [INFO] [stdout] test ppu::tests::writing_ppu_scroll_writes_to_temporary_register ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_attribute_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_tile_address ... ok [INFO] [stdout] test ppu::tests::writing_oam_address_sets_oam_address ... ok [INFO] [stdout] test ppu::tests::writing_ppu_control_sets_control ... ok [INFO] [stdout] test ppu::tests::reading_ppu_status_returns_status ... ok [INFO] [stdout] test ppu::tests::writing_ppu_address_twice_then_reading_data_reads_data_from_address ... ok [INFO] [stdout] test cpu::tests::instr_ror_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::instr_rol_rotates_left_with_carry_flag ... ok [INFO] [stdout] test cpu::tests::addition_behaves_appropriately_across_many_values ... ok [INFO] [stdout] test cpu::tests::subtraction_behaves_appropriately_across_many_values ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 207 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.13s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/nes_rust-f7fae399b97a4bb3) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Running tests/external_tests.rs (/opt/rustwide/target/debug/deps/external_tests-a7d99044ff6ca23f) [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test blargg_ppu_tests_vbl_clear_time ... ignored [INFO] [stdout] test blargg_ppu_tests_vram_access ... ignored [INFO] [stdout] test nestest ... ok [INFO] [stdout] test blargg_ppu_tests_power_up_palette ... ok [INFO] [stdout] test blargg_ppu_tests_palette_ram ... ok [INFO] [stderr] Running tests/simple_programs.rs (/opt/rustwide/target/debug/deps/simple_programs-5a7f2d82f1ed5195) [INFO] [stdout] test blargg_ppu_tests_sprite_ram ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.94s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test fibonacci ... ok [INFO] [stdout] test hello_world ... ok [INFO] [stdout] test one_plus_two ... ok [INFO] [stdout] test seven_times_six ... ok [INFO] [stdout] test triangle_number ... ok [INFO] [stdout] test triangle_number_subroutine ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Doc-tests nes-rust [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> /opt/rustwide/workdir/src/cpu.rs:410:89 [INFO] [stderr] | [INFO] [stderr] 410 | fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 410 - fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> (u8)) { [INFO] [stderr] 410 + fn shift(&mut self, reference: Reference, carry_bit: u8, op: impl FnOnce(u8, u8) -> u8) { [INFO] [stderr] | [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; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "fc66ac2d4ccbc42ae45a92cb49effabbcae9ff48565a9e12b2086009a948a190", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc66ac2d4ccbc42ae45a92cb49effabbcae9ff48565a9e12b2086009a948a190", kill_on_drop: false }` [INFO] [stdout] fc66ac2d4ccbc42ae45a92cb49effabbcae9ff48565a9e12b2086009a948a190