[INFO] cloning repository https://github.com/btwotwo/chip8rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/btwotwo/chip8rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbtwotwo%2Fchip8rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbtwotwo%2Fchip8rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9855fd91021ab763f01dd41705558955a98f4677
[INFO] testing btwotwo/chip8rust against beta-2020-10-09 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbtwotwo%2Fchip8rust" "/workspace/builds/worker-14/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/btwotwo/chip8rust on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/btwotwo/chip8rust
[INFO] finished tweaking git repo https://github.com/btwotwo/chip8rust
[INFO] tweaked toml for git repo https://github.com/btwotwo/chip8rust written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/btwotwo/chip8rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smallvec v1.1.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.5.1
[INFO] [stderr]   Downloaded bit-vec v0.6.1
[INFO] [stderr]   Downloaded crossterm v0.14.2
[INFO] [stderr]   Downloaded signal-hook v0.1.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f625efe418932f1bf202d897ed4468eceec8aa82d377f53ec3b7d0c345a8c492
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "f625efe418932f1bf202d897ed4468eceec8aa82d377f53ec3b7d0c345a8c492", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f625efe418932f1bf202d897ed4468eceec8aa82d377f53ec3b7d0c345a8c492", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f625efe418932f1bf202d897ed4468eceec8aa82d377f53ec3b7d0c345a8c492", kill_on_drop: false }`
[INFO] [stdout] f625efe418932f1bf202d897ed4468eceec8aa82d377f53ec3b7d0c345a8c492
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fab371f69cbb2fd7a4684365c1c338e2befb902034653a9913ff98eb13aededb
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "fab371f69cbb2fd7a4684365c1c338e2befb902034653a9913ff98eb13aededb", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.1.11
[INFO] [stderr]    Compiling bit-vec v0.6.1
[INFO] [stderr]    Compiling signal-hook-registry v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.7.0
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling parking_lot v0.10.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling signal-hook v0.1.12
[INFO] [stderr]    Compiling rand v0.7.0
[INFO] [stderr]    Compiling crossterm v0.14.2
[INFO] [stderr]    Compiling chip8rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `KeyEvent`
[INFO] [stdout]  --> src/keyboard.rs:2:52
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crossterm::event::{poll, read, Event, KeyCode, KeyEvent};
[INFO] [stdout]   |                                                    ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EnterAlternateScreen`
[INFO] [stdout]   --> src/screen/screen.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |     use crossterm::terminal::{EnterAlternateScreen};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     execute!(
[INFO] [stdout] 15 | |         stdout,
[INFO] [stdout] 16 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All)
[INFO] [stdout] 17 | |     )?;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 queue!(
[INFO] [stdout] 26 | |                     stdout,
[INFO] [stdout] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stdout] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stdout] 29 | |                 )?;
[INFO] [stdout]    | |_________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 queue!(
[INFO] [stdout] 26 | |                     stdout,
[INFO] [stdout] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stdout] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stdout] 29 | |                 )?;
[INFO] [stdout]    | |_________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]   --> src/opcode/mod.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn clear(opcode: Opcode, chip: &mut Chip) {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut size = fs::metadata(filename)?.len();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `pixel` should have an upper case name
[INFO] [stdout]  --> src/screen/screen.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const pixel: &'static str = "█";
[INFO] [stdout]   |       ^^^^^ help: convert the identifier to upper case: `PIXEL`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 8.45s
[INFO] running `Command { std: "docker" "inspect" "fab371f69cbb2fd7a4684365c1c338e2befb902034653a9913ff98eb13aededb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fab371f69cbb2fd7a4684365c1c338e2befb902034653a9913ff98eb13aededb", kill_on_drop: false }`
[INFO] [stdout] fab371f69cbb2fd7a4684365c1c338e2befb902034653a9913ff98eb13aededb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4df7d1d1861926ac5de3966b90c1557eccf77864498a7497dc0cc7fd155d2ce1
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "4df7d1d1861926ac5de3966b90c1557eccf77864498a7497dc0cc7fd155d2ce1", kill_on_drop: false }`
[INFO] [stderr]    Compiling chip8rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `KeyEvent`
[INFO] [stdout]  --> src/keyboard.rs:2:52
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crossterm::event::{poll, read, Event, KeyCode, KeyEvent};
[INFO] [stdout]   |                                                    ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EnterAlternateScreen`
[INFO] [stdout]   --> src/screen/screen.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |     use crossterm::terminal::{EnterAlternateScreen};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     execute!(
[INFO] [stdout] 15 | |         stdout,
[INFO] [stdout] 16 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All)
[INFO] [stdout] 17 | |     )?;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 queue!(
[INFO] [stdout] 26 | |                     stdout,
[INFO] [stdout] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stdout] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stdout] 29 | |                 )?;
[INFO] [stdout]    | |_________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 queue!(
[INFO] [stdout] 26 | |                     stdout,
[INFO] [stdout] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stdout] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stdout] 29 | |                 )?;
[INFO] [stdout]    | |_________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/screen/screen.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | /     execute!(
[INFO] [stdout] 46 | |         stdout,
[INFO] [stdout] 47 | |         crossterm::cursor::Hide,
[INFO] [stdout] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stdout] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stdout] 50 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]   --> src/opcode/mod.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn clear(opcode: Opcode, chip: &mut Chip) {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opcode`
[INFO] [stdout]   --> src/opcode/opcodes_tests.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let opcode = 0x2DEA;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_screen`
[INFO] [stdout]    --> src/screen/display.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let expected_screen: Vec<u64> = vec![
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_screen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut size = fs::metadata(filename)?.len();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `pixel` should have an upper case name
[INFO] [stdout]  --> src/screen/screen.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const pixel: &'static str = "█";
[INFO] [stdout]   |       ^^^^^ help: convert the identifier to upper case: `PIXEL`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.59s
[INFO] running `Command { std: "docker" "inspect" "4df7d1d1861926ac5de3966b90c1557eccf77864498a7497dc0cc7fd155d2ce1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4df7d1d1861926ac5de3966b90c1557eccf77864498a7497dc0cc7fd155d2ce1", kill_on_drop: false }`
[INFO] [stdout] 4df7d1d1861926ac5de3966b90c1557eccf77864498a7497dc0cc7fd155d2ce1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9a5914c13b564ea30bdf636d81096a75d774d2b4df344945d9dadb7d3a93cf75
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "9a5914c13b564ea30bdf636d81096a75d774d2b4df344945d9dadb7d3a93cf75", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `KeyEvent`
[INFO] [stderr]  --> src/keyboard.rs:2:52
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crossterm::event::{poll, read, Event, KeyCode, KeyEvent};
[INFO] [stderr]   |                                                    ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EnterAlternateScreen`
[INFO] [stderr]   --> src/screen/screen.rs:41:31
[INFO] [stderr]    |
[INFO] [stderr] 41 |     use crossterm::terminal::{EnterAlternateScreen};
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | /     execute!(
[INFO] [stderr] 15 | |         stdout,
[INFO] [stderr] 16 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All)
[INFO] [stderr] 17 | |     )?;
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[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: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:25:17
[INFO] [stderr]    |
[INFO] [stderr] 25 | /                 queue!(
[INFO] [stderr] 26 | |                     stdout,
[INFO] [stderr] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stderr] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stderr] 29 | |                 )?;
[INFO] [stderr]    | |_________________^
[INFO] [stderr]    |
[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: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:25:17
[INFO] [stderr]    |
[INFO] [stderr] 25 | /                 queue!(
[INFO] [stderr] 26 | |                     stdout,
[INFO] [stderr] 27 | |                     crossterm::cursor::MoveTo(i, row_idx as u16),
[INFO] [stderr] 28 | |                     crossterm::style::Print(pixel)
[INFO] [stderr] 29 | |                 )?;
[INFO] [stderr]    | |_________________^
[INFO] [stderr]    |
[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: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | /     execute!(
[INFO] [stderr] 46 | |         stdout,
[INFO] [stderr] 47 | |         crossterm::cursor::Hide,
[INFO] [stderr] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stderr] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stderr] 50 | |     )
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[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: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | /     execute!(
[INFO] [stderr] 46 | |         stdout,
[INFO] [stderr] 47 | |         crossterm::cursor::Hide,
[INFO] [stderr] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stderr] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stderr] 50 | |     )
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[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: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/screen/screen.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | /     execute!(
[INFO] [stderr] 46 | |         stdout,
[INFO] [stderr] 47 | |         crossterm::cursor::Hide,
[INFO] [stderr] 48 | |         crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
[INFO] [stderr] 49 | |         crossterm::terminal::SetSize(64,32),
[INFO] [stderr] 50 | |     )
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[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: unused variable: `opcode`
[INFO] [stderr]   --> src/opcode/mod.rs:84:14
[INFO] [stderr]    |
[INFO] [stderr] 84 |     fn clear(opcode: Opcode, chip: &mut Chip) {
[INFO] [stderr]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opcode`
[INFO] [stderr]   --> src/opcode/opcodes_tests.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let opcode = 0x2DEA;
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_screen`
[INFO] [stderr]    --> src/screen/display.rs:211:13
[INFO] [stderr]     |
[INFO] [stderr] 211 |         let expected_screen: Vec<u64> = vec![
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_screen`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let mut size = fs::metadata(filename)?.len();
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `pixel` should have an upper case name
[INFO] [stderr]  --> src/screen/screen.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const pixel: &'static str = "█";
[INFO] [stderr]   |       ^^^^^ help: convert the identifier to upper case: `PIXEL`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 13 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/chip8rust-b9380b5101d4c8c0
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test opcode::handler_tests::call_does_not_increase_pc ... ok
[INFO] [stdout] test opcode::handler_tests::next_increases_program_counter ... ok
[INFO] [stdout] test opcode::handler_tests::jmpv0_does_not_increase_pc ... ok
[INFO] [stdout] test opcode::opcodes_tests::addreg_carry_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::add_test ... ok
[INFO] [stdout] test opcode::handler_tests::jp_does_not_increase_pc ... ok
[INFO] [stdout] test opcode::opcodes_tests::jp_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::or_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::jmpv0_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::ld_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::ldr_test ... ok
[INFO] [stdout] test opcode::handler_tests::ret_does_not_increase_pc ... ok
[INFO] [stdout] test opcode::opcodes_tests::add_overflow_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::sne_test_neq ... ok
[INFO] [stdout] test opcode::opcodes_tests::and_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::sne_test_eq ... ok
[INFO] [stdout] test opcode::opcodes_tests::shiftr_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::skp_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::addreg_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::shiftl_test_significant_one ... ok
[INFO] [stdout] test opcode::opcodes_tests::se_test_eq ... ok
[INFO] [stdout] test opcode::opcodes_tests::sknp_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::se_test_neq ... ok
[INFO] [stdout] test opcode::opcodes_tests::sre_test_eq ... ok
[INFO] [stdout] test opcode::opcodes_tests::call_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::srne_test_eq ... ok
[INFO] [stdout] test opcode::opcodes_tests::srne_test_neq ... ok
[INFO] [stdout] test opcode::opcodes_tests::sub_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::sub_test_overflow ... ok
[INFO] [stdout] test opcode::opcodes_tests::sre_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::ret_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::subreg_carry_test ... ok
[INFO] [stdout] test opcode::opcodes_tests::subreg_test ... ok
[INFO] [stdout] test screen::display::tests::does_not_set_collision ... ok
[INFO] [stdout] test screen::display::tests::y_moves_to_the_other_side ... ok
[INFO] [stdout] test opcode::opcodes_tests::xor_test ... ok
[INFO] [stdout] test screen::display::tests::prints_symbol ... ok
[INFO] [stdout] test screen::display::tests::sets_collision ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9a5914c13b564ea30bdf636d81096a75d774d2b4df344945d9dadb7d3a93cf75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a5914c13b564ea30bdf636d81096a75d774d2b4df344945d9dadb7d3a93cf75", kill_on_drop: false }`
[INFO] [stdout] 9a5914c13b564ea30bdf636d81096a75d774d2b4df344945d9dadb7d3a93cf75
