[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.97.0-beta.6 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-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/exmacxhinanetwork/dirhashmake on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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] f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6
[INFO] running `Command { std: "docker" "start" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", 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" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", 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" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling generic-array v0.14.7
[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 serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling csv v1.4.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 17.03s
[INFO] running `Command { std: "docker" "inspect" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", 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" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "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 1.43s
[INFO] running `Command { std: "docker" "inspect" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", 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" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[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] <!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]     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] 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] test cli::tests::test_parse_env_options_empty ... ok
[INFO] [stdout] test cli::tests::test_parse_env_options_valid ... ok
[INFO] [stdout] test cli::tests::test_parse_env_options_malformed ... 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 ... ok
[INFO] [stdout] test formatters::tests::test_write_sql ... ok
[INFO] [stdout] test formatters::tests::test_write_json_to_file ... ok
[INFO] [stdout] test formatters::tests::test_write_html_escaping ... ok
[INFO] [stdout] test formatters::tests::test_write_html_to_file ... 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]       <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] test formatters::tests::test_write_sql_escaping ...         <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] ok
[INFO] [stdout] test hasher::tests::test_process_entry_dir ... ok
[INFO] [stdout] test formatters::tests::test_write_yaml ... ok
[INFO] [stdout] test formatters::tests::test_write_sql_to_file ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_nonexistent_file ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_symlink ... ok
[INFO] [stdout] test formatters::tests::test_write_output_dispatch ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_empty_file ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_file ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_absolute_paths ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_recursive_false ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_empty_dir ... ok
[INFO] [stdout] test types::tests::test_entry_clone ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_nonexistent_dir ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_symlink ... ok
[INFO] [stdout] test types::tests::test_entry_type_equality ... ok
[INFO] [stdout] test scanner::tests::test_collect_entries_special_chars ... ok
[INFO] [stdout] test hasher::tests::test_process_entry_hash_deterministic ... 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_symlink_to_dir_not_followed ... ok
[INFO] [stdout] test scanner::tests::test_scan_stats_accuracy ... 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 hasher::tests::test_process_entry_permission_denied ... FAILED
[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' (571) panicked at src/hasher.rs:193:9:
[INFO] [stdout] Should fail to read file with no permissions
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x586cfde711d8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x586cfde711d8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x586cfde711d8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x586cfde711d8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x586cfde883ea - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x586cfde883ea - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x586cfde76922 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x586cfde76922 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x586cfde4d806 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x586cfde4d806 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x586cfde682c9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x586cfdd386dc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x586cfdd386dc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x586cfde68542 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x586cfde68542 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x586cfde4d8f4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x586cfde42699 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x586cfde4e8ed - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x586cfde88bac - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x586cfdcd76d2 - dirhashmake[1fbd77a04394b22]::hasher::tests::test_process_entry_permission_denied::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:193:9
[INFO] [stdout]   20:     0x586cfdcbf602 - <core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>> as core[8fb95b77d25ab6c8]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9
[INFO] [stdout]   21:     0x586cfdcbf6dd - <core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>> as core[8fb95b77d25ab6c8]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9
[INFO] [stdout]   22:     0x586cfdd0654d - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd0621b - tokio[2b750a0bb925ce59]::task::coop::with_budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd0621b - tokio[2b750a0bb925ce59]::task::coop::budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd0621b - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdcfe640 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Context>::enter::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd042dd - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd029e4 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::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:     0x586cfdc953bb - <tokio[2b750a0bb925ce59]::runtime::context::scoped::Scoped<tokio[2b750a0bb925ce59]::runtime::scheduler::Context>>::set::<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::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:     0x586cfdce79a9 - tokio[2b750a0bb925ce59]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::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:     0x586cfdcaf6a2 - <std[10d71ac2c42b111e]::thread::local::LocalKey<tokio[2b750a0bb925ce59]::runtime::context::Context>>::try_with::<tokio[2b750a0bb925ce59]::runtime::context::set_scheduler<(alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:462:12
[INFO] [stdout]   32:     0x586cfdcaed6e - <std[10d71ac2c42b111e]::thread::local::LocalKey<tokio[2b750a0bb925ce59]::runtime::context::Context>>::with::<tokio[2b750a0bb925ce59]::runtime::context::set_scheduler<(alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:426:20
[INFO] [stdout]   33:     0x586cfdce4bdd - tokio[2b750a0bb925ce59]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::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:     0x586cfdd00990 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::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:     0x586cfdd01196 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdd01f80 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdce70d3 - tokio[2b750a0bb925ce59]::runtime::context::runtime::enter_runtime::<<tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdcfd9a1 - <tokio[2b750a0bb925ce59]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdccca44 - <tokio[2b750a0bb925ce59]::runtime::runtime::Runtime>::block_on_inner::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdcccdcf - <tokio[2b750a0bb925ce59]::runtime::runtime::Runtime>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::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:     0x586cfdcd9a7f - dirhashmake[1fbd77a04394b22]::hasher::tests::test_process_entry_permission_denied
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:198:46
[INFO] [stdout]   42:     0x586cfdcd3bc7 - dirhashmake[1fbd77a04394b22]::hasher::tests::test_process_entry_permission_denied::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hasher.rs:170:52
[INFO] [stdout]   43:     0x586cfdce2706 - <dirhashmake[1fbd77a04394b22]::hasher::tests::test_process_entry_permission_denied::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x586cfdd2b7bb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x586cfdd2b7bb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   46:     0x586cfdd39035 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   47:     0x586cfdd39035 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   48:     0x586cfdd39035 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   49:     0x586cfdd39035 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   50:     0x586cfdd39035 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   51:     0x586cfdd39035 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   52:     0x586cfdd39035 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   53:     0x586cfdd32944 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   54:     0x586cfdd32944 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   55:     0x586cfdd3c0b2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   56:     0x586cfdd3c0b2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   57:     0x586cfdd3c0b2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   58:     0x586cfdd3c0b2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   59:     0x586cfdd3c0b2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   60:     0x586cfdd3c0b2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   61:     0x586cfdd3c0b2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   62:     0x586cfde7061f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   63:     0x586cfde7061f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   64:     0x7640d3111aa4 - <unknown>
[INFO] [stdout]   65:     0x7640d319ea64 - 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.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin dirhashmake`
[INFO] running `Command { std: "docker" "inspect" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6", kill_on_drop: false }`
[INFO] [stdout] f4e8b92f2672f4895d266dcad2d3e6f98788a961c9a2bf834e77c360b999c4b6
