[INFO] cloning repository https://github.com/and3rn3t/hack
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/and3rn3t/hack" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fand3rn3t%2Fhack", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fand3rn3t%2Fhack'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3cf8797fd9747112863e15d482729e1ac86d02b3
[INFO] testing and3rn3t/hack against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fand3rn3t%2Fhack" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/and3rn3t/hack
[INFO] finished tweaking git repo https://github.com/and3rn3t/hack
[INFO] tweaked toml for git repo https://github.com/and3rn3t/hack written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/and3rn3t/hack on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/and3rn3t/hack already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded minicov v0.3.7
[INFO] [stderr]   Downloaded criterion-plot v0.6.0
[INFO] [stderr]   Downloaded wasm-bindgen-test v0.3.54
[INFO] [stderr]   Downloaded criterion v0.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-test-macro v0.3.54
[INFO] [stderr]   Downloaded proptest v1.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65d779469b982e3622663ac40a8226bed2bfac3d9badf7ce133b6b071150a10f
[INFO] running `Command { std: "docker" "start" "-a" "65d779469b982e3622663ac40a8226bed2bfac3d9badf7ce133b6b071150a10f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65d779469b982e3622663ac40a8226bed2bfac3d9badf7ce133b6b071150a10f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65d779469b982e3622663ac40a8226bed2bfac3d9badf7ce133b6b071150a10f", kill_on_drop: false }`
[INFO] [stdout] 65d779469b982e3622663ac40a8226bed2bfac3d9badf7ce133b6b071150a10f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3273f550fc3c7b67004f13206a2841173c836d222dbf8304b73642f759680f13
[INFO] running `Command { std: "docker" "start" "-a" "3273f550fc3c7b67004f13206a2841173c836d222dbf8304b73642f759680f13", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling hack_simulator v1.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/challenges.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Challenge {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub category: ChallengeCategory,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Challenge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time_limit` is never read
[INFO] [stdout]   --> src/challenges.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ChallengeVariant {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub time_limit: Option<u64>, // in seconds, for advanced/expert modes
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reverse`, `OSINT`, `Steganography`, `Malware`, and `IoT` are never constructed
[INFO] [stdout]   --> src/challenges.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum ChallengeCategory {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Reverse,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 79 |     Binary,
[INFO] [stdout] 80 |     OSINT,         // Open Source Intelligence (v1.2.0)
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     Steganography, // Hidden data techniques (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 82 |     Malware,       // Malware analysis and obfuscation (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 83 |     IoT,           // Internet of Things security (v1.5.0)
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_variants`, and `validate` are never used
[INFO] [stdout]    --> src/challenges.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Challenge {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  87 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_variants(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn validate(&self, answer: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_with_difficulty` is never used
[INFO] [stdout]     --> src/challenges.rs:2357:8
[INFO] [stdout]      |
[INFO] [stdout] 2357 | pub fn get_challenge_with_difficulty(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_difficulties` is never used
[INFO] [stdout]     --> src/challenges.rs:2367:8
[INFO] [stdout]      |
[INFO] [stdout] 2367 | pub fn get_challenge_difficulties(challenge_id: &str) -> Vec<ChallengeDifficulty> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeChoice` is never constructed
[INFO] [stdout]    --> src/narrative.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub struct NarrativeChoice {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceEffects` is never constructed
[INFO] [stdout]    --> src/narrative.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct ChoiceEffects {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceRequirements` is never constructed
[INFO] [stdout]    --> src/narrative.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub struct ChoiceRequirements {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeBranch` is never constructed
[INFO] [stdout]    --> src/narrative.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct NarrativeBranch {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchingNarrative` is never constructed
[INFO] [stdout]    --> src/narrative.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | pub struct BranchingNarrative {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/narrative.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | impl BranchingNarrative {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 371 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn initialize_branches(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn check_trigger(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 646 |     pub fn make_choice(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 676 |     pub fn is_choice_available(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 712 |     pub fn get_story_flags(&self) -> &HashSet<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     pub fn get_choice_history(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn get_branch(&self, id: &str) -> Option<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn get_all_branches(&self) -> Vec<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `theme_secondary` is never used
[INFO] [stdout]    --> src/ui.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn theme_secondary() -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_screen_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:364:12
[INFO] [stdout]     |
[INFO] [stdout] 364 |     pub fn clear_screen_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_frame` is never used
[INFO] [stdout]    --> src/ui.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn begin_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `end_frame` is never used
[INFO] [stdout]    --> src/ui.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 378 |     pub fn end_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 |     pub fn print_colored_buffered(text: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_screen` is never used
[INFO] [stdout]    --> src/ui.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 396 |     pub fn render_screen<F>(render_fn: F) -> io::Result<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_menu_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn render_menu_buffered(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:435:12
[INFO] [stdout]     |
[INFO] [stdout] 435 |     pub fn print_separator_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceTimer` is never constructed
[INFO] [stdout]    --> src/ui.rs:440:16
[INFO] [stdout]     |
[INFO] [stdout] 440 |     pub struct PerformanceTimer {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `elapsed` are never used
[INFO] [stdout]    --> src/ui.rs:446:16
[INFO] [stdout]     |
[INFO] [stdout] 445 |     impl PerformanceTimer {
[INFO] [stdout]     |     --------------------- associated items in this implementation
[INFO] [stdout] 446 |         pub fn new(name: &str) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |         pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_memory_usage` is never used
[INFO] [stdout]    --> src/ui.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn print_memory_usage(label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_command_history` is never used
[INFO] [stdout]    --> src/ui.rs:768:12
[INFO] [stdout]     |
[INFO] [stdout] 768 |     pub fn clear_command_history() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_history_size` is never used
[INFO] [stdout]    --> src/ui.rs:775:12
[INFO] [stdout]     |
[INFO] [stdout] 775 |     pub fn get_history_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/ui.rs:862:12
[INFO] [stdout]     |
[INFO] [stdout] 862 |     pub fn print_box(title: &str, content: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_challenge_header` is never used
[INFO] [stdout]    --> src/ui.rs:901:12
[INFO] [stdout]     |
[INFO] [stdout] 901 |     pub fn print_challenge_header(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `typewriter_effect` is never used
[INFO] [stdout]    --> src/ui.rs:941:12
[INFO] [stdout]     |
[INFO] [stdout] 941 |     pub fn typewriter_effect(text: &str, delay_ms: u64) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.19s
[INFO] running `Command { std: "docker" "inspect" "3273f550fc3c7b67004f13206a2841173c836d222dbf8304b73642f759680f13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3273f550fc3c7b67004f13206a2841173c836d222dbf8304b73642f759680f13", kill_on_drop: false }`
[INFO] [stdout] 3273f550fc3c7b67004f13206a2841173c836d222dbf8304b73642f759680f13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6fbac1dccae59a4243e6594d8dabb4ad9131553e3ff5a722bb6bbafac99aeca0
[INFO] running `Command { std: "docker" "start" "-a" "6fbac1dccae59a4243e6594d8dabb4ad9131553e3ff5a722bb6bbafac99aeca0", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.104
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.104
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling clap_builder v4.5.50
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling clap v4.5.50
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.104
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.54
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.104
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.104
[INFO] [stderr]    Compiling js-sys v0.3.81
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling criterion v0.7.0
[INFO] [stderr]    Compiling proptest v1.8.0
[INFO] [stderr]    Compiling hack_simulator v1.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.54
[INFO] [stderr]    Compiling wasm-bindgen-test v0.3.54
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/challenges.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Challenge {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub category: ChallengeCategory,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Challenge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time_limit` is never read
[INFO] [stdout]   --> src/challenges.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ChallengeVariant {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub time_limit: Option<u64>, // in seconds, for advanced/expert modes
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reverse`, `OSINT`, `Steganography`, `Malware`, and `IoT` are never constructed
[INFO] [stdout]   --> src/challenges.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum ChallengeCategory {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Reverse,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 79 |     Binary,
[INFO] [stdout] 80 |     OSINT,         // Open Source Intelligence (v1.2.0)
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     Steganography, // Hidden data techniques (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 82 |     Malware,       // Malware analysis and obfuscation (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 83 |     IoT,           // Internet of Things security (v1.5.0)
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_variants`, and `validate` are never used
[INFO] [stdout]    --> src/challenges.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Challenge {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  87 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_variants(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn validate(&self, answer: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_with_difficulty` is never used
[INFO] [stdout]     --> src/challenges.rs:2357:8
[INFO] [stdout]      |
[INFO] [stdout] 2357 | pub fn get_challenge_with_difficulty(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_difficulties` is never used
[INFO] [stdout]     --> src/challenges.rs:2367:8
[INFO] [stdout]      |
[INFO] [stdout] 2367 | pub fn get_challenge_difficulties(challenge_id: &str) -> Vec<ChallengeDifficulty> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeChoice` is never constructed
[INFO] [stdout]    --> src/narrative.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub struct NarrativeChoice {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceEffects` is never constructed
[INFO] [stdout]    --> src/narrative.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct ChoiceEffects {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceRequirements` is never constructed
[INFO] [stdout]    --> src/narrative.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub struct ChoiceRequirements {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeBranch` is never constructed
[INFO] [stdout]    --> src/narrative.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct NarrativeBranch {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchingNarrative` is never constructed
[INFO] [stdout]    --> src/narrative.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | pub struct BranchingNarrative {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/narrative.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | impl BranchingNarrative {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 371 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn initialize_branches(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn check_trigger(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 646 |     pub fn make_choice(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 676 |     pub fn is_choice_available(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 712 |     pub fn get_story_flags(&self) -> &HashSet<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     pub fn get_choice_history(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn get_branch(&self, id: &str) -> Option<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn get_all_branches(&self) -> Vec<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `theme_secondary` is never used
[INFO] [stdout]    --> src/ui.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn theme_secondary() -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_screen_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:364:12
[INFO] [stdout]     |
[INFO] [stdout] 364 |     pub fn clear_screen_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_frame` is never used
[INFO] [stdout]    --> src/ui.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn begin_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `end_frame` is never used
[INFO] [stdout]    --> src/ui.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 378 |     pub fn end_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 |     pub fn print_colored_buffered(text: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_screen` is never used
[INFO] [stdout]    --> src/ui.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 396 |     pub fn render_screen<F>(render_fn: F) -> io::Result<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_menu_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn render_menu_buffered(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:435:12
[INFO] [stdout]     |
[INFO] [stdout] 435 |     pub fn print_separator_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceTimer` is never constructed
[INFO] [stdout]    --> src/ui.rs:440:16
[INFO] [stdout]     |
[INFO] [stdout] 440 |     pub struct PerformanceTimer {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `elapsed` are never used
[INFO] [stdout]    --> src/ui.rs:446:16
[INFO] [stdout]     |
[INFO] [stdout] 445 |     impl PerformanceTimer {
[INFO] [stdout]     |     --------------------- associated items in this implementation
[INFO] [stdout] 446 |         pub fn new(name: &str) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |         pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_memory_usage` is never used
[INFO] [stdout]    --> src/ui.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn print_memory_usage(label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_command_history` is never used
[INFO] [stdout]    --> src/ui.rs:768:12
[INFO] [stdout]     |
[INFO] [stdout] 768 |     pub fn clear_command_history() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_history_size` is never used
[INFO] [stdout]    --> src/ui.rs:775:12
[INFO] [stdout]     |
[INFO] [stdout] 775 |     pub fn get_history_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/ui.rs:862:12
[INFO] [stdout]     |
[INFO] [stdout] 862 |     pub fn print_box(title: &str, content: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_challenge_header` is never used
[INFO] [stdout]    --> src/ui.rs:901:12
[INFO] [stdout]     |
[INFO] [stdout] 901 |     pub fn print_challenge_header(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `typewriter_effect` is never used
[INFO] [stdout]    --> src/ui.rs:941:12
[INFO] [stdout]     |
[INFO] [stdout] 941 |     pub fn typewriter_effect(text: &str, delay_ms: u64) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_low_sanity_state` is never used
[INFO] [stdout]   --> tests/common/mod.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_low_sanity_state() -> GameState {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read` is never used
[INFO] [stdout]   --> tests/common/mod.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl TempSaveFile {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn read(&self) -> std::io::Result<String> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY` is never used
[INFO] [stdout]   --> tests/common/mod.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub const EMPTY: &str = "";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITESPACE` is never used
[INFO] [stdout]   --> tests/common/mod.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub const WHITESPACE: &str = "   ";
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERY_LONG` is never used
[INFO] [stdout]   --> tests/common/mod.rs:91:15
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const VERY_LONG: &str = "A very long string that repeats many times. A very long string that repeats many times. A very long...
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPECIAL_CHARS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub const SPECIAL_CHARS: &str = "!@#$%^&*()_+-={}[]|\\:\";<>?,./~`";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNICODE` is never used
[INFO] [stdout]   --> tests/common/mod.rs:93:15
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub const UNICODE: &str = "测试 👻 🎃 🔥";
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQL_INJECTION` is never used
[INFO] [stdout]   --> tests/common/mod.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub const SQL_INJECTION: &str = "' OR '1'='1' --";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HTML_TAGS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub const HTML_TAGS: &str = "<script>alert('xss')</script>";
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_BYTE` is never used
[INFO] [stdout]   --> tests/common/mod.rs:96:15
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub const NULL_BYTE: &str = "test\0null";
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed_challenges`
[INFO] [stdout]    --> src/narrative.rs:620:9
[INFO] [stdout]     |
[INFO] [stdout] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/challenges.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Challenge {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub category: ChallengeCategory,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Challenge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time_limit` is never read
[INFO] [stdout]   --> src/challenges.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ChallengeVariant {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub time_limit: Option<u64>, // in seconds, for advanced/expert modes
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reverse`, `OSINT`, `Steganography`, `Malware`, and `IoT` are never constructed
[INFO] [stdout]   --> src/challenges.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum ChallengeCategory {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Reverse,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 79 |     Binary,
[INFO] [stdout] 80 |     OSINT,         // Open Source Intelligence (v1.2.0)
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     Steganography, // Hidden data techniques (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 82 |     Malware,       // Malware analysis and obfuscation (v1.5.0)
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 83 |     IoT,           // Internet of Things security (v1.5.0)
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChallengeCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_variants`, and `validate` are never used
[INFO] [stdout]    --> src/challenges.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Challenge {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  87 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_variants(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn validate(&self, answer: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_with_difficulty` is never used
[INFO] [stdout]     --> src/challenges.rs:2357:8
[INFO] [stdout]      |
[INFO] [stdout] 2357 | pub fn get_challenge_with_difficulty(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_challenge_difficulties` is never used
[INFO] [stdout]     --> src/challenges.rs:2367:8
[INFO] [stdout]      |
[INFO] [stdout] 2367 | pub fn get_challenge_difficulties(challenge_id: &str) -> Vec<ChallengeDifficulty> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeChoice` is never constructed
[INFO] [stdout]    --> src/narrative.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub struct NarrativeChoice {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceEffects` is never constructed
[INFO] [stdout]    --> src/narrative.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct ChoiceEffects {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChoiceRequirements` is never constructed
[INFO] [stdout]    --> src/narrative.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub struct ChoiceRequirements {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NarrativeBranch` is never constructed
[INFO] [stdout]    --> src/narrative.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub struct NarrativeBranch {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchingNarrative` is never constructed
[INFO] [stdout]    --> src/narrative.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | pub struct BranchingNarrative {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/narrative.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | impl BranchingNarrative {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 371 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn initialize_branches(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     pub fn check_trigger(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 646 |     pub fn make_choice(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 676 |     pub fn is_choice_available(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 712 |     pub fn get_story_flags(&self) -> &HashSet<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     pub fn get_choice_history(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn get_branch(&self, id: &str) -> Option<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     pub fn get_all_branches(&self) -> Vec<&NarrativeBranch> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `theme_secondary` is never used
[INFO] [stdout]    --> src/ui.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn theme_secondary() -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_screen_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:364:12
[INFO] [stdout]     |
[INFO] [stdout] 364 |     pub fn clear_screen_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_frame` is never used
[INFO] [stdout]    --> src/ui.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn begin_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `end_frame` is never used
[INFO] [stdout]    --> src/ui.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 378 |     pub fn end_frame() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 |     pub fn print_colored_buffered(text: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_screen` is never used
[INFO] [stdout]    --> src/ui.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 396 |     pub fn render_screen<F>(render_fn: F) -> io::Result<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_menu_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn render_menu_buffered(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator_buffered` is never used
[INFO] [stdout]    --> src/ui.rs:435:12
[INFO] [stdout]     |
[INFO] [stdout] 435 |     pub fn print_separator_buffered() -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceTimer` is never constructed
[INFO] [stdout]    --> src/ui.rs:440:16
[INFO] [stdout]     |
[INFO] [stdout] 440 |     pub struct PerformanceTimer {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `elapsed` are never used
[INFO] [stdout]    --> src/ui.rs:446:16
[INFO] [stdout]     |
[INFO] [stdout] 445 |     impl PerformanceTimer {
[INFO] [stdout]     |     --------------------- associated items in this implementation
[INFO] [stdout] 446 |         pub fn new(name: &str) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |         pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_memory_usage` is never used
[INFO] [stdout]    --> src/ui.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn print_memory_usage(label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_command_history` is never used
[INFO] [stdout]    --> src/ui.rs:768:12
[INFO] [stdout]     |
[INFO] [stdout] 768 |     pub fn clear_command_history() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_history_size` is never used
[INFO] [stdout]    --> src/ui.rs:775:12
[INFO] [stdout]     |
[INFO] [stdout] 775 |     pub fn get_history_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/ui.rs:862:12
[INFO] [stdout]     |
[INFO] [stdout] 862 |     pub fn print_box(title: &str, content: &str, color: Color) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_challenge_header` is never used
[INFO] [stdout]    --> src/ui.rs:901:12
[INFO] [stdout]     |
[INFO] [stdout] 901 |     pub fn print_challenge_header(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `typewriter_effect` is never used
[INFO] [stdout]    --> src/ui.rs:941:12
[INFO] [stdout]     |
[INFO] [stdout] 941 |     pub fn typewriter_effect(text: &str, delay_ms: u64) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_sql_challenge` is never used
[INFO] [stdout]     --> src/challenges.rs:2227:4
[INFO] [stdout]      |
[INFO] [stdout] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_to_io_result` is never used
[INFO] [stdout]   --> src/tutorial.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 50.18s
[INFO] running `Command { std: "docker" "inspect" "6fbac1dccae59a4243e6594d8dabb4ad9131553e3ff5a722bb6bbafac99aeca0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fbac1dccae59a4243e6594d8dabb4ad9131553e3ff5a722bb6bbafac99aeca0", kill_on_drop: false }`
[INFO] [stdout] 6fbac1dccae59a4243e6594d8dabb4ad9131553e3ff5a722bb6bbafac99aeca0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 25cff655eb5236bedc168418d13dd3fe8a34136f6aefc0bcd8854e4f03c3a318
[INFO] running `Command { std: "docker" "start" "-a" "25cff655eb5236bedc168418d13dd3fe8a34136f6aefc0bcd8854e4f03c3a318", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `completed_challenges`
[INFO] [stderr]    --> src/narrative.rs:620:9
[INFO] [stderr]     |
[INFO] [stderr] 620 |         completed_challenges: &HashSet<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_challenges`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_random_sql_challenge` is never used
[INFO] [stderr]     --> src/challenges.rs:2227:4
[INFO] [stderr]      |
[INFO] [stderr] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `ui_to_io_result` is never used
[INFO] [stderr]   --> src/tutorial.rs:11:4
[INFO] [stderr]    |
[INFO] [stderr] 11 | fn ui_to_io_result<T>(result: std::io::Result<T>) -> std::io::Result<T> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `hack_simulator` (lib) generated 3 warnings (run `cargo fix --lib -p hack_simulator` to apply 1 suggestion)
[INFO] [stderr] warning: field `category` is never read
[INFO] [stderr]   --> src/challenges.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Challenge {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub category: ChallengeCategory,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Challenge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `time_limit` is never read
[INFO] [stderr]   --> src/challenges.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct ChallengeVariant {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub time_limit: Option<u64>, // in seconds, for advanced/expert modes
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChallengeVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Reverse`, `OSINT`, `Steganography`, `Malware`, and `IoT` are never constructed
[INFO] [stderr]   --> src/challenges.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub enum ChallengeCategory {
[INFO] [stderr]    |          ----------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 78 |     Reverse,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 79 |     Binary,
[INFO] [stderr] 80 |     OSINT,         // Open Source Intelligence (v1.2.0)
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 81 |     Steganography, // Hidden data techniques (v1.5.0)
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 82 |     Malware,       // Malware analysis and obfuscation (v1.5.0)
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 83 |     IoT,           // Internet of Things security (v1.5.0)
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChallengeCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_variants`, and `validate` are never used
[INFO] [stderr]    --> src/challenges.rs:87:12
[INFO] [stderr]     |
[INFO] [stderr]  86 | impl Challenge {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr]  87 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     pub fn with_variants(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 239 |     pub fn validate(&self, answer: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_random_sql_challenge` is never used
[INFO] [stderr]     --> src/challenges.rs:2227:4
[INFO] [stderr]      |
[INFO] [stderr] 2227 | fn generate_random_sql_challenge() -> (String, String) {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_challenge_with_difficulty` is never used
[INFO] [stderr]     --> src/challenges.rs:2357:8
[INFO] [stderr]      |
[INFO] [stderr] 2357 | pub fn get_challenge_with_difficulty(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_challenge_difficulties` is never used
[INFO] [stderr]     --> src/challenges.rs:2367:8
[INFO] [stderr]      |
[INFO] [stderr] 2367 | pub fn get_challenge_difficulties(challenge_id: &str) -> Vec<ChallengeDifficulty> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NarrativeChoice` is never constructed
[INFO] [stderr]    --> src/narrative.rs:311:12
[INFO] [stderr]     |
[INFO] [stderr] 311 | pub struct NarrativeChoice {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ChoiceEffects` is never constructed
[INFO] [stderr]    --> src/narrative.rs:322:12
[INFO] [stderr]     |
[INFO] [stderr] 322 | pub struct ChoiceEffects {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ChoiceRequirements` is never constructed
[INFO] [stderr]    --> src/narrative.rs:333:12
[INFO] [stderr]     |
[INFO] [stderr] 333 | pub struct ChoiceRequirements {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NarrativeBranch` is never constructed
[INFO] [stderr]    --> src/narrative.rs:344:12
[INFO] [stderr]     |
[INFO] [stderr] 344 | pub struct NarrativeBranch {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BranchingNarrative` is never constructed
[INFO] [stderr]    --> src/narrative.rs:357:12
[INFO] [stderr]     |
[INFO] [stderr] 357 | pub struct BranchingNarrative {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/narrative.rs:371:12
[INFO] [stderr]     |
[INFO] [stderr] 370 | impl BranchingNarrative {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr] 371 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 382 |     fn initialize_branches(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 616 |     pub fn check_trigger(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 646 |     pub fn make_choice(
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 676 |     pub fn is_choice_available(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 712 |     pub fn get_story_flags(&self) -> &HashSet<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 716 |     pub fn get_choice_history(&self) -> &[String] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 720 |     pub fn get_branch(&self, id: &str) -> Option<&NarrativeBranch> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 724 |     pub fn get_all_branches(&self) -> Vec<&NarrativeBranch> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `theme_secondary` is never used
[INFO] [stderr]    --> src/ui.rs:312:8
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub fn theme_secondary() -> Color {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_screen_buffered` is never used
[INFO] [stderr]    --> src/ui.rs:364:12
[INFO] [stderr]     |
[INFO] [stderr] 364 |     pub fn clear_screen_buffered() -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `begin_frame` is never used
[INFO] [stderr]    --> src/ui.rs:371:12
[INFO] [stderr]     |
[INFO] [stderr] 371 |     pub fn begin_frame() -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `end_frame` is never used
[INFO] [stderr]    --> src/ui.rs:378:12
[INFO] [stderr]     |
[INFO] [stderr] 378 |     pub fn end_frame() -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_colored_buffered` is never used
[INFO] [stderr]    --> src/ui.rs:385:12
[INFO] [stderr]     |
[INFO] [stderr] 385 |     pub fn print_colored_buffered(text: &str, color: Color) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_screen` is never used
[INFO] [stderr]    --> src/ui.rs:396:12
[INFO] [stderr]     |
[INFO] [stderr] 396 |     pub fn render_screen<F>(render_fn: F) -> io::Result<()>
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_menu_buffered` is never used
[INFO] [stderr]    --> src/ui.rs:407:12
[INFO] [stderr]     |
[INFO] [stderr] 407 |     pub fn render_menu_buffered(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_separator_buffered` is never used
[INFO] [stderr]    --> src/ui.rs:435:12
[INFO] [stderr]     |
[INFO] [stderr] 435 |     pub fn print_separator_buffered() -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PerformanceTimer` is never constructed
[INFO] [stderr]    --> src/ui.rs:440:16
[INFO] [stderr]     |
[INFO] [stderr] 440 |     pub struct PerformanceTimer {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `elapsed` are never used
[INFO] [stderr]    --> src/ui.rs:446:16
[INFO] [stderr]     |
[INFO] [stderr] 445 |     impl PerformanceTimer {
[INFO] [stderr]     |     --------------------- associated items in this implementation
[INFO] [stderr] 446 |         pub fn new(name: &str) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 453 |         pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_memory_usage` is never used
[INFO] [stderr]    --> src/ui.rs:472:12
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn print_memory_usage(label: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_command_history` is never used
[INFO] [stderr]    --> src/ui.rs:768:12
[INFO] [stderr]     |
[INFO] [stderr] 768 |     pub fn clear_command_history() {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_history_size` is never used
[INFO] [stderr]    --> src/ui.rs:775:12
[INFO] [stderr]     |
[INFO] [stderr] 775 |     pub fn get_history_size() -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_box` is never used
[INFO] [stderr]    --> src/ui.rs:862:12
[INFO] [stderr]     |
[INFO] [stderr] 862 |     pub fn print_box(title: &str, content: &str, color: Color) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_challenge_header` is never used
[INFO] [stderr]    --> src/ui.rs:901:12
[INFO] [stderr]     |
[INFO] [stderr] 901 |     pub fn print_challenge_header(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `typewriter_effect` is never used
[INFO] [stderr]    --> src/ui.rs:941:12
[INFO] [stderr]     |
[INFO] [stderr] 941 |     pub fn typewriter_effect(text: &str, delay_ms: u64) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `hack_simulator` (bin "hack_simulator") generated 31 warnings (2 duplicates)
[INFO] [stderr] warning: function `create_low_sanity_state` is never used
[INFO] [stderr]   --> tests/common/mod.rs:43:8
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn create_low_sanity_state() -> GameState {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `read` is never used
[INFO] [stderr]   --> tests/common/mod.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl TempSaveFile {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn read(&self) -> std::io::Result<String> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EMPTY` is never used
[INFO] [stderr]   --> tests/common/mod.rs:89:15
[INFO] [stderr]    |
[INFO] [stderr] 89 |     pub const EMPTY: &str = "";
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITESPACE` is never used
[INFO] [stderr]   --> tests/common/mod.rs:90:15
[INFO] [stderr]    |
[INFO] [stderr] 90 |     pub const WHITESPACE: &str = "   ";
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VERY_LONG` is never used
[INFO] [stderr]   --> tests/common/mod.rs:91:15
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub const VERY_LONG: &str = "A very long string that repeats many times. A very long string that repeats many times. A very long...
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SPECIAL_CHARS` is never used
[INFO] [stderr]   --> tests/common/mod.rs:92:15
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub const SPECIAL_CHARS: &str = "!@#$%^&*()_+-={}[]|\\:\";<>?,./~`";
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNICODE` is never used
[INFO] [stderr]   --> tests/common/mod.rs:93:15
[INFO] [stderr]    |
[INFO] [stderr] 93 |     pub const UNICODE: &str = "测试 👻 🎃 🔥";
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQL_INJECTION` is never used
[INFO] [stderr]   --> tests/common/mod.rs:94:15
[INFO] [stderr]    |
[INFO] [stderr] 94 |     pub const SQL_INJECTION: &str = "' OR '1'='1' --";
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HTML_TAGS` is never used
[INFO] [stderr]   --> tests/common/mod.rs:95:15
[INFO] [stderr]    |
[INFO] [stderr] 95 |     pub const HTML_TAGS: &str = "<script>alert('xss')</script>";
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NULL_BYTE` is never used
[INFO] [stderr]   --> tests/common/mod.rs:96:15
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub const NULL_BYTE: &str = "test\0null";
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `hack_simulator` (bin "hack_simulator" test) generated 31 warnings (31 duplicates)
[INFO] [stderr] warning: `hack_simulator` (test "save_load_tests") generated 10 warnings
[INFO] [stderr] warning: `hack_simulator` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hack_simulator-f4b1f49fdfe131e2)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[INFO] [stdout] test challenges::tests::test_all_challenges_have_descriptions ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_hints ... ok
[INFO] [stdout] test challenges::tests::test_challenge_rewards_are_positive ... ok
[INFO] [stdout] test challenges::tests::test_buffer_overflow_challenge ... ok
[INFO] [stdout] test challenges::tests::test_challenge_ids_follow_naming_convention ... ok
[INFO] [stdout] test challenges::tests::test_challenge_levels_are_valid ... ok
[INFO] [stdout] test challenges::tests::test_command_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_cors_bypass_challenge ... ok
[INFO] [stdout] test challenges::tests::test_file_discovery_challenge ... ok
[INFO] [stdout] test challenges::tests::test_format_string_challenge ... ok
[INFO] [stdout] test challenges::tests::test_get_challenges_for_level ... ok
[INFO] [stdout] test challenges::tests::test_caesar_cipher_challenge ... ok
[INFO] [stdout] test challenges::tests::test_hex_decode_challenge ... ok
[INFO] [stdout] test challenges::tests::test_jwt_token_challenge ... ok
[INFO] [stdout] test challenges::tests::test_integer_overflow_challenge ... ok
[INFO] [stdout] test challenges::tests::test_md5_collision_challenge ... ok
[INFO] [stdout] test challenges::tests::test_level_distribution ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_unique_ids ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_titles ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_valid_ids ... ok
[INFO] [stdout] test challenges::tests::test_session_hijack_challenge ... ok
[INFO] [stdout] test challenges::tests::test_binary_challenge ... ok
[INFO] [stdout] test challenges::tests::test_sql_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_rewards_scale_with_difficulty ... ok
[INFO] [stdout] test challenges::tests::test_path_traversal_challenge ... ok
[INFO] [stdout] test challenges::tests::test_rot13_challenge ... ok
[INFO] [stdout] test challenges::tests::test_total_challenge_count ... ok
[INFO] [stdout] test challenges::tests::test_url_decode_challenge ... ok
[INFO] [stdout] test challenges::tests::test_welcome_challenge ... ok
[INFO] [stdout] test challenges::tests::test_port_scan_challenge ... ok
[INFO] [stdout] test challenges::tests::test_no_empty_hints ... ok
[INFO] [stdout] test challenges::tests::test_reverse_engineering_challenge ... ok
[INFO] [stdout] test challenges::tests::proptests::test_unicode_safe ... ok
[INFO] [stdout] test challenges::tests::test_xss_attack_challenge ... ok
[INFO] [stdout] test challenges::tests::test_race_condition_challenge ... ok
[INFO] [stdout] test state::tests::test_challenge_id_with_special_chars ... ok
[INFO] [stdout] test state::tests::test_complete_challenge_increases_xp ... ok
[INFO] [stdout] test challenges::tests::proptests::test_numeric_inputs_safe ... ok
[INFO] [stdout] test state::tests::test_complete_same_challenge_twice_is_idempotent ... ok
[INFO] [stdout] test state::tests::test_discover_same_secret_twice ... ok
[INFO] [stdout] test state::tests::test_discover_secret ... ok
[INFO] [stdout] test state::tests::test_empty_player_name ... ok
[INFO] [stdout] test state::tests::test_extreme_values ... ok
[INFO] [stdout] test state::tests::test_has_completed_returns_false_for_new_challenge ... ok
[INFO] [stdout] test state::tests::test_level_caps_at_10 ... ok
[INFO] [stdout] test state::tests::test_level_progression ... ok
[INFO] [stdout] test state::tests::test_load_fails_when_no_save_exists ... ok
[INFO] [stdout] test state::tests::test_long_player_name ... ok
[INFO] [stdout] test state::tests::test_modify_sanity_decreases ... ok
[INFO] [stdout] test state::tests::test_modify_sanity_increases ... ok
[INFO] [stdout] test state::tests::test_new_game_state ... ok
[INFO] [stdout] test state::tests::test_sanity_cannot_exceed_100 ... ok
[INFO] [stdout] test state::tests::test_sanity_cannot_go_below_zero ... ok
[INFO] [stdout] test state::tests::test_complete_multiple_challenges ... ok
[INFO] [stdout] test state::tests::proptests::test_sanity_always_bounded ... ok
[INFO] [stdout] test state::tests::proptests::test_level_monotonic ... ok
[INFO] [stdout] test state::tests::proptests::test_experience_never_decreases ... ok
[INFO] [stdout] test state::tests::test_state_cloning ... ok
[INFO] [stdout] test state::tests::test_unicode_player_name ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_not_needed_if_challenges_completed ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_state_tracking ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_xp_rewards ... ok
[INFO] [stdout] test ui::tests::test_all_themes ... ok
[INFO] [stdout] test ui::tests::test_completion_context ... ok
[INFO] [stdout] test ui::tests::test_theme_creation ... ok
[INFO] [stdout] test ui::tests::test_theme_system ... ok
[INFO] [stdout] test challenges::tests::proptests::test_empty_input_never_valid ... ok
[INFO] [stdout] test challenges::tests::proptests::test_wrong_answer_case_insensitive ... ok
[INFO] [stdout] test challenges::tests::proptests::test_special_chars_safe ... ok
[INFO] [stdout] test state::tests::test_save_and_load_preserves_state ... FAILED
[INFO] [stdout] test state::tests::test_save_creates_file ... FAILED
[INFO] [stdout] test state::tests::test_save_overwrites_existing_file ... FAILED
[INFO] [stdout] test state::tests::test_serialization_format ... FAILED
[INFO] [stdout] test state::tests::proptests::test_challenge_completion_idempotent ... ok
[INFO] [stdout] test state::tests::proptests::test_arbitrary_challenge_ids ... ok
[INFO] [stdout] test challenges::tests::proptests::test_validators_never_panic ... ok
[INFO] [stdout] test state::tests::proptests::test_serialization_lossless ... ok
[INFO] [stdout] test state::tests::proptests::test_player_name_accepts_any_string ... ok
[INFO] [stdout] test challenges::tests::proptests::test_long_inputs_handled ... ok
[INFO] [stdout] test state::tests::proptests::test_has_completed_consistency ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout] test state::tests::proptests::test_secret_discovery_safe ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- state::tests::test_save_and_load_preserves_state stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'state::tests::test_save_and_load_preserves_state' (92) panicked at src/state.rs:1257:34:
[INFO] [stdout] Save failed: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a6290f9f0e2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a6290f9f0e2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a6290fb0ffa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a6290fb0ffa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x5a6290f6cfc6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5a6290f6cfc6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5a6290f7e189 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a6290f7e189 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a6290f7e021 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a6290e200ae - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5a6290e200ae - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5a6290f7e402 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5a6290f7e402 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a6290f7e248 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5a6290f79289 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a6290f60a2d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a6290fb93cc - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a6290fb84a2 - core::result::unwrap_failed::hf2d1f30a3ac850fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5a6290e61bec - core::result::Result<T,E>::expect::he86c6a56f8810900
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x5a6290db78d6 - hack_simulator::state::tests::test_save_and_load_preserves_state::h303a9bc729c087ba
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1257:34
[INFO] [stdout]   22:     0x5a6290db7cd7 - hack_simulator::state::tests::test_save_and_load_preserves_state::{{closure}}::hc41ca011362f1770
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1247:44
[INFO] [stdout]   23:     0x5a6290d86056 - core::ops::function::FnOnce::call_once::hbc50f012107e0834
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a6290e1fe6b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5a6290e1fe6b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5a6290e3387a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5a6290e3387a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5a6290e3387a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5a6290e3387a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5a6290e3387a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5a6290e3387a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5a6290e3387a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5a6290e0dcd4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5a6290e0dcd4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5a6290e11672 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5a6290e11672 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5a6290e11672 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5a6290e11672 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5a6290e11672 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5a6290f7434f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5a6290f7434f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7439ca32faa4 - <unknown>
[INFO] [stdout]   45:     0x7439ca3bca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- state::tests::test_save_creates_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'state::tests::test_save_creates_file' (93) panicked at src/state.rs:1240:9:
[INFO] [stdout] assertion failed: result.is_ok()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a6290f9f0e2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a6290f9f0e2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a6290fb0ffa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a6290fb0ffa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x5a6290f6cfc6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5a6290f6cfc6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5a6290f7e189 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a6290f7e189 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a6290f7e021 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a6290e200ae - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5a6290e200ae - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5a6290f7e402 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5a6290f7e402 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a6290f7e27a - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5a6290f79289 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a6290f60a2d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a6290fb93cc - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a6290fb9392 - core::panicking::panic::hbff2745fd4c5afec
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5a6290db67e7 - hack_simulator::state::tests::test_save_creates_file::hc2b8b03a70a63c55
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1240:9
[INFO] [stdout]   21:     0x5a6290db68a7 - hack_simulator::state::tests::test_save_creates_file::{{closure}}::h944259b5457f4dbd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1234:32
[INFO] [stdout]   22:     0x5a6290d869a6 - core::ops::function::FnOnce::call_once::he074cbf598579b7e
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5a6290e1fe6b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a6290e1fe6b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x5a6290e3387a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x5a6290e3387a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x5a6290e3387a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5a6290e3387a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5a6290e3387a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5a6290e3387a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x5a6290e3387a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x5a6290e0dcd4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x5a6290e0dcd4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x5a6290e11672 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x5a6290e11672 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5a6290e11672 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5a6290e11672 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x5a6290e11672 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5a6290f7434f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x5a6290f7434f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   43:     0x7439ca32faa4 - <unknown>
[INFO] [stdout]   44:     0x7439ca3bca64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- state::tests::test_save_overwrites_existing_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'state::tests::test_save_overwrites_existing_file' (94) panicked at src/state.rs:1290:35:
[INFO] [stdout] First save failed: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a6290f9f0e2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a6290f9f0e2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a6290fb0ffa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a6290fb0ffa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x5a6290f6cfc6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5a6290f6cfc6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5a6290f7e189 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a6290f7e189 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a6290f7e021 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a6290e200ae - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5a6290e200ae - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5a6290f7e402 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5a6290f7e402 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a6290f7e248 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5a6290f79289 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a6290f60a2d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a6290fb93cc - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a6290fb84a2 - core::result::unwrap_failed::hf2d1f30a3ac850fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5a6290e61bec - core::result::Result<T,E>::expect::he86c6a56f8810900
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x5a6290db7dea - hack_simulator::state::tests::test_save_overwrites_existing_file::h63586ff364c3dc0b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1290:35
[INFO] [stdout]   22:     0x5a6290db8107 - hack_simulator::state::tests::test_save_overwrites_existing_file::{{closure}}::h18a53ac6b83fe67f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1284:44
[INFO] [stdout]   23:     0x5a6290d86326 - core::ops::function::FnOnce::call_once::hc7f947a10609bfa1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a6290e1fe6b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5a6290e1fe6b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5a6290e3387a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5a6290e3387a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5a6290e3387a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5a6290e3387a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5a6290e3387a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5a6290e3387a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5a6290e3387a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5a6290e0dcd4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5a6290e0dcd4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5a6290e11672 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5a6290e11672 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5a6290e11672 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5a6290e11672 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5a6290e11672 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5a6290f7434f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5a6290f7434f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7439ca32faa4 - <unknown>
[INFO] [stdout]   45:     0x7439ca3bca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- state::tests::test_serialization_format stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'state::tests::test_serialization_format' (95) panicked at src/state.rs:1314:34:
[INFO] [stdout] Save failed: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a6290f9f0e2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a6290f9f0e2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a6290f9f0e2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a6290fb0ffa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a6290fb0ffa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x5a6290f6cfc6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5a6290f6cfc6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5a6290f7e189 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a6290f7e189 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a6290f7e021 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a6290e200ae - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5a6290e200ae - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5a6290f7e402 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5a6290f7e402 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a6290f7e248 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5a6290f79289 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a6290f60a2d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a6290fb93cc - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a6290fb84a2 - core::result::unwrap_failed::hf2d1f30a3ac850fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5a6290e61bec - core::result::Result<T,E>::expect::he86c6a56f8810900
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x5a6290db6ae6 - hack_simulator::state::tests::test_serialization_format::he1c2c8e556308489
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1314:34
[INFO] [stdout]   22:     0x5a6290db6df7 - hack_simulator::state::tests::test_serialization_format::{{closure}}::h700e5d03d01b8593
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1308:35
[INFO] [stdout]   23:     0x5a6290d86fa6 - core::ops::function::FnOnce::call_once::hfde6875c9279021e
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a6290e1fe6b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5a6290e1fe6b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5a6290e3387a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5a6290e3387a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5a6290e3387a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5a6290e3387a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5a6290e3387a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5a6290e3387a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5a6290e3387a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5a6290e0dcd4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5a6290e0dcd4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5a6290e11672 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5a6290e11672 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5a6290e11672 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5a6290e11672 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5a6290e11672 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5a6290e11672 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5a6290f7434f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5a6290f7434f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7439ca32faa4 - <unknown>
[INFO] [stdout]   45:     0x7439ca3bca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     state::tests::test_save_and_load_preserves_state
[INFO] [stdout]     state::tests::test_save_creates_file
[INFO] [stdout]     state::tests::test_save_overwrites_existing_file
[INFO] [stdout]     state::tests::test_serialization_format
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 77 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "25cff655eb5236bedc168418d13dd3fe8a34136f6aefc0bcd8854e4f03c3a318", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25cff655eb5236bedc168418d13dd3fe8a34136f6aefc0bcd8854e4f03c3a318", kill_on_drop: false }`
[INFO] [stdout] 25cff655eb5236bedc168418d13dd3fe8a34136f6aefc0bcd8854e4f03c3a318
