[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 master#1ef7943ee607160a564655b6596f83670ef95df5 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fand3rn3t%2Fhack" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/and3rn3t/hack
[INFO] finished tweaking git repo https://github.com/and3rn3t/hack
[INFO] tweaked toml for git repo https://github.com/and3rn3t/hack written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/and3rn3t/hack on toolchain 1ef7943ee607160a564655b6596f83670ef95df5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "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" "+1ef7943ee607160a564655b6596f83670ef95df5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-ident v1.0.20
[INFO] [stderr]   Downloaded wasm-bindgen-test v0.3.54
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.54
[INFO] [stderr]   Downloaded memory_units v0.4.0
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded criterion-plot v0.6.0
[INFO] [stderr]   Downloaded minicov v0.3.7
[INFO] [stderr]   Downloaded document-features v0.2.12
[INFO] [stderr]   Downloaded convert_case v0.7.1
[INFO] [stderr]   Downloaded half v2.7.1
[INFO] [stderr]   Downloaded clap v4.5.50
[INFO] [stderr]   Downloaded litrs v1.0.0
[INFO] [stderr]   Downloaded clap_builder v4.5.50
[INFO] [stderr]   Downloaded proptest v1.8.0
[INFO] [stderr]   Downloaded criterion v0.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-test-macro v0.3.54
[INFO] [stderr]   Downloaded wee_alloc v0.4.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1999f20d567c60dabc63c94c3c862f2ab51b76373e6b2012f6286e220dde0e52
[INFO] running `Command { std: "docker" "start" "-a" "1999f20d567c60dabc63c94c3c862f2ab51b76373e6b2012f6286e220dde0e52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1999f20d567c60dabc63c94c3c862f2ab51b76373e6b2012f6286e220dde0e52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1999f20d567c60dabc63c94c3c862f2ab51b76373e6b2012f6286e220dde0e52", kill_on_drop: false }`
[INFO] [stdout] 1999f20d567c60dabc63c94c3c862f2ab51b76373e6b2012f6286e220dde0e52
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1b185ac03ab230f7dfb9c648f448a580b345aa3b8971b186379a6992e6f8d627
[INFO] running `Command { std: "docker" "start" "-a" "1b185ac03ab230f7dfb9c648f448a580b345aa3b8971b186379a6992e6f8d627", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling 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 21.88s
[INFO] running `Command { std: "docker" "inspect" "1b185ac03ab230f7dfb9c648f448a580b345aa3b8971b186379a6992e6f8d627", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b185ac03ab230f7dfb9c648f448a580b345aa3b8971b186379a6992e6f8d627", kill_on_drop: false }`
[INFO] [stdout] 1b185ac03ab230f7dfb9c648f448a580b345aa3b8971b186379a6992e6f8d627
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] db07147a77d5113b195d5ed106810773185fe1ace460609adceb6b4438229e26
[INFO] running `Command { std: "docker" "start" "-a" "db07147a77d5113b195d5ed106810773185fe1ace460609adceb6b4438229e26", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.104
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.5.50
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling wasm-bindgen v0.2.104
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling clap v4.5.50
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[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 derive_more v2.0.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.104
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.104
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[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 rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling proptest v1.8.0
[INFO] [stderr]    Compiling criterion v0.7.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 stri...
[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 40.41s
[INFO] running `Command { std: "docker" "inspect" "db07147a77d5113b195d5ed106810773185fe1ace460609adceb6b4438229e26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db07147a77d5113b195d5ed106810773185fe1ace460609adceb6b4438229e26", kill_on_drop: false }`
[INFO] [stdout] db07147a77d5113b195d5ed106810773185fe1ace460609adceb6b4438229e26
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6c101b5884337b087b17ba1920bbb8d32441998753afddff98a4a14cc8840713
[INFO] running `Command { std: "docker" "start" "-a" "6c101b5884337b087b17ba1920bbb8d32441998753afddff98a4a14cc8840713", 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 stri...
[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` (test "save_load_tests") generated 10 warnings
[INFO] [stderr] warning: `hack_simulator` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `hack_simulator` (bin "hack_simulator" test) generated 31 warnings (31 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hack_simulator-4efe4561fa34ba9b)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[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 challenges::tests::test_all_challenges_have_descriptions ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_unique_ids ... ok
[INFO] [stdout] test challenges::tests::test_challenge_rewards_are_positive ... ok
[INFO] [stdout] test challenges::tests::test_caesar_cipher_challenge ... ok
[INFO] [stdout] test challenges::tests::test_command_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_get_challenges_for_level ... ok
[INFO] [stdout] test challenges::tests::test_buffer_overflow_challenge ... ok
[INFO] [stdout] test challenges::tests::test_cors_bypass_challenge ... ok
[INFO] [stdout] test challenges::tests::test_jwt_token_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_file_discovery_challenge ... ok
[INFO] [stdout] test challenges::tests::test_format_string_challenge ... ok
[INFO] [stdout] test challenges::tests::test_level_distribution ... ok
[INFO] [stdout] test challenges::tests::test_md5_collision_challenge ... ok
[INFO] [stdout] test challenges::tests::test_no_empty_hints ... 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_binary_challenge ... ok
[INFO] [stdout] test challenges::tests::test_rot13_challenge ... ok
[INFO] [stdout] test challenges::tests::test_integer_overflow_challenge ... ok
[INFO] [stdout] test challenges::tests::test_total_challenge_count ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_valid_ids ... 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::proptests::test_wrong_answer_case_insensitive ... ok
[INFO] [stdout] test challenges::tests::proptests::test_validators_never_panic ... ok
[INFO] [stdout] test challenges::tests::test_sql_injection_challenge ... ok
[INFO] [stdout] test challenges::tests::test_rewards_scale_with_difficulty ... ok
[INFO] [stdout] test challenges::tests::proptests::test_special_chars_safe ... ok
[INFO] [stdout] test state::tests::proptests::test_experience_never_decreases ... ok
[INFO] [stdout] test state::tests::proptests::test_sanity_always_bounded ... ok
[INFO] [stdout] test challenges::tests::test_all_challenges_have_hints ... ok
[INFO] [stdout] test challenges::tests::test_hex_decode_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_session_hijack_challenge ... 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_level_caps_at_10 ... ok
[INFO] [stdout] test state::tests::test_level_progression ... ok
[INFO] [stdout] test state::tests::test_has_completed_returns_false_for_new_challenge ... ok
[INFO] [stdout] test state::tests::proptests::test_level_monotonic ... ok
[INFO] [stdout] test state::tests::test_modify_sanity_increases ... ok
[INFO] [stdout] test state::tests::test_new_game_state ... ok
[INFO] [stdout] test state::tests::test_sanity_cannot_exceed_100 ... ok
[INFO] [stdout] test state::tests::test_sanity_cannot_go_below_zero ... ok
[INFO] [stdout] test state::tests::proptests::test_challenge_completion_idempotent ... ok
[INFO] [stdout] test state::tests::test_challenge_id_with_special_chars ... ok
[INFO] [stdout] test state::tests::test_state_cloning ... ok
[INFO] [stdout] test state::tests::test_unicode_player_name ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_not_needed_if_challenges_completed ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_state_tracking ... ok
[INFO] [stdout] test tutorial::tests::test_tutorial_xp_rewards ... ok
[INFO] [stdout] test ui::tests::test_all_themes ... ok
[INFO] [stdout] test ui::tests::test_completion_context ... ok
[INFO] [stdout] test state::tests::test_long_player_name ... ok
[INFO] [stdout] test state::tests::test_modify_sanity_decreases ... ok
[INFO] [stdout] test ui::tests::test_theme_system ... ok
[INFO] [stdout] test state::tests::test_load_fails_when_no_save_exists ... ok
[INFO] [stdout] test state::tests::test_save_creates_file ... FAILED
[INFO] [stdout] test state::tests::test_save_and_load_preserves_state ... FAILED
[INFO] [stdout] test state::tests::test_save_overwrites_existing_file ... FAILED
[INFO] [stdout] test ui::tests::test_theme_creation ... ok
[INFO] [stdout] test state::tests::test_serialization_format ... FAILED
[INFO] [stdout] test challenges::tests::proptests::test_unicode_safe ... ok
[INFO] [stdout] test challenges::tests::proptests::test_empty_input_never_valid ... ok
[INFO] [stdout] test state::tests::proptests::test_arbitrary_challenge_ids ... ok
[INFO] [stdout] test state::tests::proptests::test_has_completed_consistency ... ok
[INFO] [stdout] test state::tests::proptests::test_serialization_lossless ... ok
[INFO] [stdout] test challenges::tests::proptests::test_long_inputs_handled ... ok
[INFO] [stdout] test state::tests::proptests::test_player_name_accepts_any_string ... ok
[INFO] [stdout] test state::tests::proptests::test_secret_discovery_safe ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[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:     0x60379db91a72 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60379db91a72 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60379db91a72 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60379db91a72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60379dba389f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x60379dba389f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x60379db5e443 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x60379db5e443 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x60379db6a902 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x60379db6f91f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x60379db6f7b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x60379da0cb2e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x60379da0cb2e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x60379db6ff2f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x60379db6ff2f - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x60379db6fd56 - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:700:13
[INFO] [stdout]   16:     0x60379db6aa49 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x60379db51dad - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x60379dbac3c0 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x60379dbac39c - core::panicking::panic::hb290d809a6d6b140
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x60379d99a637 - hack_simulator::state::tests::test_save_creates_file::h8e55c0df69441705
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1240:9
[INFO] [stdout]   21:     0x60379d99a6f7 - hack_simulator::state::tests::test_save_creates_file::{{closure}}::hbc02b9a15b3df056
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1234:32
[INFO] [stdout]   22:     0x60379d9ab846 - core::ops::function::FnOnce::call_once::hf10b1208bd0f6c7b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x60379da0c90b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x60379da0c90b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x60379da2098d - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x60379da2098d - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x60379da2098d - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   28:     0x60379da2098d - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   29:     0x60379da2098d - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x60379da2098d - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x60379da2098d - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x60379d9f9ea4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x60379d9f9ea4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   34:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   35:     0x60379d9fd7da - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x60379d9fd7da - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   37:     0x60379d9fd7da - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   38:     0x60379d9fd7da - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   40:     0x60379d9fd7da - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x60379db65d1f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   42:     0x60379db65d1f - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   43:     0x7dc8d1cb8aa4 - <unknown>
[INFO] [stdout]   44:     0x7dc8d1d45a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[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:     0x60379db91a72 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60379db91a72 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60379db91a72 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60379db91a72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60379dba389f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x60379dba389f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x60379db5e443 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x60379db5e443 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x60379db6a902 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x60379db6f91f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x60379db6f7b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x60379da0cb2e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x60379da0cb2e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x60379db6ff2f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x60379db6ff2f - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x60379db6fd8a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x60379db6aa49 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x60379db51dad - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x60379dbac3c0 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x60379dbab1c6 - core::result::unwrap_failed::h2380020e6daeb464
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1862:5
[INFO] [stdout]   20:     0x60379da54b7c - core::result::Result<T,E>::expect::h4eb8401c0832916e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x60379d99b7a6 - hack_simulator::state::tests::test_save_and_load_preserves_state::h5edf35b58cc1e579
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1257:34
[INFO] [stdout]   22:     0x60379d99bc07 - hack_simulator::state::tests::test_save_and_load_preserves_state::{{closure}}::had7f980316865e2e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1247:44
[INFO] [stdout]   23:     0x60379d9aa2a6 - core::ops::function::FnOnce::call_once::h927e0e2a03026efc
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x60379da0c90b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x60379da0c90b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x60379da2098d - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x60379da2098d - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x60379da2098d - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x60379da2098d - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x60379da2098d - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x60379da2098d - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x60379da2098d - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x60379d9f9ea4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x60379d9f9ea4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x60379d9fd7da - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x60379d9fd7da - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x60379d9fd7da - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x60379d9fd7da - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x60379d9fd7da - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x60379db65d1f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x60379db65d1f - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7dc8d1cb8aa4 - <unknown>
[INFO] [stdout]   45:     0x7dc8d1d45a64 - clone
[INFO] [stdout]   46:                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:     0x60379db91a72 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60379db91a72 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60379db91a72 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60379db91a72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60379dba389f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x60379dba389f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x60379db5e443 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x60379db5e443 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x60379db6a902 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x60379db6f91f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x60379db6f7b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x60379da0cb2e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x60379da0cb2e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x60379db6ff2f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x60379db6ff2f - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x60379db6fd8a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x60379db6aa49 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x60379db51dad - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x60379dbac3c0 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x60379dbab1c6 - core::result::unwrap_failed::h2380020e6daeb464
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1862:5
[INFO] [stdout]   20:     0x60379da54b7c - core::result::Result<T,E>::expect::h4eb8401c0832916e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x60379d99bd1a - hack_simulator::state::tests::test_save_overwrites_existing_file::h8e57fd8dc8ad76b1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1290:35
[INFO] [stdout]   22:     0x60379d99c057 - hack_simulator::state::tests::test_save_overwrites_existing_file::{{closure}}::ha9d360c3d2a4e3c7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1284:44
[INFO] [stdout]   23:     0x60379d9aa396 - core::ops::function::FnOnce::call_once::h98b0f3fd67a8c7c7
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x60379da0c90b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x60379da0c90b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x60379da2098d - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x60379da2098d - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x60379da2098d - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x60379da2098d - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x60379da2098d - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x60379da2098d - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x60379da2098d - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x60379d9f9ea4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x60379d9f9ea4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x60379d9fd7da - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x60379d9fd7da - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x60379d9fd7da - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x60379d9fd7da - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x60379d9fd7da - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x60379db65d1f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x60379db65d1f - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7dc8d1cb8aa4 - <unknown>
[INFO] [stdout]   45:     0x7dc8d1d45a64 - 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:     0x60379db91a72 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60379db91a72 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60379db91a72 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60379db91a72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60379dba389f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x60379dba389f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x60379db5e443 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x60379db5e443 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x60379db6a902 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x60379db6f91f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x60379db6f7b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x60379da0cb2e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x60379da0cb2e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x60379db6ff2f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x60379db6ff2f - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x60379db6fd8a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x60379db6aa49 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x60379db51dad - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x60379dbac3c0 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x60379dbab1c6 - core::result::unwrap_failed::h2380020e6daeb464
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1862:5
[INFO] [stdout]   20:     0x60379da54b7c - core::result::Result<T,E>::expect::h4eb8401c0832916e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x60379d99a946 - hack_simulator::state::tests::test_serialization_format::hb63ec0ca30c80fbe
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1314:34
[INFO] [stdout]   22:     0x60379d99ac57 - hack_simulator::state::tests::test_serialization_format::{{closure}}::h8ff846a68946818d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/state.rs:1308:35
[INFO] [stdout]   23:     0x60379d9a8ac6 - core::ops::function::FnOnce::call_once::h200783cb1cd62db9
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x60379da0c90b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x60379da0c90b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x60379da2098d - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x60379da2098d - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x60379da2098d - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x60379da2098d - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x60379da2098d - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x60379da2098d - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x60379da2098d - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x60379d9f9ea4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x60379d9f9ea4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x60379d9fd7da - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x60379d9fd7da - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x60379d9fd7da - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x60379d9fd7da - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x60379d9fd7da - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x60379d9fd7da - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x60379db65d1f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x60379db65d1f - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7dc8d1cb8aa4 - <unknown>
[INFO] [stdout]   45:     0x7dc8d1d45a64 - 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.96s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "6c101b5884337b087b17ba1920bbb8d32441998753afddff98a4a14cc8840713", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c101b5884337b087b17ba1920bbb8d32441998753afddff98a4a14cc8840713", kill_on_drop: false }`
[INFO] [stdout] 6c101b5884337b087b17ba1920bbb8d32441998753afddff98a4a14cc8840713
