[INFO] cloning repository https://github.com/braviadev/scoutly [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/braviadev/scoutly" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbraviadev%2Fscoutly", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbraviadev%2Fscoutly'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c285546bbaf109cbb71a60568e0bac8bc83b4e40 [INFO] testing braviadev/scoutly against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbraviadev%2Fscoutly" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/braviadev/scoutly [INFO] finished tweaking git repo https://github.com/braviadev/scoutly [INFO] tweaked toml for git repo https://github.com/braviadev/scoutly written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/braviadev/scoutly on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/braviadev/scoutly 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0cde4aac3bb0401e9801dd801bbe52da89ae1bbe1e3952e5efd74c07357afc3d [INFO] running `Command { std: "docker" "start" "-a" "0cde4aac3bb0401e9801dd801bbe52da89ae1bbe1e3952e5efd74c07357afc3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0cde4aac3bb0401e9801dd801bbe52da89ae1bbe1e3952e5efd74c07357afc3d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0cde4aac3bb0401e9801dd801bbe52da89ae1bbe1e3952e5efd74c07357afc3d", kill_on_drop: false }` [INFO] [stdout] 0cde4aac3bb0401e9801dd801bbe52da89ae1bbe1e3952e5efd74c07357afc3d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] da9a55e89080dea1d47fd0ef35d5686071eaee8ac8887c944084788f8ebf973c [INFO] running `Command { std: "docker" "start" "-a" "da9a55e89080dea1d47fd0ef35d5686071eaee8ac8887c944084788f8ebf973c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling cc v1.2.44 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling rustls-pki-types v1.13.0 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling rustls v0.23.34 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling simd-adler32 v0.3.7 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling futf v0.1.5 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling brotli-decompressor v5.0.0 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling markup5ever v0.14.1 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.6 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling dtoa v1.0.10 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling brotli v8.0.2 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling flate2 v1.1.5 [INFO] [stderr] Compiling tendril v0.4.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling compression-core v0.4.29 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling webpki-roots v1.0.4 [INFO] [stderr] Compiling servo_arc v0.4.1 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling iri-string v0.7.8 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling clap_builder v4.5.51 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling dashmap v5.5.3 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling compression-codecs v0.4.31 [INFO] [stderr] Compiling spinning_top v0.3.0 [INFO] [stderr] Compiling nonzero_ext v0.3.0 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling ego-tree v0.10.0 [INFO] [stderr] Compiling no-std-compat v0.4.1 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.103.8 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling cssparser v0.34.0 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling match_token v0.1.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling html5ever v0.29.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling scraper v0.22.0 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling governor v0.6.3 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling clap v4.5.51 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling async-compression v0.4.32 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.24 [INFO] [stderr] Compiling scoutly v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s [INFO] running `Command { std: "docker" "inspect" "da9a55e89080dea1d47fd0ef35d5686071eaee8ac8887c944084788f8ebf973c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da9a55e89080dea1d47fd0ef35d5686071eaee8ac8887c944084788f8ebf973c", kill_on_drop: false }` [INFO] [stdout] da9a55e89080dea1d47fd0ef35d5686071eaee8ac8887c944084788f8ebf973c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e33ec716cf61e81a71f5ca53421b01008699f01636cfd3e513fdb934c9df5f15 [INFO] running `Command { std: "docker" "start" "-a" "e33ec716cf61e81a71f5ca53421b01008699f01636cfd3e513fdb934c9df5f15", kill_on_drop: false }` [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling mio v1.1.0 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling local-waker v0.1.4 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling cc v1.2.44 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling regex-lite v0.1.8 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling bytestring v1.5.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling actix-utils v3.0.1 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling actix-service v2.0.3 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling local-channel v0.1.5 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling rustls v0.23.34 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling language-tags v0.3.2 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling governor v0.6.3 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling rustls-webpki v0.103.8 [INFO] [stderr] Compiling actix-rt v2.11.0 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling async-compression v0.4.32 [INFO] [stderr] Compiling actix-server v2.6.0 [INFO] [stderr] Compiling scraper v0.22.0 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling impl-more v0.1.9 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling assert_cmd v2.1.1 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling reqwest v0.12.24 [INFO] [stderr] Compiling http-range v0.1.5 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling serial_test v3.2.0 [INFO] [stderr] Compiling scoutly v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling actix-http v3.11.2 [INFO] [stderr] Compiling actix-web v4.11.0 [INFO] [stderr] Compiling actix-files v0.6.8 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 50s [INFO] running `Command { std: "docker" "inspect" "e33ec716cf61e81a71f5ca53421b01008699f01636cfd3e513fdb934c9df5f15", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e33ec716cf61e81a71f5ca53421b01008699f01636cfd3e513fdb934c9df5f15", kill_on_drop: false }` [INFO] [stdout] e33ec716cf61e81a71f5ca53421b01008699f01636cfd3e513fdb934c9df5f15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7d1dddce4a74a58c1bb276af0d5f78aa0343f1cb345cd6ff08a7087bf1aee994 [INFO] running `Command { std: "docker" "start" "-a" "7d1dddce4a74a58c1bb276af0d5f78aa0343f1cb345cd6ff08a7087bf1aee994", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/scoutly-5bf64e9a8fa83185) [INFO] [stdout] [INFO] [stdout] running 39 tests [INFO] [stdout] test config::tests::test_config_format_from_path ... ok [INFO] [stdout] test config::tests::test_default_paths_exists ... ok [INFO] [stdout] test config::tests::test_from_default_paths_no_config ... ok [INFO] [stdout] test config::tests::test_from_default_paths_finds_config_dir_config ... ok [INFO] [stdout] test config::tests::test_from_default_paths_checks_all_extensions ... ok [INFO] [stdout] test config::tests::test_from_default_paths_returns_none_when_no_config_exists ... ok [INFO] [stdout] test config::tests::test_default_paths_with_empty_xdg_config_home ... ok [INFO] [stdout] test config::tests::test_default_paths_with_xdg_config_home ... ok [INFO] [stdout] test config::tests::test_load_json_config ... ok [INFO] [stdout] test config::tests::test_load_toml_config ... ok [INFO] [stdout] test config::tests::test_load_yaml_config ... ok [INFO] [stdout] test config::tests::test_merge_with_cli_defaults ... ok [INFO] [stdout] test config::tests::test_from_default_paths_finds_current_dir_config ... ok [INFO] [stdout] test config::tests::test_merge_with_cli_overrides ... ok [INFO] [stdout] test config::tests::test_from_default_paths_priority_order ... ok [INFO] [stdout] test config::tests::test_partial_config ... ok [INFO] [stdout] test config::tests::test_invalid_json_config ... ok [INFO] [stdout] test config::tests::test_invalid_toml_config ... ok [INFO] [stdout] test config::tests::test_invalid_yaml_config ... ok [INFO] [stdout] test config::tests::test_from_default_paths_returns_error_on_invalid_config ... ok [INFO] [stdout] test config::tests::test_default_paths_without_xdg_config_home ... ok [INFO] [stdout] test robots::tests::test_default ... ok [INFO] [stdout] test robots::tests::test_cache_functionality ... ok [INFO] [stdout] test robots::tests::test_parse_robots_txt ... ok [INFO] [stdout] test robots::tests::test_check_rules ... ok [INFO] [stdout] test robots::tests::test_path_matches_end_marker ... ok [INFO] [stdout] test robots::tests::test_parse_robots_txt_with_invalid_lines ... ok [INFO] [stdout] test robots::tests::test_path_matches_end_marker_with_pattern_consumed ... ok [INFO] [stdout] test robots::tests::test_path_matches_exact ... ok [INFO] [stdout] test config::tests::test_yaml_with_yml_extension ... ok [INFO] [stdout] test config::tests::test_unsupported_format ... ok [INFO] [stdout] test robots::tests::test_path_matches_pattern_consumed ... ok [INFO] [stdout] test robots::tests::test_path_matches_prefix ... ok [INFO] [stdout] test robots::tests::test_path_matches_wildcard_failure ... ok [INFO] [stdout] test robots::tests::test_path_matches_wildcard ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/scoutly-1dd46d1f8f8eae54) [INFO] [stdout] test robots::tests::test_is_allowed_no_rules ... ok [INFO] [stdout] test robots::tests::test_get_robots_url ... ok [INFO] [stdout] test robots::tests::test_is_allowed_with_specific_user_agent ... ok [INFO] [stdout] test robots::tests::test_get_domain_key ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/cli_test.rs (/opt/rustwide/target/debug/deps/cli_test-518415af6a18828f) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_cli_help ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/config_test.rs (/opt/rustwide/target/debug/deps/config_test-0aecc64c716c70db) [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test test_cli_args_override_config ... ok [INFO] [stdout] test test_cli_with_toml_config ... ok [INFO] [stdout] test test_cli_with_invalid_json_config ... ok [INFO] [stdout] test test_cli_with_nonexistent_config ... ok [INFO] [stdout] test test_cli_with_invalid_yaml_config ... ok [INFO] [stdout] test test_config_with_all_fields ... ok [INFO] [stdout] test test_empty_config ... ok [INFO] [stdout] test test_partial_config_with_defaults ... ok [INFO] [stdout] test test_cli_with_yaml_config ... ok [INFO] [stdout] test test_cli_with_invalid_config_format ... ok [INFO] [stdout] test test_toml_with_all_fields ... ok [INFO] [stdout] test test_yaml_with_all_fields ... ok [INFO] [stdout] test test_cli_with_yml_config ... ok [INFO] [stdout] test test_cli_with_invalid_toml_config ... ok [INFO] [stderr] Running tests/crawler_test.rs (/opt/rustwide/target/debug/deps/crawler_test-99979b932b725f6e) [INFO] [stdout] test test_cli_with_json_config ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_robots_txt_fetch_failure_warning ... ok [INFO] [stdout] test test_content_type_validation ... ok [INFO] [stdout] test test_crawler ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.55s [INFO] [stdout] [INFO] [stderr] Running tests/link_checker_test.rs (/opt/rustwide/target/debug/deps/link_checker_test-2d7063f5b0ffd52f) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_link_checker_default ... ok [INFO] [stdout] test test_link_checker ... ok [INFO] [stderr] Running tests/main_test.rs (/opt/rustwide/target/debug/deps/main_test-6f8135b4237a5a41) [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.89s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test test_crawl_with_default_text_output ... ok [INFO] [stdout] test test_config_merge_with_cli ... ok [INFO] [stdout] test test_crawl_with_config_file_verbose ... ok [INFO] [stdout] test test_crawl_with_external_flag ... ok [INFO] [stdout] test test_crawl_with_custom_depth_and_max_pages ... ok [INFO] [stdout] test test_crawl_with_ignore_redirects_flag ... ok [INFO] [stdout] test test_crawl_with_keep_fragments_flag ... ok [INFO] [stdout] test test_crawl_with_verbose_and_json_output ... ok [INFO] [stdout] test test_crawl_with_verbose_flag ... ok [INFO] [stdout] test test_full_crawl_with_json_output ... ok [INFO] [stdout] test test_full_crawl_with_text_output ... ok [INFO] [stdout] test test_load_default_config_with_verbose ... ok [INFO] [stdout] test test_crawl_with_all_flags_combined ... FAILED [INFO] [stdout] test test_valid_https_url ... ok [INFO] [stdout] test test_crawl_with_save_and_json_output ... FAILED [INFO] [stdout] test test_invalid_url_missing_https ... ok [INFO] [stdout] test test_invalid_url_no_protocol ... ok [INFO] [stdout] test test_crawl_with_save_file ... FAILED [INFO] [stdout] test test_valid_http_url ... ok [INFO] [stdout] test test_binary_with_valid_url ... ok [INFO] [stdout] test test_binary_with_invalid_url ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- test_crawl_with_all_flags_combined stdout ---- [INFO] [stdout] Scoutly - Website Crawler & SEO Analyzer [INFO] [stdout] ================================================== [INFO] [stdout] [INFO] [stdout] Starting crawl: http://127.0.0.1:45925 [INFO] [stdout] Max depth: 2 [INFO] [stdout] Max pages: 8 [INFO] [stdout] [INFO] [stdout] Crawling pages... [INFO] [stdout] Success: 8 unique pages crawled, 23 unique links detected [INFO] [stdout] Crawled pages: { [INFO] [stdout] "http://127.0.0.1:45925/missing-image-alt.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-meta-desc.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: None, [INFO] [stdout] meta_description: None, [INFO] [stdout] h1_tags: [], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/missing-h1.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-h1.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: None, [INFO] [stdout] meta_description: None, [INFO] [stdout] h1_tags: [], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/missing-meta-desc.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/meta-desc-too-long.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: None, [INFO] [stdout] meta_description: Some( [INFO] [stdout] "This is a long meta description that exceeds the recommended length of 160 characters. It should trigger a warning in the SEO analysis. Long long long long long meta description.", [INFO] [stdout] ), [INFO] [stdout] h1_tags: [ [INFO] [stdout] "This page has a critical SEO issue.", [INFO] [stdout] ], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/meta-desc-too-long.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/meta-desc-too-short.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: None, [INFO] [stdout] meta_description: Some( [INFO] [stdout] "Short description.", [INFO] [stdout] ), [INFO] [stdout] h1_tags: [ [INFO] [stdout] "This page has a critical SEO issue.", [INFO] [stdout] ], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: Some( [INFO] [stdout] "Test Home Page", [INFO] [stdout] ), [INFO] [stdout] meta_description: Some( [INFO] [stdout] "This is the main page for testing.", [INFO] [stdout] ), [INFO] [stdout] h1_tags: [ [INFO] [stdout] "Welcome to the Test Site", [INFO] [stdout] ], [INFO] [stdout] links: [ [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/meta-desc-too-long.html", [INFO] [stdout] text: "Page With Long Meta Description", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/meta-desc-too-short.html", [INFO] [stdout] text: "Page With Short Meta Description", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-image-alt.html", [INFO] [stdout] text: "Page With Missing Image Alt", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-meta-desc.html", [INFO] [stdout] text: "Page With Missing Meta Description", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-title.html", [INFO] [stdout] text: "Page With Missing Title", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/title-too-long.html", [INFO] [stdout] text: "Page With Long Title", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/title-too-short.html", [INFO] [stdout] text: "Page With Short Title", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/non-existent-page.html", [INFO] [stdout] text: "Broken Link", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-h1.html", [INFO] [stdout] text: "Page With Missing H1", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/multiple-h1.html", [INFO] [stdout] text: "Page With Multiple H1s", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/thin-content.html", [INFO] [stdout] text: "Thin Content Page", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-working.html", [INFO] [stdout] text: "Working Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-broken.html", [INFO] [stdout] text: "Broken Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-redirect.html", [INFO] [stdout] text: "Redirect Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-mixed.html", [INFO] [stdout] text: "Mixed Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-fragments.html", [INFO] [stdout] text: "Fragment Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-duplicate.html", [INFO] [stdout] text: "Duplicate Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/links-unreachable.html", [INFO] [stdout] text: "Unreachable Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/crawler-fragments.html", [INFO] [stdout] text: "Crawler Fragment Links Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/crawler-iframe.html", [INFO] [stdout] text: "Crawler IFrame Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/crawler-media.html", [INFO] [stdout] text: "Crawler Media Elements Test", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/og-complete.html", [INFO] [stdout] text: "Page With Complete Open Graph Tags", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] Link { [INFO] [stdout] url: "http://127.0.0.1:45925/og-missing.html", [INFO] [stdout] text: "Page With Missing Open Graph Tags", [INFO] [stdout] is_external: false, [INFO] [stdout] status_code: None, [INFO] [stdout] redirected_url: None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 0, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/meta-desc-too-short.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/missing-image-alt.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: None, [INFO] [stdout] meta_description: None, [INFO] [stdout] h1_tags: [], [INFO] [stdout] links: [], [INFO] [stdout] images: [ [INFO] [stdout] Image { [INFO] [stdout] src: "http://127.0.0.1:45925/image1.jpg", [INFO] [stdout] alt: Some( [INFO] [stdout] "Test image", [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] Image { [INFO] [stdout] src: "http://127.0.0.1:45925/image2.jpg", [INFO] [stdout] alt: None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/title-too-long.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/title-too-short.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: Some( [INFO] [stdout] "Short Title", [INFO] [stdout] ), [INFO] [stdout] meta_description: None, [INFO] [stdout] h1_tags: [], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/title-too-short.html": PageInfo { [INFO] [stdout] url: "http://127.0.0.1:45925/title-too-long.html", [INFO] [stdout] status_code: Some( [INFO] [stdout] 200, [INFO] [stdout] ), [INFO] [stdout] content_type: Some( [INFO] [stdout] "text/html; charset=utf-8", [INFO] [stdout] ), [INFO] [stdout] title: Some( [INFO] [stdout] "Title is too long long long long long long long long long long long long\n long long long long long long long.", [INFO] [stdout] ), [INFO] [stdout] meta_description: None, [INFO] [stdout] h1_tags: [], [INFO] [stdout] links: [], [INFO] [stdout] images: [], [INFO] [stdout] open_graph: OpenGraphTags { [INFO] [stdout] og_title: None, [INFO] [stdout] og_description: None, [INFO] [stdout] og_image: None, [INFO] [stdout] og_url: None, [INFO] [stdout] og_type: None, [INFO] [stdout] og_site_name: None, [INFO] [stdout] og_locale: None, [INFO] [stdout] }, [INFO] [stdout] issues: [], [INFO] [stdout] crawl_depth: 1, [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] Checking links... [INFO] [stdout] Links checked [INFO] [stdout] [INFO] [stdout] Analyzing SEO... [INFO] [stdout] SEO analysis complete [INFO] [stdout] [INFO] [stdout] { [INFO] [stdout] "start_url": "http://127.0.0.1:45925", [INFO] [stdout] "pages": { [INFO] [stdout] "http://127.0.0.1:45925/missing-image-alt.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-meta-desc.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/missing-h1.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-h1.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/missing-meta-desc.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/meta-desc-too-long.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": "This is a long meta description that exceeds the recommended length of 160 characters. It should trigger a warning in the SEO analysis. Long long long long long meta description.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "This page has a critical SEO issue." [INFO] [stdout] ], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooLong", [INFO] [stdout] "message": "Meta description is too long (178 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/meta-desc-too-long.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/meta-desc-too-short.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": "Short description.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "This page has a critical SEO issue." [INFO] [stdout] ], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooShort", [INFO] [stdout] "message": "Meta description is too short (18 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925": { [INFO] [stdout] "url": "http://127.0.0.1:45925", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": "Test Home Page", [INFO] [stdout] "meta_description": "This is the main page for testing.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "Welcome to the Test Site" [INFO] [stdout] ], [INFO] [stdout] "links": [ [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/meta-desc-too-long.html", [INFO] [stdout] "text": "Page With Long Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/meta-desc-too-short.html", [INFO] [stdout] "text": "Page With Short Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-image-alt.html", [INFO] [stdout] "text": "Page With Missing Image Alt", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-meta-desc.html", [INFO] [stdout] "text": "Page With Missing Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-title.html", [INFO] [stdout] "text": "Page With Missing Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/title-too-long.html", [INFO] [stdout] "text": "Page With Long Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/title-too-short.html", [INFO] [stdout] "text": "Page With Short Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/non-existent-page.html", [INFO] [stdout] "text": "Broken Link", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 404, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-h1.html", [INFO] [stdout] "text": "Page With Missing H1", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/multiple-h1.html", [INFO] [stdout] "text": "Page With Multiple H1s", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/thin-content.html", [INFO] [stdout] "text": "Thin Content Page", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-working.html", [INFO] [stdout] "text": "Working Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-broken.html", [INFO] [stdout] "text": "Broken Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-redirect.html", [INFO] [stdout] "text": "Redirect Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-mixed.html", [INFO] [stdout] "text": "Mixed Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-fragments.html", [INFO] [stdout] "text": "Fragment Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-duplicate.html", [INFO] [stdout] "text": "Duplicate Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/links-unreachable.html", [INFO] [stdout] "text": "Unreachable Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/crawler-fragments.html", [INFO] [stdout] "text": "Crawler Fragment Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/crawler-iframe.html", [INFO] [stdout] "text": "Crawler IFrame Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/crawler-media.html", [INFO] [stdout] "text": "Crawler Media Elements Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/og-complete.html", [INFO] [stdout] "text": "Page With Complete Open Graph Tags", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:45925/og-missing.html", [INFO] [stdout] "text": "Page With Missing Open Graph Tags", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "BrokenLink", [INFO] [stdout] "message": "Broken link: http://127.0.0.1:45925/non-existent-page.html (HTTP 404)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "TitleTooShort", [INFO] [stdout] "message": "Title is too short (14 chars, recommended: 50-60)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooShort", [INFO] [stdout] "message": "Meta description is too short (34 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 0 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/meta-desc-too-short.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/missing-image-alt.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [ [INFO] [stdout] { [INFO] [stdout] "src": "http://127.0.0.1:45925/image1.jpg", [INFO] [stdout] "alt": "Test image" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "src": "http://127.0.0.1:45925/image2.jpg", [INFO] [stdout] "alt": null [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingImageAlt", [INFO] [stdout] "message": "1 image(s) missing alt text" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/title-too-long.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/title-too-short.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": "Short Title", [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "TitleTooShort", [INFO] [stdout] "message": "Title is too short (11 chars, recommended: 50-60)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:45925/title-too-short.html": { [INFO] [stdout] "url": "http://127.0.0.1:45925/title-too-long.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": "Title is too long long long long long long long long long long long long\n long long long long long long long.", [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "TitleTooLong", [INFO] [stdout] "message": "Title is too long (114 chars, recommended: 50-60)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] "summary": { [INFO] [stdout] "total_pages": 8, [INFO] [stdout] "total_links": 23, [INFO] [stdout] "broken_links": 1, [INFO] [stdout] "errors": 11, [INFO] [stdout] "warnings": 19, [INFO] [stdout] "infos": 40 [INFO] [stdout] }, [INFO] [stdout] "timestamp": "2026-03-30T22:31:21.575274566+00:00" [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] thread 'test_crawl_with_all_flags_combined' (316) panicked at tests/main_test.rs:373:5: [INFO] [stdout] Should successfully crawl with all flags enabled [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x62c23e7a5bfa - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x62c23e7a5bfa - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x62c23e7bf4ba - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x62c23e7bf4ba - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x62c23e7ab6c2 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x62c23e7ab6c2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x62c23e78122f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x62c23e78122f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x62c23e79ca49 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x62c23d95ef2c - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x62c23d95ef2c - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x62c23e79ccc2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x62c23e79ccc2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x62c23e78131a - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x62c23e7782f9 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x62c23e7822ad - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x62c23e7bfd2c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x62c23d89e4ae - main_test[df47be64169c030d]::test_crawl_with_all_flags_combined::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:373:5 [INFO] [stdout] 20: 0x62c23d8c45a2 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 21: 0x62c23d8c461d - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x62c23d8c092d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:70 [INFO] [stdout] 23: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 24: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 25: 0x62c23d8c082b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25 [INFO] [stdout] 26: 0x62c23d8b4330 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19 [INFO] [stdout] 27: 0x62c23d8bfaed - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:44 [INFO] [stdout] 28: 0x62c23d8bedd4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68 [INFO] [stdout] 29: 0x62c23d8aab2b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 30: 0x62c23d8c8789 - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38 [INFO] [stdout] 31: 0x62c23d884222 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 32: 0x62c23d883dae - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 33: 0x62c23d8c7e4d - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17 [INFO] [stdout] 34: 0x62c23d8b83a0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27 [INFO] [stdout] 35: 0x62c23d8b8696 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:24 [INFO] [stdout] 36: 0x62c23d8be8e0 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 37: 0x62c23d830b23 - tokio[d04db1fef5a35d8c]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 38: 0x62c23d8b3e61 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 39: 0x62c23d85c254 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:52 [INFO] [stdout] 40: 0x62c23d85c41f - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:18 [INFO] [stdout] 41: 0x62c23d8a4154 - main_test[df47be64169c030d]::test_crawl_with_all_flags_combined [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:383:43 [INFO] [stdout] 42: 0x62c23d899817 - main_test[df47be64169c030d]::test_crawl_with_all_flags_combined::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:349:46 [INFO] [stdout] 43: 0x62c23d880156 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 44: 0x62c23d95300b - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x62c23d95300b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 46: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 47: 0x62c23d95f9fb - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 48: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 49: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 50: 0x62c23d95f9fb - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 51: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 52: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 53: 0x62c23d95b114 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 54: 0x62c23d95b114 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 55: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 56: 0x62c23d962602 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 57: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 58: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 59: 0x62c23d962602 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 60: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 61: 0x62c23d962602 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 62: 0x62c23e7a4faf - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 63: 0x62c23e7a4faf - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 64: 0x730cc42a7aa4 - [INFO] [stdout] 65: 0x730cc4334a64 - clone [INFO] [stdout] 66: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_crawl_with_save_and_json_output stdout ---- [INFO] [stdout] Scoutly - Website Crawler & SEO Analyzer [INFO] [stdout] ================================================== [INFO] [stdout] [INFO] [stdout] Starting crawl: http://127.0.0.1:35439 [INFO] [stdout] Max depth: 1 [INFO] [stdout] Max pages: 5 [INFO] [stdout] [INFO] [stdout] Success: 5 unique pages crawled, 23 unique links detected [INFO] [stdout] [INFO] [stdout] { [INFO] [stdout] "start_url": "http://127.0.0.1:35439", [INFO] [stdout] "pages": { [INFO] [stdout] "http://127.0.0.1:35439/meta-desc-too-short.html": { [INFO] [stdout] "url": "http://127.0.0.1:35439/meta-desc-too-short.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": "Short description.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "This page has a critical SEO issue." [INFO] [stdout] ], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooShort", [INFO] [stdout] "message": "Meta description is too short (18 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:35439/title-too-long.html": { [INFO] [stdout] "url": "http://127.0.0.1:35439/title-too-long.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": "Title is too long long long long long long long long long long long long\n long long long long long long long.", [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "TitleTooLong", [INFO] [stdout] "message": "Title is too long (114 chars, recommended: 50-60)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:35439": { [INFO] [stdout] "url": "http://127.0.0.1:35439", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": "Test Home Page", [INFO] [stdout] "meta_description": "This is the main page for testing.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "Welcome to the Test Site" [INFO] [stdout] ], [INFO] [stdout] "links": [ [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/meta-desc-too-long.html", [INFO] [stdout] "text": "Page With Long Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/meta-desc-too-short.html", [INFO] [stdout] "text": "Page With Short Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/missing-image-alt.html", [INFO] [stdout] "text": "Page With Missing Image Alt", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/missing-meta-desc.html", [INFO] [stdout] "text": "Page With Missing Meta Description", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/missing-title.html", [INFO] [stdout] "text": "Page With Missing Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/title-too-long.html", [INFO] [stdout] "text": "Page With Long Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/title-too-short.html", [INFO] [stdout] "text": "Page With Short Title", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/non-existent-page.html", [INFO] [stdout] "text": "Broken Link", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 404, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/missing-h1.html", [INFO] [stdout] "text": "Page With Missing H1", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/multiple-h1.html", [INFO] [stdout] "text": "Page With Multiple H1s", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/thin-content.html", [INFO] [stdout] "text": "Thin Content Page", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-working.html", [INFO] [stdout] "text": "Working Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-broken.html", [INFO] [stdout] "text": "Broken Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-redirect.html", [INFO] [stdout] "text": "Redirect Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-mixed.html", [INFO] [stdout] "text": "Mixed Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-fragments.html", [INFO] [stdout] "text": "Fragment Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-duplicate.html", [INFO] [stdout] "text": "Duplicate Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/links-unreachable.html", [INFO] [stdout] "text": "Unreachable Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/crawler-fragments.html", [INFO] [stdout] "text": "Crawler Fragment Links Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/crawler-iframe.html", [INFO] [stdout] "text": "Crawler IFrame Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/crawler-media.html", [INFO] [stdout] "text": "Crawler Media Elements Test", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/og-complete.html", [INFO] [stdout] "text": "Page With Complete Open Graph Tags", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "url": "http://127.0.0.1:35439/og-missing.html", [INFO] [stdout] "text": "Page With Missing Open Graph Tags", [INFO] [stdout] "is_external": false, [INFO] [stdout] "status_code": 200, [INFO] [stdout] "redirected_url": null [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "BrokenLink", [INFO] [stdout] "message": "Broken link: http://127.0.0.1:35439/non-existent-page.html (HTTP 404)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "TitleTooShort", [INFO] [stdout] "message": "Title is too short (14 chars, recommended: 50-60)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooShort", [INFO] [stdout] "message": "Meta description is too short (34 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 0 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:35439/meta-desc-too-long.html": { [INFO] [stdout] "url": "http://127.0.0.1:35439/meta-desc-too-long.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": "This is a long meta description that exceeds the recommended length of 160 characters. It should trigger a warning in the SEO analysis. Long long long long long meta description.", [INFO] [stdout] "h1_tags": [ [INFO] [stdout] "This page has a critical SEO issue." [INFO] [stdout] ], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MetaDescriptionTooLong", [INFO] [stdout] "message": "Meta description is too long (178 chars, recommended: 150-160)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] }, [INFO] [stdout] "http://127.0.0.1:35439/missing-meta-desc.html": { [INFO] [stdout] "url": "http://127.0.0.1:35439/missing-meta-desc.html", [INFO] [stdout] "status_code": 200, [INFO] [stdout] "content_type": "text/html; charset=utf-8", [INFO] [stdout] "title": null, [INFO] [stdout] "meta_description": null, [INFO] [stdout] "h1_tags": [], [INFO] [stdout] "links": [], [INFO] [stdout] "images": [], [INFO] [stdout] "open_graph": { [INFO] [stdout] "og_title": null, [INFO] [stdout] "og_description": null, [INFO] [stdout] "og_image": null, [INFO] [stdout] "og_url": null, [INFO] [stdout] "og_type": null, [INFO] [stdout] "og_site_name": null, [INFO] [stdout] "og_locale": null [INFO] [stdout] }, [INFO] [stdout] "issues": [ [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingTitle", [INFO] [stdout] "message": "Page is missing a title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Error", [INFO] [stdout] "issue_type": "MissingMetaDescription", [INFO] [stdout] "message": "Page is missing a meta description" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "MissingH1", [INFO] [stdout] "message": "Page is missing an H1 tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Warning", [INFO] [stdout] "issue_type": "ThinContent", [INFO] [stdout] "message": "Page may have thin content (few elements found)" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgTitle", [INFO] [stdout] "message": "Page is missing og:title tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgDescription", [INFO] [stdout] "message": "Page is missing og:description tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgImage", [INFO] [stdout] "message": "Page is missing og:image tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgUrl", [INFO] [stdout] "message": "Page is missing og:url tag" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "severity": "Info", [INFO] [stdout] "issue_type": "MissingOgType", [INFO] [stdout] "message": "Page is missing og:type tag" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "crawl_depth": 1 [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] "summary": { [INFO] [stdout] "total_pages": 5, [INFO] [stdout] "total_links": 23, [INFO] [stdout] "broken_links": 1, [INFO] [stdout] "errors": 6, [INFO] [stdout] "warnings": 11, [INFO] [stdout] "infos": 25 [INFO] [stdout] }, [INFO] [stdout] "timestamp": "2026-03-30T22:31:21.772855644+00:00" [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] thread 'test_crawl_with_save_and_json_output' (458) panicked at tests/main_test.rs:439:5: [INFO] [stdout] Should successfully crawl with both JSON output and file save [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x62c23e7a5bfa - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x62c23e7a5bfa - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x62c23e7bf4ba - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x62c23e7bf4ba - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x62c23e7ab6c2 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x62c23e7ab6c2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x62c23e78122f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x62c23e78122f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x62c23e79ca49 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x62c23d95ef2c - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x62c23d95ef2c - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x62c23e79ccc2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x62c23e79ccc2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x62c23e78131a - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x62c23e7782f9 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x62c23e7822ad - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x62c23e7bfd2c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x62c23d8a0610 - main_test[df47be64169c030d]::test_crawl_with_save_and_json_output::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:439:5 [INFO] [stdout] 20: 0x62c23d8c45a2 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 21: 0x62c23d8c461d - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x62c23d8c092d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:70 [INFO] [stdout] 23: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 24: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 25: 0x62c23d8c082b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25 [INFO] [stdout] 26: 0x62c23d8b4330 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19 [INFO] [stdout] 27: 0x62c23d8bfaed - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:44 [INFO] [stdout] 28: 0x62c23d8bedd4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68 [INFO] [stdout] 29: 0x62c23d8aab2b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 30: 0x62c23d8c8789 - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38 [INFO] [stdout] 31: 0x62c23d884222 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 32: 0x62c23d883dae - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 33: 0x62c23d8c7e4d - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17 [INFO] [stdout] 34: 0x62c23d8b83a0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27 [INFO] [stdout] 35: 0x62c23d8b8696 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:24 [INFO] [stdout] 36: 0x62c23d8be8e0 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 37: 0x62c23d830b23 - tokio[d04db1fef5a35d8c]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 38: 0x62c23d8b3e61 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 39: 0x62c23d85c254 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:52 [INFO] [stdout] 40: 0x62c23d85c41f - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:18 [INFO] [stdout] 41: 0x62c23d8a4854 - main_test[df47be64169c030d]::test_crawl_with_save_and_json_output [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:452:43 [INFO] [stdout] 42: 0x62c23d8998d7 - main_test[df47be64169c030d]::test_crawl_with_save_and_json_output::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:415:48 [INFO] [stdout] 43: 0x62c23d880256 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 44: 0x62c23d95300b - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x62c23d95300b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 46: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 47: 0x62c23d95f9fb - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 48: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 49: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 50: 0x62c23d95f9fb - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 51: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 52: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 53: 0x62c23d95b114 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 54: 0x62c23d95b114 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 55: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 56: 0x62c23d962602 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 57: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 58: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 59: 0x62c23d962602 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 60: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 61: 0x62c23d962602 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 62: 0x62c23e7a4faf - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 63: 0x62c23e7a4faf - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 64: 0x730cc42a7aa4 - [INFO] [stdout] 65: 0x730cc4334a64 - clone [INFO] [stdout] 66: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_crawl_with_save_file stdout ---- [INFO] [stdout] Scoutly - Website Crawler & SEO Analyzer [INFO] [stdout] ================================================== [INFO] [stdout] [INFO] [stdout] Starting crawl: http://127.0.0.1:43159 [INFO] [stdout] Max depth: 1 [INFO] [stdout] Max pages: 5 [INFO] [stdout] [INFO] [stdout] Success: 5 unique pages crawled, 23 unique links detected [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] ================================================================================ [INFO] [stdout] Scoutly - Crawl Report [INFO] [stdout] ================================================================================ [INFO] [stdout] [INFO] [stdout] Start URL: http://127.0.0.1:43159 [INFO] [stdout] Timestamp: 2026-03-30T22:31:21.943369542+00:00 [INFO] [stdout] [INFO] [stdout] Summary [INFO] [stdout] Total Pages Crawled: 5 [INFO] [stdout] Total Links Found: 23 [INFO] [stdout] Broken Links: 1 [INFO] [stdout] Errors: 6 [INFO] [stdout] Warnings: 11 [INFO] [stdout] Info: 25 [INFO] [stdout] [INFO] [stdout] Pages with Issues [INFO] [stdout] [INFO] [stdout] URL: http://127.0.0.1:43159 [INFO] [stdout] Status: 200 [INFO] [stdout] Depth: 0 [INFO] [stdout] Title: Test Home Page [INFO] [stdout] Issues: [INFO] [stdout] [ERROR] Broken link: http://127.0.0.1:43159/non-existent-page.html (HTTP 404) [INFO] [stdout] [WARN ] Title is too short (14 chars, recommended: 50-60) [INFO] [stdout] [WARN ] Meta description is too short (34 chars, recommended: 150-160) [INFO] [stdout] [INFO ] Page is missing og:title tag [INFO] [stdout] [INFO ] Page is missing og:description tag [INFO] [stdout] [INFO ] Page is missing og:image tag [INFO] [stdout] [INFO ] Page is missing og:url tag [INFO] [stdout] [INFO ] Page is missing og:type tag [INFO] [stdout] [INFO] [stdout] URL: http://127.0.0.1:43159/meta-desc-too-short.html [INFO] [stdout] Status: 200 [INFO] [stdout] Depth: 1 [INFO] [stdout] Issues: [INFO] [stdout] [ERROR] Page is missing a title tag [INFO] [stdout] [WARN ] Meta description is too short (18 chars, recommended: 150-160) [INFO] [stdout] [WARN ] Page may have thin content (few elements found) [INFO] [stdout] [INFO ] Page is missing og:title tag [INFO] [stdout] [INFO ] Page is missing og:description tag [INFO] [stdout] [INFO ] Page is missing og:image tag [INFO] [stdout] [INFO ] Page is missing og:url tag [INFO] [stdout] [INFO ] Page is missing og:type tag [INFO] [stdout] [INFO] [stdout] URL: http://127.0.0.1:43159/meta-desc-too-long.html [INFO] [stdout] Status: 200 [INFO] [stdout] Depth: 1 [INFO] [stdout] Issues: [INFO] [stdout] [ERROR] Page is missing a title tag [INFO] [stdout] [WARN ] Meta description is too long (178 chars, recommended: 150-160) [INFO] [stdout] [WARN ] Page may have thin content (few elements found) [INFO] [stdout] [INFO ] Page is missing og:title tag [INFO] [stdout] [INFO ] Page is missing og:description tag [INFO] [stdout] [INFO ] Page is missing og:image tag [INFO] [stdout] [INFO ] Page is missing og:url tag [INFO] [stdout] [INFO ] Page is missing og:type tag [INFO] [stdout] [INFO] [stdout] URL: http://127.0.0.1:43159/missing-meta-desc.html [INFO] [stdout] Status: 200 [INFO] [stdout] Depth: 1 [INFO] [stdout] Issues: [INFO] [stdout] [ERROR] Page is missing a title tag [INFO] [stdout] [ERROR] Page is missing a meta description [INFO] [stdout] [WARN ] Page is missing an H1 tag [INFO] [stdout] [WARN ] Page may have thin content (few elements found) [INFO] [stdout] [INFO ] Page is missing og:title tag [INFO] [stdout] [INFO ] Page is missing og:description tag [INFO] [stdout] [INFO ] Page is missing og:image tag [INFO] [stdout] [INFO ] Page is missing og:url tag [INFO] [stdout] [INFO ] Page is missing og:type tag [INFO] [stdout] [INFO] [stdout] URL: http://127.0.0.1:43159/title-too-long.html [INFO] [stdout] Status: 200 [INFO] [stdout] Depth: 1 [INFO] [stdout] Title: Title is too long long long long long long long long long long long long [INFO] [stdout] long long long long long long long. [INFO] [stdout] Issues: [INFO] [stdout] [WARN ] Title is too long (114 chars, recommended: 50-60) [INFO] [stdout] [ERROR] Page is missing a meta description [INFO] [stdout] [WARN ] Page is missing an H1 tag [INFO] [stdout] [WARN ] Page may have thin content (few elements found) [INFO] [stdout] [INFO ] Page is missing og:title tag [INFO] [stdout] [INFO ] Page is missing og:description tag [INFO] [stdout] [INFO ] Page is missing og:image tag [INFO] [stdout] [INFO ] Page is missing og:url tag [INFO] [stdout] [INFO ] Page is missing og:type tag [INFO] [stdout] [INFO] [stdout] ================================================================================ [INFO] [stdout] [INFO] [stdout] thread 'test_crawl_with_save_file' (481) panicked at tests/main_test.rs:194:5: [INFO] [stdout] Should successfully crawl and save file [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x62c23e7a5bfa - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x62c23e7a5bfa - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x62c23e7a5bfa - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x62c23e7bf4ba - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x62c23e7bf4ba - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x62c23e7ab6c2 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x62c23e7ab6c2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x62c23e78122f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x62c23e78122f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x62c23e79ca49 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x62c23d95ef2c - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x62c23d95ef2c - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x62c23e79ccc2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x62c23e79ccc2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x62c23e78131a - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x62c23e7782f9 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x62c23e7822ad - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x62c23e7bfd2c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x62c23d89ac70 - main_test[df47be64169c030d]::test_crawl_with_save_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:194:5 [INFO] [stdout] 20: 0x62c23d8c45a2 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 21: 0x62c23d8c461d - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x62c23d8c092d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:70 [INFO] [stdout] 23: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 24: 0x62c23d8c082b - tokio[d04db1fef5a35d8c]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 25: 0x62c23d8c082b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25 [INFO] [stdout] 26: 0x62c23d8b4330 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19 [INFO] [stdout] 27: 0x62c23d8bfaed - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:44 [INFO] [stdout] 28: 0x62c23d8bedd4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68 [INFO] [stdout] 29: 0x62c23d8aab2b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 30: 0x62c23d8c8789 - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38 [INFO] [stdout] 31: 0x62c23d884222 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 32: 0x62c23d883dae - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 33: 0x62c23d8c7e4d - tokio[d04db1fef5a35d8c]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17 [INFO] [stdout] 34: 0x62c23d8b83a0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27 [INFO] [stdout] 35: 0x62c23d8b8696 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:24 [INFO] [stdout] 36: 0x62c23d8be8e0 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 37: 0x62c23d830b23 - tokio[d04db1fef5a35d8c]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 38: 0x62c23d8b3e61 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 39: 0x62c23d85c254 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:52 [INFO] [stdout] 40: 0x62c23d85c41f - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:18 [INFO] [stdout] 41: 0x62c23d8a2dd4 - main_test[df47be64169c030d]::test_crawl_with_save_file [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:205:43 [INFO] [stdout] 42: 0x62c23d899637 - main_test[df47be64169c030d]::test_crawl_with_save_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/main_test.rs:170:37 [INFO] [stdout] 43: 0x62c23d87fed6 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 44: 0x62c23d95300b - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x62c23d95300b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 46: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 47: 0x62c23d95f9fb - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 48: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 49: 0x62c23d95f9fb - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 50: 0x62c23d95f9fb - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 51: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 52: 0x62c23d95f9fb - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 53: 0x62c23d95b114 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 54: 0x62c23d95b114 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 55: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 56: 0x62c23d962602 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 57: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 58: 0x62c23d962602 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 59: 0x62c23d962602 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 60: 0x62c23d962602 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 61: 0x62c23d962602 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 62: 0x62c23e7a4faf - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 63: 0x62c23e7a4faf - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 64: 0x730cc42a7aa4 - [INFO] [stdout] 65: 0x730cc4334a64 - clone [INFO] [stdout] 66: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] test_crawl_with_all_flags_combined [INFO] [stdout] test_crawl_with_save_and_json_output [INFO] [stdout] test_crawl_with_save_file [INFO] [stdout] [INFO] [stdout] test result: FAILED. 18 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 25.25s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test main_test` [INFO] running `Command { std: "docker" "inspect" "7d1dddce4a74a58c1bb276af0d5f78aa0343f1cb345cd6ff08a7087bf1aee994", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d1dddce4a74a58c1bb276af0d5f78aa0343f1cb345cd6ff08a7087bf1aee994", kill_on_drop: false }` [INFO] [stdout] 7d1dddce4a74a58c1bb276af0d5f78aa0343f1cb345cd6ff08a7087bf1aee994