[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 beta-2026-03-05 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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-1-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/and3rn3t/hack on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] be079b4c09cce8a5d087146cb8a1bd719f96129c87063723ba0491f581e9bb16
[INFO] running `Command { std: "docker" "start" "-a" "be079b4c09cce8a5d087146cb8a1bd719f96129c87063723ba0491f581e9bb16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "be079b4c09cce8a5d087146cb8a1bd719f96129c87063723ba0491f581e9bb16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be079b4c09cce8a5d087146cb8a1bd719f96129c87063723ba0491f581e9bb16", kill_on_drop: false }`
[INFO] [stdout] be079b4c09cce8a5d087146cb8a1bd719f96129c87063723ba0491f581e9bb16
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ef501db2461a3944a0d4ccffaa103f1cd25fb5ae9239817ed506504ff55fdc63
[INFO] running `Command { std: "docker" "start" "-a" "ef501db2461a3944a0d4ccffaa103f1cd25fb5ae9239817ed506504ff55fdc63", 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 getrandom v0.3.4
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[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 18.93s
[INFO] running `Command { std: "docker" "inspect" "ef501db2461a3944a0d4ccffaa103f1cd25fb5ae9239817ed506504ff55fdc63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef501db2461a3944a0d4ccffaa103f1cd25fb5ae9239817ed506504ff55fdc63", kill_on_drop: false }`
[INFO] [stdout] ef501db2461a3944a0d4ccffaa103f1cd25fb5ae9239817ed506504ff55fdc63
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d10a71da7b0eadc522feb22a61c9d970dd8b5150ee2a0fca9033dd3423a4fb5
[INFO] running `Command { std: "docker" "start" "-a" "6d10a71da7b0eadc522feb22a61c9d970dd8b5150ee2a0fca9033dd3423a4fb5", 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 bumpalo v3.19.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling once_cell v1.21.3
[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 plotters v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling clap_builder v4.5.50
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling clap v4.5.50
[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 serde v1.0.228
[INFO] [stderr]    Compiling js-sys v0.3.81
[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 rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[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: 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: 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 `test` profile [unoptimized + debuginfo] target(s) in 44.10s
[INFO] running `Command { std: "docker" "inspect" "6d10a71da7b0eadc522feb22a61c9d970dd8b5150ee2a0fca9033dd3423a4fb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d10a71da7b0eadc522feb22a61c9d970dd8b5150ee2a0fca9033dd3423a4fb5", kill_on_drop: false }`
[INFO] [stdout] 6d10a71da7b0eadc522feb22a61c9d970dd8b5150ee2a0fca9033dd3423a4fb5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 157620bcecd74a0427ebc876b172ad1fdc09ed6f3a6f08ee6a2dbbb150b0645d
[INFO] running `Command { std: "docker" "start" "-a" "157620bcecd74a0427ebc876b172ad1fdc09ed6f3a6f08ee6a2dbbb150b0645d", 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.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hack_simulator-b061b932cf85c3b4)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[INFO] [stdout] test challenges::tests::test_binary_challenge ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_valid_ids ... 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_challenge_rewards_are_positive ... ok
[INFO] [stdout] test challenges::tests::test_cors_bypass_challenge ... ok
[INFO] [stdout] test challenges::tests::test_caesar_cipher_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_command_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_hex_decode_challenge ... ok
[INFO] [stdout] test challenges::tests::test_md5_collision_challenge ... ok
[INFO] [stdout] test challenges::tests::test_integer_overflow_challenge ... ok
[INFO] [stdout] test challenges::tests::test_jwt_token_challenge ... ok
[INFO] [stdout] test challenges::tests::test_path_traversal_challenge ... ok
[INFO] [stdout] test challenges::tests::test_port_scan_challenge ... ok
[INFO] [stdout] test challenges::tests::test_race_condition_challenge ... ok
[INFO] [stdout] test challenges::tests::test_reverse_engineering_challenge ... ok
[INFO] [stdout] test challenges::tests::test_rewards_scale_with_difficulty ... ok
[INFO] [stdout] test challenges::tests::test_rot13_challenge ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_descriptions ... ok
[INFO] [stdout] test challenges::tests::test_session_hijack_challenge ... ok
[INFO] [stdout] test challenges::tests::test_no_empty_hints ... ok
[INFO] [stdout] test challenges::tests::test_xss_attack_challenge ... 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_all_challenges_have_hints ... 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_total_challenge_count ... ok
[INFO] [stdout] test challenges::tests::test_sql_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_titles ... ok
[INFO] [stdout] test challenges::tests::proptests::test_numeric_inputs_safe ... 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 state::tests::test_complete_multiple_challenges ... 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 challenges::tests::proptests::test_wrong_answer_case_insensitive ... 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::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_xp_rewards ... ok
[INFO] [stdout] test ui::tests::test_all_themes ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_state_tracking ... ok
[INFO] [stdout] test state::tests::proptests::test_experience_never_decreases ... 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 state::tests::proptests::test_sanity_always_bounded ... ok
[INFO] [stdout] test challenges::tests::proptests::test_empty_input_never_valid ... ok
[INFO] [stdout] test state::tests::proptests::test_level_monotonic ... ok
[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_unicode_safe ... ok
[INFO] [stdout] test challenges::tests::proptests::test_long_inputs_handled ... ok
[INFO] [stdout] test challenges::tests::proptests::test_special_chars_safe ... ok
[INFO] [stdout] test state::tests::proptests::test_player_name_accepts_any_string ... 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_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' (93) 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:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64facde39fda - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64facde39fda - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64facde5068a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64facde5068a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x64facde3ec72 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64facde3ec72 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64facde176af - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64facde176af - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64facde31f39 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64facdcad66c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x64facdcad66c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64facde320f2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x64facde320f2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64facde17768 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64facde0eea9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64facde1847d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64facde50fec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64facde50d62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64facdd00ebc - core::result::Result<T,E>::expect::h45fd10eef7de2d57
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x64facdc144f6 - hack_simulator::state::tests::test_save_and_load_preserves_state::h587803ca5e9449b3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1257:34
[INFO] [stdout]   22:     0x64facdc148f7 - hack_simulator::state::tests::test_save_and_load_preserves_state::{{closure}}::he18623c7726253fd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1247:44
[INFO] [stdout]   23:     0x64facdc1ba66 - core::ops::function::FnOnce::call_once::h34782afbfffb6f1c
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64facdca174b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64facdca174b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x64facdcae13b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64facdcae13b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x64facdca9854 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x64facdca9854 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x64facdcb0d42 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x64facdcb0d42 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64facde393cf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x64facde393cf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x795b2d9edaa4 - <unknown>
[INFO] [stdout]   45:     0x795b2da7aa64 - 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' (94) panicked at src/state.rs:1240:9:
[INFO] [stdout] assertion failed: result.is_ok()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64facde39fda - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64facde39fda - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64facde5068a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64facde5068a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x64facde3ec72 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64facde3ec72 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64facde176af - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64facde176af - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64facde31f39 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64facdcad66c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x64facdcad66c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64facde320f2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x64facde320f2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64facde1779a - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x64facde0eea9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64facde1847d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64facde50fec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64facde50fb2 - core[10b6fa85044e1869]::panicking::panic
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x64facdc13407 - hack_simulator::state::tests::test_save_creates_file::h65eafae91847ae2e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1240:9
[INFO] [stdout]   21:     0x64facdc134c7 - hack_simulator::state::tests::test_save_creates_file::{{closure}}::h5c736fafda5fd09d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1234:32
[INFO] [stdout]   22:     0x64facdc1b636 - core::ops::function::FnOnce::call_once::h2259b4d772622981
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x64facdca174b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64facdca174b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x64facdcae13b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x64facdcae13b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x64facdca9854 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x64facdca9854 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x64facdcb0d42 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x64facdcb0d42 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x64facde393cf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x64facde393cf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x795b2d9edaa4 - <unknown>
[INFO] [stdout]   44:     0x795b2da7aa64 - 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' (95) 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:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64facde39fda - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64facde39fda - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64facde5068a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64facde5068a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x64facde3ec72 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64facde3ec72 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64facde176af - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64facde176af - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64facde31f39 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64facdcad66c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x64facdcad66c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64facde320f2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x64facde320f2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64facde17768 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64facde0eea9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64facde1847d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64facde50fec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64facde50d62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64facdd00ebc - core::result::Result<T,E>::expect::h45fd10eef7de2d57
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x64facdc14a0a - hack_simulator::state::tests::test_save_overwrites_existing_file::hffe5e82f24dcdc40
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1290:35
[INFO] [stdout]   22:     0x64facdc14d27 - hack_simulator::state::tests::test_save_overwrites_existing_file::{{closure}}::hd3378f141b0c6400
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1284:44
[INFO] [stdout]   23:     0x64facdc1d2d6 - core::ops::function::FnOnce::call_once::ha86f861e2a6ad674
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64facdca174b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64facdca174b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x64facdcae13b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64facdcae13b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x64facdca9854 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x64facdca9854 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x64facdcb0d42 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x64facdcb0d42 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64facde393cf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x64facde393cf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x795b2d9edaa4 - <unknown>
[INFO] [stdout]   45:     0x795b2da7aa64 - 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' (96) 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:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64facde39fda - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64facde39fda - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64facde39fda - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64facde5068a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64facde5068a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x64facde3ec72 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64facde3ec72 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64facde176af - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64facde176af - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64facde31f39 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64facdcad66c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x64facdcad66c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64facde320f2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x64facde320f2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64facde17768 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64facde0eea9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64facde1847d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64facde50fec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64facde50d62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64facdd00ebc - core::result::Result<T,E>::expect::h45fd10eef7de2d57
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x64facdc13706 - hack_simulator::state::tests::test_serialization_format::h743e109ee9cd5795
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1314:34
[INFO] [stdout]   22:     0x64facdc13a17 - hack_simulator::state::tests::test_serialization_format::{{closure}}::h568ac13f1555533c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1308:35
[INFO] [stdout]   23:     0x64facdc1e686 - core::ops::function::FnOnce::call_once::hf0645f2713c6e363
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64facdca174b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64facdca174b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x64facdcae13b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64facdcae13b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64facdcae13b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x64facdcae13b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x64facdca9854 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x64facdca9854 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x64facdcb0d42 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64facdcb0d42 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64facdcb0d42 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x64facdcb0d42 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64facde393cf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x64facde393cf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x795b2d9edaa4 - <unknown>
[INFO] [stdout]   45:     0x795b2da7aa64 - 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.81s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "157620bcecd74a0427ebc876b172ad1fdc09ed6f3a6f08ee6a2dbbb150b0645d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "157620bcecd74a0427ebc876b172ad1fdc09ed6f3a6f08ee6a2dbbb150b0645d", kill_on_drop: false }`
[INFO] [stdout] 157620bcecd74a0427ebc876b172ad1fdc09ed6f3a6f08ee6a2dbbb150b0645d
