[INFO] cloning repository https://github.com/exmacxhinanetwork/dirhashmake
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/exmacxhinanetwork/dirhashmake" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexmacxhinanetwork%2Fdirhashmake", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexmacxhinanetwork%2Fdirhashmake'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 471f44c4503a089ac6e61e3d2cc10dfb05d3ec57
[INFO] testing exmacxhinanetwork/dirhashmake against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexmacxhinanetwork%2Fdirhashmake" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/exmacxhinanetwork/dirhashmake
[INFO] finished tweaking git repo https://github.com/exmacxhinanetwork/dirhashmake
[INFO] tweaked toml for git repo https://github.com/exmacxhinanetwork/dirhashmake written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/exmacxhinanetwork/dirhashmake on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/exmacxhinanetwork/dirhashmake already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7
[INFO] running `Command { std: "docker" "start" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling dirhashmake v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.89s
[INFO] running `Command { std: "docker" "inspect" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling dirhashmake v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.03s
[INFO] running `Command { std: "docker" "inspect" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dirhashmake-2dc8c1c0018fdabf)
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] path,type,sha256,size,modified,link_target
[INFO] [stdout] file.txt,file,abc123def456,1024,,
[INFO] [stdout] sub,dir,,,,
[INFO] [stdout] link,symlink,,,,file.txt
[INFO] [stdout] path,type,sha256,size,modified,link_target
[INFO] [stdout] file.txt,file,abc123def456,1024,,
[INFO] [stdout] sub,dir,,,,
[INFO] [stdout] link,symlink,,,,file.txt
[INFO] [stdout] <!DOCTYPE html>
[INFO] [stdout] <html lang="en">
[INFO] [stdout] <head>
[INFO] [stdout]   <meta charset="UTF-8">
[INFO] [stdout]   <meta name="viewport" content="width=device-width, initial-scale=1.0">
[INFO] [stdout]   <title>dirhashmake - Directory Hash Report</title>
[INFO] [stdout]   <style>
[INFO] [stdout]     :root {
[INFO] [stdout]       --bg: #0f1117;
[INFO] [stdout]       --surface: #1a1d27;
[INFO] [stdout]       --border: #2a2d3a;
[INFO] [stdout]       --text: #e2e4eb;
[INFO] [stdout]       --text-dim: #8b8fa3;
[INFO] [stdout]       --accent: #6c72cb;
[INFO] [stdout]       --file: #4ade80;
[INFO] [stdout]       --dir: #facc15;
[INFO] [stdout]       --symlink: #f472b6;
[INFO] [stdout]       --mono: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
[INFO] [stdout]       --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
[INFO] [stdout]     }
[INFO] [stdout]     * { margin: 0; padding: 0; box-sizing: border-box; }
[INFO] [stdout]     body {
[INFO] [stdout]       font-family: var(--sans);
[INFO] [stdout]       background: var(--bg);
[INFO] [stdout]       color: var(--text);
[INFO] [stdout]       line-height: 1.6;
[INFO] [stdout]       padding: 2rem;
[INFO] [stdout]       max-width: 1200px;
[INFO] [stdout]       margin: 0 auto;
[INFO] [stdout]     }
[INFO] [stdout]     h1 {
[INFO] [stdout]       font-size: 1.5rem;
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       margin-bottom: 0.5rem;
[INFO] [stdout]       color: var(--accent);
[INFO] [stdout]     }
[INFO] [stdout]     .subtitle {
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-size: 0.875rem;
[INFO] [stdout]       margin-bottom: 1.5rem;
[INFO] [stdout]     }
[INFO] [stdout]     .stats {
[INFO] [stdout]       display: grid;
[INFO] [stdout]       grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
[INFO] [stdout]       gap: 1rem;
[INFO] [stdout]       margin-bottom: 2rem;
[INFO] [stdout]     }
[INFO] [stdout]     .stat {
[INFO] [stdout]       background: var(--surface);
[INFO] [stdout]       border: 1px solid var(--border);
[INFO] [stdout]       border-radius: 8px;
[INFO] [stdout]       padding: 1rem;
[INFO] [stdout]       text-align: center;
[INFO] [stdout]     }
[INFO] [stdout]     .stat-value {
[INFO] [stdout]       font-size: 1.5rem;
[INFO] [stdout]       font-weight: 700;
[INFO] [stdout]       font-family: var(--mono);
[INFO] [stdout]     }
[INFO] [stdout]     .stat-label {
[INFO] [stdout]       font-size: 0.75rem;
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]       letter-spacing: 0.05em;
[INFO] [stdout]     }
[INFO] [stdout]     .stat-files .stat-value { color: var(--file); }
[INFO] [stdout]     .stat-dirs .stat-value { color: var(--dir); }
[INFO] [stdout]     .stat-symlinks .stat-value { color: var(--symlink); }
[INFO] [stdout]     .stat-size .stat-value { color: var(--accent); }
[INFO] [stdout]     table {
[INFO] [stdout]       width: 100%;
[INFO] [stdout]       border-collapse: collapse;
[INFO] [stdout]       font-size: 0.875rem;
[INFO] [stdout]     }
[INFO] [stdout]     th {
[INFO] [stdout]       text-align: left;
[INFO] [stdout]       padding: 0.75rem 1rem;
[INFO] [stdout]       background: var(--surface);
[INFO] [stdout]       border-bottom: 2px solid var(--border);
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]       font-size: 0.7rem;
[INFO] [stdout]       letter-spacing: 0.05em;
[INFO] [stdout]       position: sticky;
[INFO] [stdout]       top: 0;
[INFO] [stdout]     }
[INFO] [stdout]     td {
[INFO] [stdout]       padding: 0.6rem 1rem;
[INFO] [stdout]       border-bottom: 1px solid var(--border);
[INFO] [stdout]       font-family: var(--mono);
[INFO] [stdout]       font-size: 0.8rem;
[INFO] [stdout]     }
[INFO] [stdout]     tr:hover td { background: rgba(108, 114, 203, 0.05); }
[INFO] [stdout]     .type-badge {
[INFO] [stdout]       display: inline-block;
[INFO] [stdout]       padding: 0.15rem 0.5rem;
[INFO] [stdout]       border-radius: 4px;
[INFO] [stdout]       font-size: 0.7rem;
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]     }
[INFO] [stdout]     .type-file { background: rgba(74, 222, 128, 0.15); color: var(--file); }
[INFO] [stdout]     .type-dir { background: rgba(250, 204, 21, 0.15); color: var(--dir); }
[INFO] [stdout]     .type-symlink { background: rgba(244, 114, 182, 0.15); color: var(--symlink); }
[INFO] [stdout]     .hash { color: var(--text-dim); }
[INFO] [stdout]     .hash-empty { color: var(--border); font-style: italic; }
[INFO] [stdout]     .size { color: var(--text-dim); text-align: right; }
[INFO] [stdout]     .link-target { color: var(--accent); }
[INFO] [stdout]     .footer {
[INFO] [stdout]       margin-top: 2rem;
[INFO] [stdout]       padding-top: 1rem;
[INFO] [stdout]       border-top: 1px solid var(--border);
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-size: 0.75rem;
[INFO] [stdout]       text-align: center;
[INFO] [stdout]     }
[INFO] [stdout]     @media (max-width: 768px) {
[INFO] [stdout]       body { padding: 1rem; }
[INFO] [stdout]       table { font-size: 0.75rem; }
[INFO] [stdout]       td, th { padding: 0.5rem; }
[INFO] [stdout]       .stats { grid-template-columns: repeat(2, 1fr); }
[INFO] [stdout]     }
[INFO] [stdout]   </style>
[INFO] [stdout] </head>
[INFO] [stdout] <body>
[INFO] [stdout]   <h1>Directory Hash Report</h1>
[INFO] [stdout]   <p class="subtitle">Generated by dirhashmake</p>
[INFO] [stdout]   <div class="stats">
[INFO] [stdout]     <div class="stat stat-files">
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Files</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-dirs">
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Directories</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-symlinks">
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Symlinks</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-size">
[INFO] [stdout]       <div class="stat-value">1.00 KiB</div>
[INFO] [stdout]       <div class="stat-label">Total Size</div>
[INFO] [stdout]     </div>
[INFO] [stdout]   </div>
[INFO] [stdout]   <table>
[INFO] [stdout]     <thead>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <th>Path</th>
[INFO] [stdout]         <th>Type</th>
[INFO] [stdout]         <th>SHA-256</th>
[INFO] [stdout]         <th>Size</th>
[INFO] [stdout]         <th>Modified</th>
[INFO] [stdout]         <th>Link Target</th>
[INFO] [stdout]       </tr>
[INFO] [stdout]     </thead>
[INFO] [stdout]     <tbody>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>file.txt</td>
[INFO] [stdout]         <td><span class="type-badge type-file">file</span></td>
[INFO] [stdout]         <td><span class="hash">abc123def456</span></td>
[INFO] [stdout]         <td><span class="size">1024</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">—</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>sub</td>
[INFO] [stdout]         <td><span class="type-badge type-dir">dir</span></td>
[INFO] [stdout]         <td><span class="hash-empty">—</span></td>
[INFO] [stdout]         <td><span class="size">—</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">—</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>link</td>
[INFO] [stdout]         <td><span class="type-badge type-symlink">symlink</span></td>
[INFO] [stdout]         <td><span class="hash-empty">—</span></td>
[INFO] [stdout]         <td><span class="size">—</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">file.txt</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout]     </tbody>
[INFO] [stdout]   </table>
[INFO] [stdout]   <div class="footer">
[INFO] [stdout]     3 entries &middot; Generated by dirhashmake
[INFO] [stdout]   </div>
[INFO] [stdout] </body>
[INFO] [stdout] </html>
[INFO] [stdout] -- dirhashmake SQL export
[INFO] [stdout] -- Generated by dirhashmake
[INFO] [stdout] 
[INFO] [stdout] CREATE TABLE IF NOT EXISTS file_hashes (
[INFO] [stdout]     path TEXT NOT NULL,
[INFO] [stdout]     type TEXT NOT NULL,
[INFO] [stdout]     sha256 TEXT,
[INFO] [stdout] test cli::tests::test_parse_env_options_malformed ...     size INTEGER,
[INFO] [stdout]     modified TEXT,
[INFO] [stdout]     link_target TEXT
[INFO] [stdout] );
[INFO] [stdout] 
[INFO] [stdout] ok
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('file.txt', 'file', abc123def456, 1024, NULL, NULL);
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('sub', 'dir', NULL, NULL, NULL, NULL);
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('link', 'symlink', NULL, NULL, NULL, file.txt);
[INFO] [stdout] test cli::tests::test_parse_env_options_empty ... ok
[INFO] [stdout] test cli::tests::test_parse_env_options_valid ... ok
[INFO] [stdout] test formatters::tests::test_export_format_display ... ok
[INFO] [stdout] test formatters::tests::test_export_format_from_str ... ok
[INFO] [stdout] test formatters::tests::test_format_bytes_all ... ok
[INFO] [stdout] test formatters::tests::test_write_csv_with_format ... ok
[INFO] [stdout] test formatters::tests::test_write_json ... ok
[INFO] [stdout] test formatters::tests::test_write_html_escaping ... ok
[INFO] [stdout] test formatters::tests::test_write_html ... ok
[INFO] [stdout] test formatters::tests::test_write_sql_to_file ... ok
[INFO] [stdout] test formatters::tests::test_write_html_to_file ... ok
[INFO] [stdout] test formatters::tests::test_write_sql_escaping ... ok
[INFO] [stdout] test formatters::tests::test_write_json_to_file ... ok
[INFO] [stdout] test formatters::tests::test_write_sql ... ok
[INFO] [stdout] test formatters::tests::test_write_yaml ... ok
[INFO] [stdout] test formatters::tests::test_write_yaml_to_file ... ok
[INFO] [stdout] -- dirhashmake SQL export
[INFO] [stdout] -- Generated by dirhashmake
[INFO] [stdout] 
[INFO] [stdout] CREATE TABLE IF NOT EXISTS file_hashes (
[INFO] [stdout]     path TEXT NOT NULL,
[INFO] [stdout]     type TEXT NOT NULL,
[INFO] [stdout]     sha256 TEXT,
[INFO] [stdout]     size INTEGER,
[INFO] [stdout]     modified TEXT,
[INFO] [stdout]     link_target TEXT
[INFO] [stdout] );
[INFO] [stdout] 
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('file.txt', 'file', abc123def456, 1024, NULL, NULL);
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('sub', 'dir', NULL, NULL, NULL, NULL);
[INFO] [stdout] INSERT INTO file_hashes (path, type, sha256, size, modified, link_target) VALUES ('link', 'symlink', NULL, NULL, NULL, file.txt);
[INFO] [stdout] <!DOCTYPE html>
[INFO] [stdout] <html lang="en">
[INFO] [stdout] <head>
[INFO] [stdout]   <meta charset="UTF-8">
[INFO] [stdout]   <meta name="viewport" content="width=device-width, initial-scale=1.0">
[INFO] [stdout]   <title>dirhashmake - Directory Hash Report</title>
[INFO] [stdout]   <style>
[INFO] [stdout]     :root {
[INFO] [stdout]       --bg: #0f1117;
[INFO] [stdout]       --surface: #1a1d27;
[INFO] [stdout]       --border: #2a2d3a;
[INFO] [stdout]       --text: #e2e4eb;
[INFO] [stdout]       --text-dim: #8b8fa3;
[INFO] [stdout]       --accent: #6c72cb;
[INFO] [stdout]       --file: #4ade80;
[INFO] [stdout]       --dir: #facc15;
[INFO] [stdout]       --symlink: #f472b6;
[INFO] [stdout]       --mono: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
[INFO] [stdout]       --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
[INFO] [stdout]     }
[INFO] [stdout]     * { margin: 0; padding: 0; box-sizing: border-box; }
[INFO] [stdout]     body {
[INFO] [stdout]       font-family: var(--sans);
[INFO] [stdout]       background: var(--bg);
[INFO] [stdout]       color: var(--text);
[INFO] [stdout]       line-height: 1.6;
[INFO] [stdout]       padding: 2rem;
[INFO] [stdout]       max-width: 1200px;
[INFO] [stdout]       margin: 0 auto;
[INFO] [stdout]     }
[INFO] [stdout]     h1 {
[INFO] [stdout]       font-size: 1.5rem;
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       margin-bottom: 0.5rem;
[INFO] [stdout]       color: var(--accent);
[INFO] [stdout]     }
[INFO] [stdout]     .subtitle {
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-size: 0.875rem;
[INFO] [stdout]       margin-bottom: 1.5rem;
[INFO] [stdout]     }
[INFO] [stdout]     .stats {
[INFO] [stdout]       display: grid;
[INFO] [stdout]       grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
[INFO] [stdout]       gap: 1rem;
[INFO] [stdout]       margin-bottom: 2rem;
[INFO] [stdout]     }
[INFO] [stdout]     .stat {
[INFO] [stdout]       background: var(--surface);
[INFO] [stdout]       border: 1px solid var(--border);
[INFO] [stdout]       border-radius: 8px;
[INFO] [stdout]       padding: 1rem;
[INFO] [stdout]       text-align: center;
[INFO] [stdout]     }
[INFO] [stdout]     .stat-value {
[INFO] [stdout]       font-size: 1.5rem;
[INFO] [stdout]       font-weight: 700;
[INFO] [stdout]       font-family: var(--mono);
[INFO] [stdout]     }
[INFO] [stdout]     .stat-label {
[INFO] [stdout]       font-size: 0.75rem;
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]       letter-spacing: 0.05em;
[INFO] [stdout]     }
[INFO] [stdout]     .stat-files .stat-value { color: var(--file); }
[INFO] [stdout]     .stat-dirs .stat-value { color: var(--dir); }
[INFO] [stdout]     .stat-symlinks .stat-value { color: var(--symlink); }
[INFO] [stdout]     .stat-size .stat-value { color: var(--accent); }
[INFO] [stdout]     table {
[INFO] [stdout]       width: 100%;
[INFO] [stdout]       border-collapse: collapse;
[INFO] [stdout]       font-size: 0.875rem;
[INFO] [stdout]     }
[INFO] [stdout]     th {
[INFO] [stdout]       text-align: left;
[INFO] [stdout]       padding: 0.75rem 1rem;
[INFO] [stdout]       background: var(--surface);
[INFO] [stdout]       border-bottom: 2px solid var(--border);
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]       font-size: 0.7rem;
[INFO] [stdout]       letter-spacing: 0.05em;
[INFO] [stdout]       position: sticky;
[INFO] [stdout]       top: 0;
[INFO] [stdout]     }
[INFO] [stdout]     td {
[INFO] [stdout]       padding: 0.6rem 1rem;
[INFO] [stdout]       border-bottom: 1px solid var(--border);
[INFO] [stdout]       font-family: var(--mono);
[INFO] [stdout]       font-size: 0.8rem;
[INFO] [stdout]     }
[INFO] [stdout]     tr:hover td { background: rgba(108, 114, 203, 0.05); }
[INFO] [stdout]     .type-badge {
[INFO] [stdout]       display: inline-block;
[INFO] [stdout]       padding: 0.15rem 0.5rem;
[INFO] [stdout]       border-radius: 4px;
[INFO] [stdout]       font-size: 0.7rem;
[INFO] [stdout]       font-weight: 600;
[INFO] [stdout]       text-transform: uppercase;
[INFO] [stdout]     }
[INFO] [stdout]     .type-file { background: rgba(74, 222, 128, 0.15); color: var(--file); }
[INFO] [stdout]     .type-dir { background: rgba(250, 204, 21, 0.15); color: var(--dir); }
[INFO] [stdout]     .type-symlink { background: rgba(244, 114, 182, 0.15); color: var(--symlink); }
[INFO] [stdout]     .hash { color: var(--text-dim); }
[INFO] [stdout]     .hash-empty { color: var(--border); font-style: italic; }
[INFO] [stdout]     .size { color: var(--text-dim); text-align: right; }
[INFO] [stdout]     .link-target { color: var(--accent); }
[INFO] [stdout]     .footer {
[INFO] [stdout]       margin-top: 2rem;
[INFO] [stdout]       padding-top: 1rem;
[INFO] [stdout]       border-top: 1px solid var(--border);
[INFO] [stdout]       color: var(--text-dim);
[INFO] [stdout]       font-size: 0.75rem;
[INFO] [stdout]       text-align: center;
[INFO] [stdout]     }
[INFO] [stdout]     @media (max-width: 768px) {
[INFO] [stdout]       body { padding: 1rem; }
[INFO] [stdout]       table { font-size: 0.75rem; }
[INFO] [stdout]       td, th { padding: 0.5rem; }
[INFO] [stdout]       .stats { grid-template-columns: repeat(2, 1fr); }
[INFO] [stdout]     }
[INFO] [stdout]   </style>
[INFO] [stdout] </head>
[INFO] [stdout] <body>
[INFO] [stdout]   <h1>Directory Hash Report</h1>
[INFO] [stdout]   <p class="subtitle">Generated by dirhashmake</p>
[INFO] [stdout]   <div class="stats">
[INFO] [stdout]     <div class="stat stat-files">
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Files</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-dirs">
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Directories</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-symlinks">
[INFO] [stdout] test hasher::tests::test_process_entry_dir ... ok
[INFO] [stdout]       <div class="stat-value">1</div>
[INFO] [stdout]       <div class="stat-label">Symlinks</div>
[INFO] [stdout]     </div>
[INFO] [stdout]     <div class="stat stat-size">
[INFO] [stdout]       <div class="stat-value">1.00 KiB</div>
[INFO] [stdout]       <div class="stat-label">Total Size</div>
[INFO] [stdout]     </div>
[INFO] [stdout]   </div>
[INFO] [stdout]   <table>
[INFO] [stdout]     <thead>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <th>Path</th>
[INFO] [stdout]         <th>Type</th>
[INFO] [stdout]         <th>SHA-256</th>
[INFO] [stdout]         <th>Size</th>
[INFO] [stdout]         <th>Modified</th>
[INFO] [stdout]         <th>Link Target</th>
[INFO] [stdout]       </tr>
[INFO] [stdout]     </thead>
[INFO] [stdout]     <tbody>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>file.txt</td>
[INFO] [stdout]         <td><span class="type-badge type-file">file</span></td>
[INFO] [stdout]         <td><span class="hash">abc123def456</span></td>
[INFO] [stdout]         <td><span class="size">1024</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">—</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>sub</td>
[INFO] [stdout]         <td><span class="type-badge type-dir">dir</span></td>
[INFO] [stdout]         <td><span class="hash-empty">—</span></td>
[INFO] [stdout]         <td><span class="size">—</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">—</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout] test hasher::tests::test_process_entry_nonexistent_file ... ok
[INFO] [stdout]       <tr>
[INFO] [stdout]         <td>link</td>
[INFO] [stdout]         <td><span class="type-badge type-symlink">symlink</span></td>
[INFO] [stdout]         <td><span class="hash-empty">—</span></td>
[INFO] [stdout]         <td><span class="size">—</span></td>
[INFO] [stdout]         <td><span class="modified">—</span></td>
[INFO] [stdout]         <td><span class="link-target">file.txt</span></td>
[INFO] [stdout]       </tr>
[INFO] [stdout]     </tbody>
[INFO] [stdout]   </table>
[INFO] [stdout]   <div class="footer">
[INFO] [stdout]     3 entries &middot; Generated by dirhashmake
[INFO] [stdout]   </div>
[INFO] [stdout] </body>
[INFO] [stdout] </html>
[INFO] [stdout] test formatters::tests::test_write_output_dispatch ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_symlink ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_empty_dir ... ok
[INFO] [stdout] test types::tests::test_entry_clone ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_hash_deterministic ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_special_chars ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_symlink ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_nonexistent_dir ... ok
[INFO] [stdout] test types::tests::test_entry_type_equality ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_file ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_empty_file ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_sort_order ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_unicode_paths ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_recursive_false ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_absolute_paths ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_with_files ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_max_depth ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_symlink_to_dir_not_followed ... ok
[INFO] [stdout] test scanner::tests::test_scan_stats_accuracy ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_permission_denied ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--bin dirhashmake`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- hasher::tests::test_process_entry_permission_denied stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'hasher::tests::test_process_entry_permission_denied' (570) panicked at src/hasher.rs:193:9:
[INFO] [stdout] Should fail to read file with no permissions
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x615644c53471 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x615644c53471 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x615644c53471 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x615644c53471 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x615644c6a83a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x615644c6a83a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x615644c589fc - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x615644c589fc - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x615644c2ed66 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x615644c2ed66 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x615644c49ea9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x615644b1cb50 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x615644b1cb50 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x615644c4a1d2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x615644c4a1d2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x615644c2ee44 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x615644c26239 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x615644c2fddd - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x615644c6b03c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x615644a99ea3 - dirhashmake[690f382de30a9968]::hasher::tests::test_process_entry_permission_denied::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:193:9
[INFO] [stdout]   20:     0x615644ae07d2 - <core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>> as core[6883ba1bc0fe4ed1]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/future/future.rs:133:9
[INFO] [stdout]   21:     0x615644ae08ad - <core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>> as core[6883ba1bc0fe4ed1]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/future/future.rs:133:9
[INFO] [stdout]   22:     0x615644a6e68d - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:778:70
[INFO] [stdout]   23:     0x615644a6e35b - tokio[d7a26d844a7d5501]::task::coop::with_budget::<core[6883ba1bc0fe4ed1]::task::poll::Poll<()>, <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:167:5
[INFO] [stdout]   24:     0x615644a6e35b - tokio[d7a26d844a7d5501]::task::coop::budget::<core[6883ba1bc0fe4ed1]::task::poll::Poll<()>, <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:133:5
[INFO] [stdout]   25:     0x615644a6e35b - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:778:25
[INFO] [stdout]   26:     0x615644a66330 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Context>::enter::<core[6883ba1bc0fe4ed1]::task::poll::Poll<()>, <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:451:19
[INFO] [stdout]   27:     0x615644a6c47d - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:777:44
[INFO] [stdout]   28:     0x615644a6ab84 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:865:68
[INFO] [stdout]   29:     0x615644ac149b - <tokio[d7a26d844a7d5501]::runtime::context::scoped::Scoped<tokio[d7a26d844a7d5501]::runtime::scheduler::Context>>::set::<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}, (alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>)>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   30:     0x615644aab5a9 - tokio[d7a26d844a7d5501]::runtime::context::set_scheduler::<(alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>), <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:38
[INFO] [stdout]   31:     0x615644ad9b02 - <std[73adb7dc35730857]::thread::local::LocalKey<tokio[d7a26d844a7d5501]::runtime::context::Context>>::try_with::<tokio[d7a26d844a7d5501]::runtime::context::set_scheduler<(alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>), <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/local.rs:463:12
[INFO] [stdout]   32:     0x615644ad91ce - <std[73adb7dc35730857]::thread::local::LocalKey<tokio[d7a26d844a7d5501]::runtime::context::Context>>::with::<tokio[d7a26d844a7d5501]::runtime::context::set_scheduler<(alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>), <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/local.rs:427:20
[INFO] [stdout]   33:     0x615644aa94cd - tokio[d7a26d844a7d5501]::runtime::context::set_scheduler::<(alloc[55a36b64bcbf2c0d]::boxed::Box<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::Core>, core[6883ba1bc0fe4ed1]::option::Option<()>), <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:17
[INFO] [stdout]   34:     0x615644a68680 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>::{closure#0}, core[6883ba1bc0fe4ed1]::option::Option<()>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:865:27
[INFO] [stdout]   35:     0x615644a68e86 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:765:24
[INFO] [stdout]   36:     0x615644a6a120 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:205:33
[INFO] [stdout]   37:     0x615644ae1dc3 - tokio[d7a26d844a7d5501]::runtime::context::runtime::enter_runtime::<<tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   38:     0x615644a65691 - <tokio[d7a26d844a7d5501]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/current_thread/mod.rs:193:9
[INFO] [stdout]   39:     0x615644ac0a94 - <tokio[d7a26d844a7d5501]::runtime::runtime::Runtime>::block_on_inner::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/runtime.rs:371:52
[INFO] [stdout]   40:     0x615644ac0e1f - <tokio[d7a26d844a7d5501]::runtime::runtime::Runtime>::block_on::<core[6883ba1bc0fe4ed1]::pin::Pin<&mut dyn core[6883ba1bc0fe4ed1]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/runtime.rs:345:18
[INFO] [stdout]   41:     0x615644a9c60f - dirhashmake[690f382de30a9968]::hasher::tests::test_process_entry_permission_denied
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:198:46
[INFO] [stdout]   42:     0x615644a96397 - dirhashmake[690f382de30a9968]::hasher::tests::test_process_entry_permission_denied::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:170:52
[INFO] [stdout]   43:     0x615644ac02c6 - <dirhashmake[690f382de30a9968]::hasher::tests::test_process_entry_permission_denied::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x615644b0fe8b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x615644b0fe8b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   46:     0x615644b1d4d5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   47:     0x615644b1d4d5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   48:     0x615644b1d4d5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   49:     0x615644b1d4d5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   50:     0x615644b1d4d5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   51:     0x615644b1d4d5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   52:     0x615644b1d4d5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   53:     0x615644b17f84 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   54:     0x615644b17f84 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   55:     0x615644b20622 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   56:     0x615644b20622 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   57:     0x615644b20622 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   58:     0x615644b20622 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   59:     0x615644b20622 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   60:     0x615644b20622 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   61:     0x615644b20622 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   62:     0x615644c5277f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   63:     0x615644c5277f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   64:     0x7374961c1aa4 - <unknown>
[INFO] [stdout]   65:     0x73749624ea64 - clone
[INFO] [stdout]   66:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     hasher::tests::test_process_entry_permission_denied
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 38 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7", kill_on_drop: false }`
[INFO] [stdout] 98f488cdd6dd157d0a4c57dff89b0aded3f7e1a17f2f85fed33dc4c752a9bfb7
