>>> anubis: Building community/anubis 1.28.2-r0 (using abuild 3.18.0_rc7-r1) started Thu, 05 Nov 2026 03:06:31 +0000 >>> anubis: Validating /home/buildozer/aports/community/anubis/APKBUILD... >>> anubis: Analyzing dependencies... >>> anubis: Installing for build: build-base go (1/2) Installing go (1.27.3-r0) (2/2) Installing .makedepends-anubis (20261105.030632) Executing busybox-1.38.0-r8.trigger OK: 627.5 MiB in 107 packages >>> anubis: Cleaning up srcdir >>> anubis: Cleaning up pkgdir >>> anubis: Cleaning up tmpdir >>> anubis: Fetching https://distfiles.alpinelinux.org/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz Connecting to distfiles.alpinelinux.org (172.105.82.32:443) wget: server returned error: HTTP/1.1 404 Not Found >>> anubis: Fetching https://github.com/TecharoHQ/anubis/releases/download/v1.28.2/anubis-src-vendor-npm-1.28.2.tar.gz Connecting to github.com (140.82.121.3:443) Connecting to release-assets.githubusercontent.com (185.199.110.133:443) saving to '/var/cache/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz.part' anubis-src-vendor-np 7% |** | 1823k 0:00:13 ETA anubis-src-vendor-np 100% |********************************| 25.2M 0:00:00 ETA '/var/cache/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz.part' saved /var/cache/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz: OK /home/buildozer/aports/community/anubis/anubis.initd: OK /home/buildozer/aports/community/anubis/anubis.confd: OK >>> anubis: Fetching https://distfiles.alpinelinux.org/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz /var/cache/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz: OK /home/buildozer/aports/community/anubis/anubis.initd: OK /home/buildozer/aports/community/anubis/anubis.confd: OK >>> anubis: Unpacking /var/cache/distfiles/v3.25/anubis-src-vendor-npm-1.28.2.tar.gz... ? github.com/TecharoHQ/anubis [no test files] === RUN TestMakeReverseProxy === RUN TestMakeReverseProxy/default_preserves_inbound_host === RUN TestMakeReverseProxy/semicolon-delimited_query_is_preserved === RUN TestMakeReverseProxy/target_host_override === RUN TestMakeReverseProxy/forwarding_headers_are_passed_through --- PASS: TestMakeReverseProxy (0.00s) --- PASS: TestMakeReverseProxy/default_preserves_inbound_host (0.00s) --- PASS: TestMakeReverseProxy/semicolon-delimited_query_is_preserved (0.00s) --- PASS: TestMakeReverseProxy/target_host_override (0.00s) --- PASS: TestMakeReverseProxy/forwarding_headers_are_passed_through (0.00s) === RUN TestAutomaticSNI 2026/11/05 03:06:59 WARN TARGET_INSECURE_SKIP_VERIFY is set to true, TLS certificate validation will not be performed target=https://127.0.0.1:38617 --- PASS: TestAutomaticSNI (0.01s) PASS ok github.com/TecharoHQ/anubis/cmd/anubis 0.028s ? github.com/TecharoHQ/anubis/cmd/containerbuild [no test files] === RUN TestDataFileConversion === RUN TestDataFileConversion/simple_default === RUN TestDataFileConversion/simple_json === RUN TestDataFileConversion/simple_deny_action === RUN TestDataFileConversion/simple_custom_name === RUN TestDataFileConversion/blacklist_with_crawl_delay === RUN TestDataFileConversion/wildcards === RUN TestDataFileConversion/empty_file === RUN TestDataFileConversion/complex_scenario === RUN TestDataFileConversion/consecutive_user_agents --- PASS: TestDataFileConversion (0.00s) --- PASS: TestDataFileConversion/simple_default (0.00s) --- PASS: TestDataFileConversion/simple_json (0.00s) --- PASS: TestDataFileConversion/simple_deny_action (0.00s) --- PASS: TestDataFileConversion/simple_custom_name (0.00s) --- PASS: TestDataFileConversion/blacklist_with_crawl_delay (0.00s) --- PASS: TestDataFileConversion/wildcards (0.00s) --- PASS: TestDataFileConversion/empty_file (0.00s) --- PASS: TestDataFileConversion/complex_scenario (0.00s) --- PASS: TestDataFileConversion/consecutive_user_agents (0.00s) === RUN TestCaseInsensitiveParsing --- PASS: TestCaseInsensitiveParsing (0.00s) === RUN TestVariousOutputFormats --- PASS: TestVariousOutputFormats (0.00s) === RUN TestDifferentActions === RUN TestDifferentActions/action_ALLOW === RUN TestDifferentActions/action_DENY === RUN TestDifferentActions/action_CHALLENGE === RUN TestDifferentActions/action_WEIGH --- PASS: TestDifferentActions (0.00s) --- PASS: TestDifferentActions/action_ALLOW (0.00s) --- PASS: TestDifferentActions/action_DENY (0.00s) --- PASS: TestDifferentActions/action_CHALLENGE (0.00s) --- PASS: TestDifferentActions/action_WEIGH (0.00s) === RUN TestPolicyNaming === RUN TestPolicyNaming/name_custom-policy === RUN TestPolicyNaming/name_my-rules === RUN TestPolicyNaming/name_site-protection --- PASS: TestPolicyNaming (0.00s) --- PASS: TestPolicyNaming/name_custom-policy (0.00s) --- PASS: TestPolicyNaming/name_my-rules (0.00s) --- PASS: TestPolicyNaming/name_site-protection (0.00s) === RUN TestCrawlDelayWeights === RUN TestCrawlDelayWeights/weight_1 === RUN TestCrawlDelayWeights/weight_5 === RUN TestCrawlDelayWeights/weight_10 === RUN TestCrawlDelayWeights/weight_25 --- PASS: TestCrawlDelayWeights (0.00s) --- PASS: TestCrawlDelayWeights/weight_1 (0.00s) --- PASS: TestCrawlDelayWeights/weight_5 (0.00s) --- PASS: TestCrawlDelayWeights/weight_10 (0.00s) --- PASS: TestCrawlDelayWeights/weight_25 (0.00s) === RUN TestBlacklistActions === RUN TestBlacklistActions/blacklist_DENY === RUN TestBlacklistActions/blacklist_CHALLENGE --- PASS: TestBlacklistActions (0.00s) --- PASS: TestBlacklistActions/blacklist_DENY (0.00s) --- PASS: TestBlacklistActions/blacklist_CHALLENGE (0.00s) PASS ok github.com/TecharoHQ/anubis/cmd/robots2policy 0.014s ? github.com/TecharoHQ/anubis/cmd/robots2policy/batch [no test files] === RUN TestBotPoliciesEmbed embed_test.go:23: Found 62 YAML files to verify === RUN TestBotPoliciesEmbed/apps/allow-api-routes.yaml === RUN TestBotPoliciesEmbed/verify-yaml/apps/allow-api-routes.yaml === RUN TestBotPoliciesEmbed/apps/bookstack-saml.yaml === RUN TestBotPoliciesEmbed/verify-yaml/apps/bookstack-saml.yaml === RUN TestBotPoliciesEmbed/apps/gitea-rss-feeds.yaml === RUN TestBotPoliciesEmbed/verify-yaml/apps/gitea-rss-feeds.yaml === RUN TestBotPoliciesEmbed/bots/_deny-pathological.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/_deny-pathological.yaml === RUN TestBotPoliciesEmbed/bots/aggressive-brazilian-scrapers.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/aggressive-brazilian-scrapers.yaml === RUN TestBotPoliciesEmbed/bots/ai-catchall.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/ai-catchall.yaml === RUN TestBotPoliciesEmbed/bots/ai-robots-txt.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/ai-robots-txt.yaml === RUN TestBotPoliciesEmbed/bots/cloudflare-kitesurf.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/cloudflare-kitesurf.yaml === RUN TestBotPoliciesEmbed/bots/cloudflare-workers.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/cloudflare-workers.yaml === RUN TestBotPoliciesEmbed/bots/custom-async-http-client.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/custom-async-http-client.yaml === RUN TestBotPoliciesEmbed/bots/headless-browsers.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/headless-browsers.yaml === RUN TestBotPoliciesEmbed/bots/lyrenth.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/lyrenth.yaml === RUN TestBotPoliciesEmbed/bots/spec-violations.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/spec-violations.yaml === RUN TestBotPoliciesEmbed/bots/us-ai-scraper.yaml === RUN TestBotPoliciesEmbed/verify-yaml/bots/us-ai-scraper.yaml === RUN TestBotPoliciesEmbed/clients/ai.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/ai.yaml === RUN TestBotPoliciesEmbed/clients/docker-client.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/docker-client.yaml === RUN TestBotPoliciesEmbed/clients/git.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/git.yaml === RUN TestBotPoliciesEmbed/clients/go-get.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/go-get.yaml === RUN TestBotPoliciesEmbed/clients/google-user-triggered-fetchers.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/google-user-triggered-fetchers.yaml === RUN TestBotPoliciesEmbed/clients/mistral-mistralai-user.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/mistral-mistralai-user.yaml === RUN TestBotPoliciesEmbed/clients/openai-chatgpt-user.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/openai-chatgpt-user.yaml === RUN TestBotPoliciesEmbed/clients/perplexity-user.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/perplexity-user.yaml === RUN TestBotPoliciesEmbed/clients/telegram-preview.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/telegram-preview.yaml === RUN TestBotPoliciesEmbed/clients/vk-preview.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/vk-preview.yaml === RUN TestBotPoliciesEmbed/clients/x-firefox-ai.yaml === RUN TestBotPoliciesEmbed/verify-yaml/clients/x-firefox-ai.yaml === RUN TestBotPoliciesEmbed/common/acts-like-browser.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/acts-like-browser.yaml === RUN TestBotPoliciesEmbed/common/allow-api-like.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/allow-api-like.yaml === RUN TestBotPoliciesEmbed/common/allow-private-addresses.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/allow-private-addresses.yaml === RUN TestBotPoliciesEmbed/common/domain-fronting.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/domain-fronting.yaml === RUN TestBotPoliciesEmbed/common/json-api.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/json-api.yaml === RUN TestBotPoliciesEmbed/common/keep-internet-working.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/keep-internet-working.yaml === RUN TestBotPoliciesEmbed/common/rfc-violations.yaml === RUN TestBotPoliciesEmbed/verify-yaml/common/rfc-violations.yaml === RUN TestBotPoliciesEmbed/crawlers/_allow-good.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/_allow-good.yaml === RUN TestBotPoliciesEmbed/crawlers/ai-search.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/ai-search.yaml === RUN TestBotPoliciesEmbed/crawlers/ai-training.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/ai-training.yaml === RUN TestBotPoliciesEmbed/crawlers/alibaba-cloud.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/alibaba-cloud.yaml === RUN TestBotPoliciesEmbed/crawlers/applebot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/applebot.yaml === RUN TestBotPoliciesEmbed/crawlers/arquivo-pt.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/arquivo-pt.yaml === RUN TestBotPoliciesEmbed/crawlers/bingbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/bingbot.yaml === RUN TestBotPoliciesEmbed/crawlers/commoncrawl.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/commoncrawl.yaml === RUN TestBotPoliciesEmbed/crawlers/duckduckbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/duckduckbot.yaml === RUN TestBotPoliciesEmbed/crawlers/googlebot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/googlebot.yaml === RUN TestBotPoliciesEmbed/crawlers/huawei-cloud.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/huawei-cloud.yaml === RUN TestBotPoliciesEmbed/crawlers/internet-archive.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/internet-archive.yaml === RUN TestBotPoliciesEmbed/crawlers/kagibot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/kagibot.yaml === RUN TestBotPoliciesEmbed/crawlers/marginalia.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/marginalia.yaml === RUN TestBotPoliciesEmbed/crawlers/mojeekbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/mojeekbot.yaml === RUN TestBotPoliciesEmbed/crawlers/openai-gptbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/openai-gptbot.yaml === RUN TestBotPoliciesEmbed/crawlers/openai-searchbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/openai-searchbot.yaml === RUN TestBotPoliciesEmbed/crawlers/perplexitybot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/perplexitybot.yaml === RUN TestBotPoliciesEmbed/crawlers/qwantbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/qwantbot.yaml === RUN TestBotPoliciesEmbed/crawlers/tencent-cloud.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/tencent-cloud.yaml === RUN TestBotPoliciesEmbed/crawlers/wikimedia-citoid.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/wikimedia-citoid.yaml === RUN TestBotPoliciesEmbed/crawlers/xai.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/xai.yaml === RUN TestBotPoliciesEmbed/crawlers/yandexbot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/crawlers/yandexbot.yaml === RUN TestBotPoliciesEmbed/meta/ai-block-aggressive.yaml === RUN TestBotPoliciesEmbed/verify-yaml/meta/ai-block-aggressive.yaml === RUN TestBotPoliciesEmbed/meta/ai-block-moderate.yaml === RUN TestBotPoliciesEmbed/verify-yaml/meta/ai-block-moderate.yaml === RUN TestBotPoliciesEmbed/meta/ai-block-permissive.yaml === RUN TestBotPoliciesEmbed/verify-yaml/meta/ai-block-permissive.yaml === RUN TestBotPoliciesEmbed/meta/default-config.yaml === RUN TestBotPoliciesEmbed/verify-yaml/meta/default-config.yaml === RUN TestBotPoliciesEmbed/meta/messengers-preview.yaml === RUN TestBotPoliciesEmbed/verify-yaml/meta/messengers-preview.yaml === RUN TestBotPoliciesEmbed/services/updown.yaml === RUN TestBotPoliciesEmbed/verify-yaml/services/updown.yaml === RUN TestBotPoliciesEmbed/services/uptime-robot.yaml === RUN TestBotPoliciesEmbed/verify-yaml/services/uptime-robot.yaml --- PASS: TestBotPoliciesEmbed (0.02s) --- PASS: TestBotPoliciesEmbed/apps/allow-api-routes.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/apps/allow-api-routes.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/apps/bookstack-saml.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/apps/bookstack-saml.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/apps/gitea-rss-feeds.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/apps/gitea-rss-feeds.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/_deny-pathological.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/_deny-pathological.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/aggressive-brazilian-scrapers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/aggressive-brazilian-scrapers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/ai-catchall.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/ai-catchall.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/ai-robots-txt.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/ai-robots-txt.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/cloudflare-kitesurf.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/cloudflare-kitesurf.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/cloudflare-workers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/cloudflare-workers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/custom-async-http-client.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/custom-async-http-client.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/headless-browsers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/headless-browsers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/lyrenth.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/lyrenth.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/spec-violations.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/spec-violations.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/bots/us-ai-scraper.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/bots/us-ai-scraper.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/ai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/ai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/docker-client.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/docker-client.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/git.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/git.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/go-get.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/go-get.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/google-user-triggered-fetchers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/google-user-triggered-fetchers.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/mistral-mistralai-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/mistral-mistralai-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/openai-chatgpt-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/openai-chatgpt-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/perplexity-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/perplexity-user.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/telegram-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/telegram-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/vk-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/vk-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/clients/x-firefox-ai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/clients/x-firefox-ai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/acts-like-browser.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/acts-like-browser.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/allow-api-like.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/allow-api-like.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/allow-private-addresses.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/allow-private-addresses.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/domain-fronting.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/domain-fronting.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/json-api.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/json-api.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/keep-internet-working.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/keep-internet-working.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/common/rfc-violations.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/common/rfc-violations.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/_allow-good.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/_allow-good.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/ai-search.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/ai-search.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/ai-training.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/ai-training.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/alibaba-cloud.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/alibaba-cloud.yaml (0.01s) --- PASS: TestBotPoliciesEmbed/crawlers/applebot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/applebot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/arquivo-pt.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/arquivo-pt.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/bingbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/bingbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/commoncrawl.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/commoncrawl.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/duckduckbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/duckduckbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/googlebot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/googlebot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/huawei-cloud.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/huawei-cloud.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/internet-archive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/internet-archive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/kagibot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/kagibot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/marginalia.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/marginalia.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/mojeekbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/mojeekbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/openai-gptbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/openai-gptbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/openai-searchbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/openai-searchbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/perplexitybot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/perplexitybot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/qwantbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/qwantbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/tencent-cloud.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/tencent-cloud.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/wikimedia-citoid.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/wikimedia-citoid.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/xai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/xai.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/crawlers/yandexbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/crawlers/yandexbot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/meta/ai-block-aggressive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/meta/ai-block-aggressive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/meta/ai-block-moderate.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/meta/ai-block-moderate.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/meta/ai-block-permissive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/meta/ai-block-permissive.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/meta/default-config.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/meta/default-config.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/meta/messengers-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/meta/messengers-preview.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/services/updown.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/services/updown.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/services/uptime-robot.yaml (0.00s) --- PASS: TestBotPoliciesEmbed/verify-yaml/services/uptime-robot.yaml (0.00s) PASS ok github.com/TecharoHQ/anubis/data 0.025s === RUN TestImpl --- PASS: TestImpl (0.50s) === RUN TestCleanup --- PASS: TestCleanup (0.00s) PASS ok github.com/TecharoHQ/anubis/decaymap 0.509s === RUN TestBasicAuth === PAUSE TestBasicAuth === RUN TestBasicAuthPassthrough === PAUSE TestBasicAuthPassthrough === RUN TestBasicAuthPartialCredentialsFailClosed === RUN TestBasicAuthPartialCredentialsFailClosed/admin === RUN TestBasicAuthPartialCredentialsFailClosed/secret --- PASS: TestBasicAuthPartialCredentialsFailClosed (0.00s) --- PASS: TestBasicAuthPartialCredentialsFailClosed/admin (0.00s) --- PASS: TestBasicAuthPartialCredentialsFailClosed/secret (0.00s) === RUN TestClampIP === RUN TestClampIP/IPv4_normal_address === RUN TestClampIP/IPv4_boundary_-_network_address === RUN TestClampIP/IPv4_boundary_-_broadcast_address === RUN TestClampIP/IPv4_class_A_address === RUN TestClampIP/IPv4_loopback === RUN TestClampIP/IPv4_link-local === RUN TestClampIP/IPv4_public_address === RUN TestClampIP/IPv6_normal_address === RUN TestClampIP/IPv6_with_full_expansion === RUN TestClampIP/IPv6_loopback === RUN TestClampIP/IPv6_unspecified_address === RUN TestClampIP/IPv6_link-local === RUN TestClampIP/IPv6_unique_local === RUN TestClampIP/IPv6_documentation_prefix === RUN TestClampIP/IPv6_global_unicast === RUN TestClampIP/IPv6_multicast === RUN TestClampIP/IPv4-mapped_IPv6_address === RUN TestClampIP/IPv4-mapped_IPv6_with_different_format === RUN TestClampIP/IPv4-mapped_IPv6_loopback --- PASS: TestClampIP (0.00s) --- PASS: TestClampIP/IPv4_normal_address (0.00s) --- PASS: TestClampIP/IPv4_boundary_-_network_address (0.00s) --- PASS: TestClampIP/IPv4_boundary_-_broadcast_address (0.00s) --- PASS: TestClampIP/IPv4_class_A_address (0.00s) --- PASS: TestClampIP/IPv4_loopback (0.00s) --- PASS: TestClampIP/IPv4_link-local (0.00s) --- PASS: TestClampIP/IPv4_public_address (0.00s) --- PASS: TestClampIP/IPv6_normal_address (0.00s) --- PASS: TestClampIP/IPv6_with_full_expansion (0.00s) --- PASS: TestClampIP/IPv6_loopback (0.00s) --- PASS: TestClampIP/IPv6_unspecified_address (0.00s) --- PASS: TestClampIP/IPv6_link-local (0.00s) --- PASS: TestClampIP/IPv6_unique_local (0.00s) --- PASS: TestClampIP/IPv6_documentation_prefix (0.00s) --- PASS: TestClampIP/IPv6_global_unicast (0.00s) --- PASS: TestClampIP/IPv6_multicast (0.00s) --- PASS: TestClampIP/IPv4-mapped_IPv6_address (0.00s) --- PASS: TestClampIP/IPv4-mapped_IPv6_with_different_format (0.00s) --- PASS: TestClampIP/IPv4-mapped_IPv6_loopback (0.00s) === RUN TestClampIPSuccess === RUN TestClampIPSuccess/IPv4_address === RUN TestClampIPSuccess/IPv6_address === RUN TestClampIPSuccess/IPv4-mapped_IPv6 --- PASS: TestClampIPSuccess (0.00s) --- PASS: TestClampIPSuccess/IPv4_address (0.00s) --- PASS: TestClampIPSuccess/IPv6_address (0.00s) --- PASS: TestClampIPSuccess/IPv4-mapped_IPv6 (0.00s) === RUN TestClampIPZeroValue --- PASS: TestClampIPZeroValue (0.00s) === RUN TestClampIPSpecialCases === RUN TestClampIPSpecialCases/Minimum_IPv4 === RUN TestClampIPSpecialCases/Maximum_IPv4 === RUN TestClampIPSpecialCases/Minimum_IPv6 === RUN TestClampIPSpecialCases/Maximum_IPv6_prefix_part --- PASS: TestClampIPSpecialCases (0.00s) --- PASS: TestClampIPSpecialCases/Minimum_IPv4 (0.00s) --- PASS: TestClampIPSpecialCases/Maximum_IPv4 (0.00s) --- PASS: TestClampIPSpecialCases/Minimum_IPv6 (0.00s) --- PASS: TestClampIPSpecialCases/Maximum_IPv6_prefix_part (0.00s) === RUN TestGzipMiddleware === RUN TestGzipMiddleware/compresses_when_client_accepts_gzip === RUN TestGzipMiddleware/passes_through_when_client_does_not_accept_gzip --- PASS: TestGzipMiddleware (0.00s) --- PASS: TestGzipMiddleware/compresses_when_client_accepts_gzip (0.00s) --- PASS: TestGzipMiddleware/passes_through_when_client_does_not_accept_gzip (0.00s) === RUN TestGzipMiddlewareInvalidLevel === RUN TestGzipMiddlewareInvalidLevel/below-huffman-only === RUN TestGzipMiddlewareInvalidLevel/above-best-compression --- PASS: TestGzipMiddlewareInvalidLevel (0.00s) --- PASS: TestGzipMiddlewareInvalidLevel/below-huffman-only (0.00s) --- PASS: TestGzipMiddlewareInvalidLevel/above-best-compression (0.00s) === RUN TestGzipMiddlewarePoolSurvivesReconstruction gzip_test.go:117: allocations per (construct + serve): 14 --- PASS: TestGzipMiddlewarePoolSurvivesReconstruction (0.00s) === RUN TestHashCollisions hash_bench_test.go:176: Basic test: 22 realistic inputs, no collisions hash_bench_test.go:199: Stress test 1: 22400 similar string variations, no collisions hash_bench_test.go:224: Stress test 2: 70000 sequential patterns, no collisions hash_bench_test.go:227: TOTAL: Tested 92422 inputs across realistic scenarios - NO COLLISIONS --- PASS: TestHashCollisions (0.05s) === RUN TestXXHashFormat hash_bench_test.go:260: Input: "short" -> Hash: a4dbb3294161a9a4 hash_bench_test.go:260: Input: "" -> Hash: ef46db3751d8e999 hash_bench_test.go:260: Input: "very long string with lots of content that might be used in policy checking and other internal hashing scenarios" -> Hash: 66442c9447f2401b hash_bench_test.go:260: Input: "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" -> Hash: 853008ee50e116bf --- PASS: TestXXHashFormat (0.00s) === RUN TestHTTPServerTimeouts --- PASS: TestHTTPServerTimeouts (0.00s) === RUN TestHTTPServerClosesIncompleteHeaders --- PASS: TestHTTPServerClosesIncompleteHeaders (0.05s) === RUN TestJA4HReplacesClientFingerprint --- PASS: TestJA4HReplacesClientFingerprint (0.00s) === RUN TestListOr_UnmarshalJSON === RUN TestListOr_UnmarshalJSON/single_value_should_be_unmarshaled_as_single_item === RUN TestListOr_UnmarshalJSON/array_should_be_unmarshaled_as_multiple_items === RUN TestListOr_UnmarshalJSON/single_number_should_be_unmarshaled_as_single_item === RUN TestListOr_UnmarshalJSON/array_of_numbers_should_be_unmarshaled_as_multiple_items --- PASS: TestListOr_UnmarshalJSON (0.00s) --- PASS: TestListOr_UnmarshalJSON/single_value_should_be_unmarshaled_as_single_item (0.00s) --- PASS: TestListOr_UnmarshalJSON/array_should_be_unmarshaled_as_multiple_items (0.00s) --- PASS: TestListOr_UnmarshalJSON/single_number_should_be_unmarshaled_as_single_item (0.00s) --- PASS: TestListOr_UnmarshalJSON/array_of_numbers_should_be_unmarshaled_as_multiple_items (0.00s) === RUN TestErrorLogFilter --- PASS: TestErrorLogFilter (0.00s) === RUN TestGetRequestLogger --- PASS: TestGetRequestLogger (0.00s) === RUN TestParseBindNetFromAddr === RUN TestParseBindNetFromAddr/simple_tcp === RUN TestParseBindNetFromAddr/simple_unix === RUN TestParseBindNetFromAddr/invalid_network === RUN TestParseBindNetFromAddr/tcp_uri === RUN TestParseBindNetFromAddr/http_uri === RUN TestParseBindNetFromAddr/https_uri --- PASS: TestParseBindNetFromAddr (0.00s) --- PASS: TestParseBindNetFromAddr/simple_tcp (0.00s) --- PASS: TestParseBindNetFromAddr/simple_unix (0.00s) --- PASS: TestParseBindNetFromAddr/invalid_network (0.00s) --- PASS: TestParseBindNetFromAddr/tcp_uri (0.00s) --- PASS: TestParseBindNetFromAddr/http_uri (0.00s) --- PASS: TestParseBindNetFromAddr/https_uri (0.00s) === RUN TestSetupListener === RUN TestSetupListener/simple_tcp === RUN TestSetupListener/simple_unix === RUN TestSetupListener/tcp === RUN TestSetupListener/udp === RUN TestSetupListener/unix_socket === RUN TestSetupListener/invalid_socket_mode === RUN TestSetupListener/empty_socket_mode --- PASS: TestSetupListener (0.00s) --- PASS: TestSetupListener/simple_tcp (0.00s) --- PASS: TestSetupListener/simple_unix (0.00s) --- PASS: TestSetupListener/tcp (0.00s) --- PASS: TestSetupListener/udp (0.00s) --- PASS: TestSetupListener/unix_socket (0.00s) --- PASS: TestSetupListener/invalid_socket_mode (0.00s) --- PASS: TestSetupListener/empty_socket_mode (0.00s) === RUN TestXForwardedForUpdateIgnoreUnix --- PASS: TestXForwardedForUpdateIgnoreUnix (0.00s) === RUN TestXForwardedForUpdateAddToChain --- PASS: TestXForwardedForUpdateAddToChain (0.00s) === RUN TestComputeXFFHeader === RUN TestComputeXFFHeader/StripPrivate === RUN TestComputeXFFHeader/StripPrivate#01 === RUN TestComputeXFFHeader/StripLoopback === RUN TestComputeXFFHeader/StripCGNAT === RUN TestComputeXFFHeader/StripLinkLocalUnicastIPv4 === RUN TestComputeXFFHeader/StripLinkLocalUnicastIPv6 === RUN TestComputeXFFHeader/Flatten === RUN TestComputeXFFHeader/TrimSpaces === RUN TestComputeXFFHeader/invalid-ip-port === RUN TestComputeXFFHeader/invalid-remote-ip === RUN TestComputeXFFHeader/no-xff-dont-panic --- PASS: TestComputeXFFHeader (0.00s) --- PASS: TestComputeXFFHeader/StripPrivate (0.00s) --- PASS: TestComputeXFFHeader/StripPrivate#01 (0.00s) --- PASS: TestComputeXFFHeader/StripLoopback (0.00s) --- PASS: TestComputeXFFHeader/StripCGNAT (0.00s) --- PASS: TestComputeXFFHeader/StripLinkLocalUnicastIPv4 (0.00s) --- PASS: TestComputeXFFHeader/StripLinkLocalUnicastIPv6 (0.00s) --- PASS: TestComputeXFFHeader/Flatten (0.00s) --- PASS: TestComputeXFFHeader/TrimSpaces (0.00s) --- PASS: TestComputeXFFHeader/invalid-ip-port (0.00s) --- PASS: TestComputeXFFHeader/invalid-remote-ip (0.00s) --- PASS: TestComputeXFFHeader/no-xff-dont-panic (0.00s) === CONT TestBasicAuth === CONT TestBasicAuthPassthrough === RUN TestBasicAuthPassthrough/both_empty === PAUSE TestBasicAuthPassthrough/both_empty === CONT TestBasicAuthPassthrough/both_empty === RUN TestBasicAuth/valid_credentials === PAUSE TestBasicAuth/valid_credentials === RUN TestBasicAuth/missing_credentials --- PASS: TestBasicAuthPassthrough (0.00s) --- PASS: TestBasicAuthPassthrough/both_empty (0.00s) === PAUSE TestBasicAuth/missing_credentials === RUN TestBasicAuth/wrong_username === PAUSE TestBasicAuth/wrong_username === RUN TestBasicAuth/wrong_password === PAUSE TestBasicAuth/wrong_password === RUN TestBasicAuth/empty_supplied_credentials === PAUSE TestBasicAuth/empty_supplied_credentials === CONT TestBasicAuth/valid_credentials === CONT TestBasicAuth/wrong_password === CONT TestBasicAuth/wrong_username === CONT TestBasicAuth/missing_credentials === CONT TestBasicAuth/empty_supplied_credentials --- PASS: TestBasicAuth (0.00s) --- PASS: TestBasicAuth/valid_credentials (0.00s) --- PASS: TestBasicAuth/missing_credentials (0.00s) --- PASS: TestBasicAuth/wrong_username (0.00s) --- PASS: TestBasicAuth/wrong_password (0.00s) --- PASS: TestBasicAuth/empty_supplied_credentials (0.00s) PASS ok github.com/TecharoHQ/anubis/internal 0.122s === RUN TestCanceledCallDoesNotBlockActor --- PASS: TestCanceledCallDoesNotBlockActor (0.00s) === RUN TestCallPassesContext --- PASS: TestCallPassesContext (0.00s) === RUN TestCanceledCallWithFullInbox --- PASS: TestCanceledCallWithFullInbox (0.00s) === RUN TestCallAfterActorStops --- PASS: TestCallAfterActorStops (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/actorify 0.005s === RUN TestBundler --- PASS: TestBundler (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/bundler 0.005s === RUN TestVersionFromZipName === RUN TestVersionFromZipName/dev_build_with_path === RUN TestVersionFromZipName/tagged_release === RUN TestVersionFromZipName/arm64 === RUN TestVersionFromZipName/not_an_anubis_zip === RUN TestVersionFromZipName/no_platform_suffix --- PASS: TestVersionFromZipName (0.00s) --- PASS: TestVersionFromZipName/dev_build_with_path (0.00s) --- PASS: TestVersionFromZipName/tagged_release (0.00s) --- PASS: TestVersionFromZipName/arm64 (0.00s) --- PASS: TestVersionFromZipName/not_an_anubis_zip (0.00s) --- PASS: TestVersionFromZipName/no_platform_suffix (0.00s) === RUN TestCheckWixlOutput === RUN TestCheckWixlOutput/clean === RUN TestCheckWixlOutput/harmless_chatter === RUN TestCheckWixlOutput/dropped_attribute === RUN TestCheckWixlOutput/critical_among_other_lines --- PASS: TestCheckWixlOutput (0.00s) --- PASS: TestCheckWixlOutput/clean (0.00s) --- PASS: TestCheckWixlOutput/harmless_chatter (0.00s) --- PASS: TestCheckWixlOutput/dropped_attribute (0.00s) --- PASS: TestCheckWixlOutput/critical_among_other_lines (0.00s) === RUN TestMSIContents msi_test.go:274: wixl is not installed, skipping: exec: "wixl": executable file not found in $PATH --- SKIP: TestMSIContents (0.00s) === RUN TestMSIStartsServiceOnlyOnUpgrade msi_test.go:380: wixl is not installed, skipping: exec: "wixl": executable file not found in $PATH --- SKIP: TestMSIStartsServiceOnlyOnUpgrade (0.00s) === RUN TestMSIArm64 msi_test.go:421: wixl is not installed, skipping: exec: "wixl": executable file not found in $PATH --- SKIP: TestMSIArm64 (0.00s) === RUN TestMSIInstallerImages msi_test.go:489: wixl is not installed, skipping: exec: "wixl": executable file not found in $PATH --- SKIP: TestMSIInstallerImages (0.00s) === RUN TestMSILicenseRTFMatchesLicense --- PASS: TestMSILicenseRTFMatchesLicense (0.00s) === RUN TestMSIReproducibleBuild msi_test.go:701: wixl is not installed, skipping: exec: "wixl": executable file not found in $PATH --- SKIP: TestMSIReproducibleBuild (0.00s) === RUN TestMSIVersion === RUN TestMSIVersion/plain_release === RUN TestMSIVersion/v_prefix === RUN TestMSIVersion/dev_build === RUN TestMSIVersion/dev_build_many_commits === RUN TestMSIVersion/prerelease === RUN TestMSIVersion/prerelease_with_v_prefix === RUN TestMSIVersion/dev_build_off_a_prerelease === RUN TestMSIVersion/prerelease_number_is_not_a_version_component === RUN TestMSIVersion/major_too_big === RUN TestMSIVersion/minor_too_big === RUN TestMSIVersion/patch_too_big === RUN TestMSIVersion/revision_too_big === RUN TestMSIVersion/empty === RUN TestMSIVersion/not_a_version === RUN TestMSIVersion/two_components === RUN TestMSIVersion/four_components === RUN TestMSIVersion/trailing_garbage === RUN TestMSIVersion/garbage_after_commit_hash === RUN TestMSIVersion/prerelease_without_a_number === RUN TestMSIVersion/unknown_prerelease_flavour === RUN TestMSIVersion/prerelease_after_commit_count === RUN TestMSIVersion/overflows_an_int --- PASS: TestMSIVersion (0.00s) --- PASS: TestMSIVersion/plain_release (0.00s) --- PASS: TestMSIVersion/v_prefix (0.00s) --- PASS: TestMSIVersion/dev_build (0.00s) --- PASS: TestMSIVersion/dev_build_many_commits (0.00s) --- PASS: TestMSIVersion/prerelease (0.00s) --- PASS: TestMSIVersion/prerelease_with_v_prefix (0.00s) --- PASS: TestMSIVersion/dev_build_off_a_prerelease (0.00s) --- PASS: TestMSIVersion/prerelease_number_is_not_a_version_component (0.00s) --- PASS: TestMSIVersion/major_too_big (0.00s) --- PASS: TestMSIVersion/minor_too_big (0.00s) --- PASS: TestMSIVersion/patch_too_big (0.00s) --- PASS: TestMSIVersion/revision_too_big (0.00s) --- PASS: TestMSIVersion/empty (0.00s) --- PASS: TestMSIVersion/not_a_version (0.00s) --- PASS: TestMSIVersion/two_components (0.00s) --- PASS: TestMSIVersion/four_components (0.00s) --- PASS: TestMSIVersion/trailing_garbage (0.00s) --- PASS: TestMSIVersion/garbage_after_commit_hash (0.00s) --- PASS: TestMSIVersion/prerelease_without_a_number (0.00s) --- PASS: TestMSIVersion/unknown_prerelease_flavour (0.00s) --- PASS: TestMSIVersion/prerelease_after_commit_count (0.00s) --- PASS: TestMSIVersion/overflows_an_int (0.00s) === RUN TestProductCodeIsDeterministic --- PASS: TestProductCodeIsDeterministic (0.00s) === RUN TestProductCodeVariesByVersion --- PASS: TestProductCodeVariesByVersion (0.00s) === RUN TestProductCodeVariesByPrerelease --- PASS: TestProductCodeVariesByPrerelease (0.00s) === RUN TestProductCodeVariesByArch --- PASS: TestProductCodeVariesByArch (0.00s) === RUN TestProductCodeRejectsBadVersion --- PASS: TestProductCodeRejectsBadVersion (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/cmd/mkmsi 0.007s === RUN TestDns_ArpaReverseIP === RUN TestDns_ArpaReverseIP/ipv4 === RUN TestDns_ArpaReverseIP/ipv6 === RUN TestDns_ArpaReverseIP/invalid_ip === RUN TestDns_ArpaReverseIP/ipv4-mapped_ipv6 --- PASS: TestDns_ArpaReverseIP (0.00s) --- PASS: TestDns_ArpaReverseIP/ipv4 (0.00s) --- PASS: TestDns_ArpaReverseIP/ipv6 (0.00s) --- PASS: TestDns_ArpaReverseIP/invalid_ip (0.00s) --- PASS: TestDns_ArpaReverseIP/ipv4-mapped_ipv6 (0.00s) === RUN TestDns_ReverseDNS === RUN TestDns_ReverseDNS/cache_miss === NAME TestDns_ReverseDNS time=2026-11-05T03:06:59.777Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:06:59.777Z level=DEBUG msg="DNS: reverse lookup successful" addr=8.8.8.8 names=[dns.google.] === RUN TestDns_ReverseDNS/cache_hit === NAME TestDns_ReverseDNS time=2026-11-05T03:06:59.777Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 === RUN TestDns_ReverseDNS/cache_expiration === NAME TestDns_ReverseDNS time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: reverse lookup successful" addr=8.8.8.8 names=[expired.google.] === RUN TestDns_ReverseDNS/not_found === NAME TestDns_ReverseDNS time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: performing reverse lookup" addr=9.9.9.9 time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: no PTR record found" addr=9.9.9.9 --- PASS: TestDns_ReverseDNS (2.00s) --- PASS: TestDns_ReverseDNS/cache_miss (0.00s) --- PASS: TestDns_ReverseDNS/cache_hit (0.00s) --- PASS: TestDns_ReverseDNS/cache_expiration (2.00s) --- PASS: TestDns_ReverseDNS/not_found (0.00s) === RUN TestDns_LookupHost === RUN TestDns_LookupHost/cache_miss === NAME TestDns_LookupHost time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: forward lookup successful" host=dns.google addrs="[8.8.8.8 8.8.4.4]" === RUN TestDns_LookupHost/cache_hit === NAME TestDns_LookupHost time=2026-11-05T03:07:01.778Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google === RUN TestDns_LookupHost/cache_expiration === NAME TestDns_LookupHost time=2026-11-05T03:07:03.779Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.779Z level=DEBUG msg="DNS: forward lookup successful" host=dns.google addrs=[9.9.9.9] === RUN TestDns_LookupHost/not_found === NAME TestDns_LookupHost time=2026-11-05T03:07:03.779Z level=DEBUG msg="DNS: performing forward lookup" host=example.com time=2026-11-05T03:07:03.779Z level=DEBUG msg="DNS: no A/AAAA record found" host=example.com --- PASS: TestDns_LookupHost (2.00s) --- PASS: TestDns_LookupHost/cache_miss (0.00s) --- PASS: TestDns_LookupHost/cache_hit (0.00s) --- PASS: TestDns_LookupHost/cache_expiration (2.00s) --- PASS: TestDns_LookupHost/not_found (0.00s) === RUN TestDns_VerifyFCrDNS === RUN TestDns_VerifyFCrDNS/valid_no_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: reverse lookup successful" addr=8.8.8.8 names=[dns.google.] time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: forward lookup successful" host=dns.google addrs="[8.8.8.8 8.8.4.4]" time=2026-11-05T03:07:03.780Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 === RUN TestDns_VerifyFCrDNS/valid_partial_no_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=1.1.1.1 pattern="" time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=1.1.1.1 time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: reverse lookup successful" addr=1.1.1.1 names=[one.one.one.one.] time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing forward lookup" host=one.one.one.one time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: forward lookup successful" host=one.one.one.one addrs="[1.1.1.1 1.0.0.1]" time=2026-11-05T03:07:03.780Z level=INFO msg="DNS: forward lookup confirmed original IP" name=one.one.one.one addr=1.1.1.1 === RUN TestDns_VerifyFCrDNS/not_found_no_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=9.9.9.9 pattern="" time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=9.9.9.9 time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: no PTR record found" addr=9.9.9.9 === RUN TestDns_VerifyFCrDNS/unknown_error_no_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=1.2.3.4 pattern="" time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=1.2.3.4 time=2026-11-05T03:07:03.780Z level=ERROR msg="DNS: reverse lookup failed" addr=1.2.3.4 err="unknown error" === RUN TestDns_VerifyFCrDNS/valid_match === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern=.*\.google$ time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.780Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 === RUN TestDns_VerifyFCrDNS/valid_no_match === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern=\.com$ time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 === RUN TestDns_VerifyFCrDNS/not_found_with_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=9.9.9.9 pattern=.* time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: performing reverse lookup" addr=9.9.9.9 time=2026-11-05T03:07:03.780Z level=DEBUG msg="DNS: no PTR record found" addr=9.9.9.9 === RUN TestDns_VerifyFCrDNS/unknown_error_with_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=1.2.3.4 pattern=.* time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=1.2.3.4 time=2026-11-05T03:07:03.781Z level=ERROR msg="DNS: reverse lookup failed" addr=1.2.3.4 err="unknown error" === RUN TestDns_VerifyFCrDNS/invalid_pattern === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern=[ time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=ERROR msg="DNS: verifyFCrDNS invalid regex pattern" err="error parsing regexp: missing closing ]: `[`" === RUN TestDns_VerifyFCrDNS/reverse_cache_hit === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 === RUN TestDns_VerifyFCrDNS/forward_cache_hit === NAME TestDns_VerifyFCrDNS time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 --- PASS: TestDns_VerifyFCrDNS (0.00s) --- PASS: TestDns_VerifyFCrDNS/valid_no_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/valid_partial_no_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/not_found_no_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/unknown_error_no_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/valid_match (0.00s) --- PASS: TestDns_VerifyFCrDNS/valid_no_match (0.00s) --- PASS: TestDns_VerifyFCrDNS/not_found_with_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/unknown_error_with_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/invalid_pattern (0.00s) --- PASS: TestDns_VerifyFCrDNS/reverse_cache_hit (0.00s) --- PASS: TestDns_VerifyFCrDNS/forward_cache_hit (0.00s) === RUN TestGHSA_5gwm_367w_7fgj === RUN TestGHSA_5gwm_367w_7fgj/matching_PTR_does_not_resolve time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names="[fake.yandex.com. owned.example.]" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=fake.yandex.com time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: no A/AAAA record found" host=fake.yandex.com time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: could not confirm original IP in forward lookups" addr=192.0.2.42 === RUN TestGHSA_5gwm_367w_7fgj/nonmatching_PTR_comes_first time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names="[owned.example. fake.yandex.com.]" time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing forward lookup" host=fake.yandex.com time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: no A/AAAA record found" host=fake.yandex.com time=2026-11-05T03:07:03.781Z level=INFO msg="DNS: could not confirm original IP in forward lookups" addr=192.0.2.42 === RUN TestGHSA_5gwm_367w_7fgj/matching_PTR_resolves_to_another_IP time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.781Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names="[fake.yandex.com. owned.example.]" time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: performing forward lookup" host=fake.yandex.com time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: forward lookup successful" host=fake.yandex.com addrs=[192.0.2.99] time=2026-11-05T03:07:03.782Z level=INFO msg="DNS: could not confirm original IP in forward lookups" addr=192.0.2.42 === RUN TestGHSA_5gwm_367w_7fgj/forward_confirmed_hostname_does_not_match time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names=[owned.example.] === RUN TestGHSA_5gwm_367w_7fgj/matching_hostname_is_forward_confirmed time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.782Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names=[real.yandex.com.] time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: performing forward lookup" host=real.yandex.com time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: forward lookup successful" host=real.yandex.com addrs=[192.0.2.42] time=2026-11-05T03:07:03.783Z level=INFO msg="DNS: forward lookup confirmed original IP" name=real.yandex.com addr=192.0.2.42 === RUN TestGHSA_5gwm_367w_7fgj/later_matching_hostname_is_forward_confirmed time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=192.0.2.42 pattern=^.*\.yandex\.(ru|com|net)$ time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: performing reverse lookup" addr=192.0.2.42 time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: reverse lookup successful" addr=192.0.2.42 names="[fake.yandex.com. real.yandex.com.]" time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: performing forward lookup" host=fake.yandex.com time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: no A/AAAA record found" host=fake.yandex.com time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: performing forward lookup" host=real.yandex.com time=2026-11-05T03:07:03.783Z level=DEBUG msg="DNS: forward lookup successful" host=real.yandex.com addrs=[192.0.2.42] time=2026-11-05T03:07:03.783Z level=INFO msg="DNS: forward lookup confirmed original IP" name=real.yandex.com addr=192.0.2.42 --- PASS: TestGHSA_5gwm_367w_7fgj (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/matching_PTR_does_not_resolve (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/nonmatching_PTR_comes_first (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/matching_PTR_resolves_to_another_IP (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/forward_confirmed_hostname_does_not_match (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/matching_hostname_is_forward_confirmed (0.00s) --- PASS: TestGHSA_5gwm_367w_7fgj/later_matching_hostname_is_forward_confirmed (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/dns 4.019s === RUN TestNonIPv4Answers === RUN TestNonIPv4Answers/ipv6_only === RUN TestNonIPv4Answers/mixed === RUN TestNonIPv4Answers/ipv4 --- PASS: TestNonIPv4Answers (0.00s) --- PASS: TestNonIPv4Answers/ipv6_only (0.00s) --- PASS: TestNonIPv4Answers/mixed (0.00s) --- PASS: TestNonIPv4Answers/ipv4 (0.00s) === RUN TestReverse4 === RUN TestReverse4/1.2.3.4->4.3.2.1 --- PASS: TestReverse4 (0.00s) --- PASS: TestReverse4/1.2.3.4->4.3.2.1 (0.00s) === RUN TestReverse6 === RUN TestReverse6/1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0->0.f.e.d.c.b.a.9.8.7.6.5.4.3.2.1.0.f.e.d.c.b.a.9.8.7.6.5.4.3.2.1 --- PASS: TestReverse6 (0.00s) --- PASS: TestReverse6/1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0->0.f.e.d.c.b.a.9.8.7.6.5.4.3.2.1.0.f.e.d.c.b.a.9.8.7.6.5.4.3.2.1 (0.00s) === RUN TestLookup dnsbl_test.go:60: response: 0 --- PASS: TestLookup (0.11s) PASS ok github.com/TecharoHQ/anubis/internal/dnsbl 0.113s === RUN TestGlob_EqualityAndEmpty === RUN TestGlob_EqualityAndEmpty/exact_match === RUN TestGlob_EqualityAndEmpty/exact_mismatch === RUN TestGlob_EqualityAndEmpty/empty_pattern_and_subject === RUN TestGlob_EqualityAndEmpty/empty_pattern_with_non-empty_subject === RUN TestGlob_EqualityAndEmpty/pattern_star_matches_empty === RUN TestGlob_EqualityAndEmpty/pattern_star_matches_anything --- PASS: TestGlob_EqualityAndEmpty (0.00s) --- PASS: TestGlob_EqualityAndEmpty/exact_match (0.00s) --- PASS: TestGlob_EqualityAndEmpty/exact_mismatch (0.00s) --- PASS: TestGlob_EqualityAndEmpty/empty_pattern_and_subject (0.00s) --- PASS: TestGlob_EqualityAndEmpty/empty_pattern_with_non-empty_subject (0.00s) --- PASS: TestGlob_EqualityAndEmpty/pattern_star_matches_empty (0.00s) --- PASS: TestGlob_EqualityAndEmpty/pattern_star_matches_anything (0.00s) === RUN TestGlob_LeadingAndTrailing === RUN TestGlob_LeadingAndTrailing/prefix_match_-_minimal === RUN TestGlob_LeadingAndTrailing/prefix_match_-_extended === RUN TestGlob_LeadingAndTrailing/prefix_mismatch_-_not_at_start === RUN TestGlob_LeadingAndTrailing/suffix_match_-_minimal === RUN TestGlob_LeadingAndTrailing/suffix_match_-_extended === RUN TestGlob_LeadingAndTrailing/suffix_mismatch_-_not_at_end === RUN TestGlob_LeadingAndTrailing/contains_match === RUN TestGlob_LeadingAndTrailing/contains_mismatch_-_missing_needle --- PASS: TestGlob_LeadingAndTrailing (0.00s) --- PASS: TestGlob_LeadingAndTrailing/prefix_match_-_minimal (0.00s) --- PASS: TestGlob_LeadingAndTrailing/prefix_match_-_extended (0.00s) --- PASS: TestGlob_LeadingAndTrailing/prefix_mismatch_-_not_at_start (0.00s) --- PASS: TestGlob_LeadingAndTrailing/suffix_match_-_minimal (0.00s) --- PASS: TestGlob_LeadingAndTrailing/suffix_match_-_extended (0.00s) --- PASS: TestGlob_LeadingAndTrailing/suffix_mismatch_-_not_at_end (0.00s) --- PASS: TestGlob_LeadingAndTrailing/contains_match (0.00s) --- PASS: TestGlob_LeadingAndTrailing/contains_mismatch_-_missing_needle (0.00s) === RUN TestGlob_MiddleAndOrder === RUN TestGlob_MiddleAndOrder/middle_wildcard_basic === RUN TestGlob_MiddleAndOrder/middle_wildcard_gap === RUN TestGlob_MiddleAndOrder/middle_wildcard_requires_start_f === RUN TestGlob_MiddleAndOrder/order_enforced_across_parts === RUN TestGlob_MiddleAndOrder/order_mismatch_fails === RUN TestGlob_MiddleAndOrder/must_end_with_last_part_when_no_trailing_* === RUN TestGlob_MiddleAndOrder/failing_when_trailing_chars_remain === RUN TestGlob_MiddleAndOrder/first_part_must_start_when_no_leading_* === RUN TestGlob_MiddleAndOrder/works_with_overlapping_content === RUN TestGlob_MiddleAndOrder/needle_not_found_fails --- PASS: TestGlob_MiddleAndOrder (0.00s) --- PASS: TestGlob_MiddleAndOrder/middle_wildcard_basic (0.00s) --- PASS: TestGlob_MiddleAndOrder/middle_wildcard_gap (0.00s) --- PASS: TestGlob_MiddleAndOrder/middle_wildcard_requires_start_f (0.00s) --- PASS: TestGlob_MiddleAndOrder/order_enforced_across_parts (0.00s) --- PASS: TestGlob_MiddleAndOrder/order_mismatch_fails (0.00s) --- PASS: TestGlob_MiddleAndOrder/must_end_with_last_part_when_no_trailing_* (0.00s) --- PASS: TestGlob_MiddleAndOrder/failing_when_trailing_chars_remain (0.00s) --- PASS: TestGlob_MiddleAndOrder/first_part_must_start_when_no_leading_* (0.00s) --- PASS: TestGlob_MiddleAndOrder/works_with_overlapping_content (0.00s) --- PASS: TestGlob_MiddleAndOrder/needle_not_found_fails (0.00s) === RUN TestGlob_ConsecutiveStarsAndEmptyParts === RUN TestGlob_ConsecutiveStarsAndEmptyParts/double_star_matches_anything === RUN TestGlob_ConsecutiveStarsAndEmptyParts/double_star_matches_anything_non-empty === RUN TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_behave_like_single === RUN TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_with_gaps === RUN TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_+_trailing_star === RUN TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_still_enforce_anchors --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/double_star_matches_anything (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/double_star_matches_anything_non-empty (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_behave_like_single (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_with_gaps (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_+_trailing_star (0.00s) --- PASS: TestGlob_ConsecutiveStarsAndEmptyParts/consecutive_stars_still_enforce_anchors (0.00s) === RUN TestGlob_MaxPartsLimit --- PASS: TestGlob_MaxPartsLimit (0.00s) === RUN TestGlob_CaseSensitivity --- PASS: TestGlob_CaseSensitivity (0.00s) === RUN TestGlob_EmptySubjectInteractions --- PASS: TestGlob_EmptySubjectInteractions (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/glob 0.006s ? github.com/TecharoHQ/anubis/internal/honeypot [no test files] === RUN TestIPLogPermissions === RUN TestIPLogPermissions/new 2026/11/05 03:06:59 INFO logging honeypot IP addresses foutName=/home/buildozer/aports/community/anubis/tmp/TestIPLogPermissionsnew3816119104/001/ips.log === RUN TestIPLogPermissions/existing 2026/11/05 03:06:59 INFO logging honeypot IP addresses foutName=/home/buildozer/aports/community/anubis/tmp/TestIPLogPermissionsexisting3786024423/001/ips.log --- PASS: TestIPLogPermissions (0.00s) --- PASS: TestIPLogPermissions/new (0.00s) --- PASS: TestIPLogPermissions/existing (0.00s) === RUN TestInvalidClientIP === RUN TestInvalidClientIP/#00 2026/11/05 03:06:59 ERROR clampIP failed component=honeypot/naive host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" output="" ok=false === RUN TestInvalidClientIP/invalid 2026/11/05 03:06:59 ERROR clampIP failed component=honeypot/naive host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip=invalid output="" ok=false === RUN TestInvalidClientIP/1.2.3.999 2026/11/05 03:06:59 ERROR clampIP failed component=honeypot/naive host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip=1.2.3.999 output="" ok=false --- PASS: TestInvalidClientIP (0.00s) --- PASS: TestInvalidClientIP/#00 (0.00s) --- PASS: TestInvalidClientIP/invalid (0.00s) --- PASS: TestInvalidClientIP/1.2.3.999 (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/honeypot/naive 0.015s === RUN TestParse === RUN TestParse/openai-style === RUN TestParse/empty_prefixes === RUN TestParse/invalid_json === RUN TestParse/empty_body === RUN TestParse/skips_objects_with_no_prefixes === RUN TestParse/both_prefixes_prefers_ipv4 --- PASS: TestParse (0.00s) --- PASS: TestParse/openai-style (0.00s) --- PASS: TestParse/empty_prefixes (0.00s) --- PASS: TestParse/invalid_json (0.00s) --- PASS: TestParse/empty_body (0.00s) --- PASS: TestParse/skips_objects_with_no_prefixes (0.00s) --- PASS: TestParse/both_prefixes_prefers_ipv4 (0.00s) === RUN TestParseNilReader --- PASS: TestParseNilReader (0.00s) === RUN TestCIDRsNilReceiver --- PASS: TestCIDRsNilReceiver (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/iplist 0.006s === RUN TestYAMLList === RUN TestYAMLList/simple_happy === RUN TestYAMLList/simple_happy/embed_fs multifile_test.go:40: multifile: [testdata/a.yaml testdata/b.yaml] === RUN TestYAMLList/simple_happy/os multifile_test.go:40: multifile: [testdata/a.yaml testdata/b.yaml] === RUN TestYAMLList/invalid_object_when_wanted_list === RUN TestYAMLList/invalid_object_when_wanted_list/embed_fs multifile_test.go:40: multifile: [testdata/object.yaml] multifile_test.go:64: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal object into Go value of type []multifile.data === RUN TestYAMLList/invalid_object_when_wanted_list/os multifile_test.go:40: multifile: [testdata/object.yaml] multifile_test.go:64: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal object into Go value of type []multifile.data === RUN TestYAMLList/mixed_indentation === RUN TestYAMLList/mixed_indentation/embed_fs multifile_test.go:40: multifile: [testdata/a.yaml testdata/b.yaml testdata/indented.yaml] === RUN TestYAMLList/mixed_indentation/os multifile_test.go:40: multifile: [testdata/a.yaml testdata/b.yaml testdata/indented.yaml] === RUN TestYAMLList/mixed_json_and_yaml === RUN TestYAMLList/mixed_json_and_yaml/embed_fs multifile_test.go:40: multifile: [testdata/a.yaml testdata/data.json] === RUN TestYAMLList/mixed_json_and_yaml/os multifile_test.go:40: multifile: [testdata/a.yaml testdata/data.json] --- PASS: TestYAMLList (0.00s) --- PASS: TestYAMLList/simple_happy (0.00s) --- PASS: TestYAMLList/simple_happy/embed_fs (0.00s) --- PASS: TestYAMLList/simple_happy/os (0.00s) --- PASS: TestYAMLList/invalid_object_when_wanted_list (0.00s) --- PASS: TestYAMLList/invalid_object_when_wanted_list/embed_fs (0.00s) --- PASS: TestYAMLList/invalid_object_when_wanted_list/os (0.00s) --- PASS: TestYAMLList/mixed_indentation (0.00s) --- PASS: TestYAMLList/mixed_indentation/embed_fs (0.00s) --- PASS: TestYAMLList/mixed_indentation/os (0.00s) --- PASS: TestYAMLList/mixed_json_and_yaml (0.00s) --- PASS: TestYAMLList/mixed_json_and_yaml/embed_fs (0.00s) --- PASS: TestYAMLList/mixed_json_and_yaml/os (0.00s) === RUN TestReadAllOfData multifile_test.go:128: [apps/allow-api-routes.yaml apps/bookstack-saml.yaml apps/gitea-rss-feeds.yaml apps/qualys-ssl-labs.yml apps/searx-checker.yml bots/_deny-pathological.yaml bots/aggressive-brazilian-scrapers.yaml bots/ai-catchall.yaml bots/ai-robots-txt.yaml bots/cloudflare-kitesurf.yaml bots/cloudflare-workers.yaml bots/custom-async-http-client.yaml bots/headless-browsers.yaml bots/irc-bots/archlinux-phrik.yaml bots/irc-bots/gentoo-chat.yaml bots/lyrenth.yaml bots/spec-violations.yaml bots/us-ai-scraper.yaml clients/ai.yaml clients/docker-client.yaml clients/git.yaml clients/go-get.yaml clients/google-user-triggered-fetchers.yaml clients/mistral-mistralai-user.yaml clients/openai-chatgpt-user.yaml clients/perplexity-user.yaml clients/telegram-preview.yaml clients/vk-preview.yaml clients/x-firefox-ai.yaml common/acts-like-browser.yaml common/allow-api-like.yaml common/allow-private-addresses.yaml common/domain-fronting.yaml common/json-api.yaml common/keep-internet-working.yaml common/rfc-violations.yaml crawlers/_allow-good.yaml crawlers/ai-search.yaml crawlers/ai-training.yaml crawlers/alibaba-cloud.yaml crawlers/applebot.yaml crawlers/arquivo-pt.yaml crawlers/bingbot.yaml crawlers/commoncrawl.yaml crawlers/duckduckbot.yaml crawlers/googlebot.yaml crawlers/huawei-cloud.yaml crawlers/internet-archive.yaml crawlers/kagibot.yaml crawlers/marginalia.yaml crawlers/mojeekbot.yaml crawlers/openai-gptbot.yaml crawlers/openai-searchbot.yaml crawlers/perplexitybot.yaml crawlers/qwantbot.yaml crawlers/tencent-cloud.yaml crawlers/wikimedia-citoid.yaml crawlers/xai.yaml crawlers/yandexbot.yaml meta/ai-block-aggressive.yaml meta/ai-block-moderate.yaml meta/ai-block-permissive.yaml meta/default-config.yaml meta/messengers-preview.yaml services/updown.yaml services/uptime-robot.yaml] multifile_test.go:150: read 1 entries --- PASS: TestReadAllOfData (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/multifile 0.007s === RUN TestCacheReturnsDefault === RUN TestCacheReturnsDefault/og:title === RUN TestCacheReturnsDefault/og:description --- PASS: TestCacheReturnsDefault (0.00s) --- PASS: TestCacheReturnsDefault/og:title (0.00s) --- PASS: TestCacheReturnsDefault/og:description (0.00s) === RUN TestCheckCache --- PASS: TestCheckCache (0.00s) === RUN TestGetOGTags === RUN TestGetOGTags/metadata_does_not_authorize_assets --- PASS: TestGetOGTags (0.00s) --- PASS: TestGetOGTags/metadata_does_not_authorize_assets (0.00s) === RUN TestGetOGTagsWithHostConsideration === RUN TestGetOGTagsWithHostConsideration/Host_Not_Considered_-_Same_Host === RUN TestGetOGTagsWithHostConsideration/Host_Not_Considered_-_Different_Host === RUN TestGetOGTagsWithHostConsideration/Host_Considered_-_Same_Host === RUN TestGetOGTagsWithHostConsideration/Host_Considered_-_Different_Host --- PASS: TestGetOGTagsWithHostConsideration (0.00s) --- PASS: TestGetOGTagsWithHostConsideration/Host_Not_Considered_-_Same_Host (0.00s) --- PASS: TestGetOGTagsWithHostConsideration/Host_Not_Considered_-_Different_Host (0.00s) --- PASS: TestGetOGTagsWithHostConsideration/Host_Considered_-_Same_Host (0.00s) --- PASS: TestGetOGTagsWithHostConsideration/Host_Considered_-_Different_Host (0.00s) === RUN TestFetchHTMLDocument === RUN TestFetchHTMLDocument/Valid_HTML === RUN TestFetchHTMLDocument/Empty_HTML === RUN TestFetchHTMLDocument/Not_found_error === RUN TestFetchHTMLDocument/Unsupported_Content-Type === RUN TestFetchHTMLDocument/Too_large_content --- PASS: TestFetchHTMLDocument (0.00s) --- PASS: TestFetchHTMLDocument/Valid_HTML (0.00s) --- PASS: TestFetchHTMLDocument/Empty_HTML (0.00s) --- PASS: TestFetchHTMLDocument/Not_found_error (0.00s) --- PASS: TestFetchHTMLDocument/Unsupported_Content-Type (0.00s) --- PASS: TestFetchHTMLDocument/Too_large_content (0.00s) === RUN TestFetchHTMLDocumentInvalidURL --- PASS: TestFetchHTMLDocumentInvalidURL (0.01s) === RUN TestFetchForwardsOriginalHostHeader === RUN TestFetchForwardsOriginalHostHeader/target_host_pinned,_original_host_still_forwarded === RUN TestFetchForwardsOriginalHostHeader/no_target_host_falls_back_to_original_host === RUN TestFetchForwardsOriginalHostHeader/no_original_host_means_no_forwarded_host_header --- PASS: TestFetchForwardsOriginalHostHeader (0.00s) --- PASS: TestFetchForwardsOriginalHostHeader/target_host_pinned,_original_host_still_forwarded (0.00s) --- PASS: TestFetchForwardsOriginalHostHeader/no_target_host_falls_back_to_original_host (0.00s) --- PASS: TestFetchForwardsOriginalHostHeader/no_original_host_means_no_forwarded_host_header (0.00s) === RUN TestIntegrationGetOGTags === RUN TestIntegrationGetOGTags/Simple_page === RUN TestIntegrationGetOGTags/Complete_page === RUN TestIntegrationGetOGTags/Page_with_no_OG_tags === RUN TestIntegrationGetOGTags/Nonexistent_page --- PASS: TestIntegrationGetOGTags (0.00s) --- PASS: TestIntegrationGetOGTags/Simple_page (0.00s) --- PASS: TestIntegrationGetOGTags/Complete_page (0.00s) --- PASS: TestIntegrationGetOGTags/Page_with_no_OG_tags (0.00s) --- PASS: TestIntegrationGetOGTags/Nonexistent_page (0.00s) === RUN TestMemoryUsage mem_test.go:112: Memory allocated for 10k getTarget calls: mem_test.go:113: Total: 625.14 KB (0.61 MB) mem_test.go:114: Per operation: 64.01 bytes mem_test.go:143: Memory allocated for 1k extractOGTags calls: mem_test.go:144: Total: 328.12 KB (0.32 MB) mem_test.go:145: Per operation: 336.00 bytes --- PASS: TestMemoryUsage (0.01s) === RUN TestNewOGTagCache === RUN TestNewOGTagCache/Basic_initialization === RUN TestNewOGTagCache/Empty_target --- PASS: TestNewOGTagCache (0.00s) --- PASS: TestNewOGTagCache/Basic_initialization (0.00s) --- PASS: TestNewOGTagCache/Empty_target (0.00s) === RUN TestNewOGTagCache_UnixSocket --- PASS: TestNewOGTagCache_UnixSocket (0.00s) === RUN TestGetTarget === RUN TestGetTarget/No_path_or_query === RUN TestGetTarget/With_complex_path === RUN TestGetTarget/With_query_and_path === RUN TestGetTarget/Unix_socket_target === RUN TestGetTarget/Unix_socket_target_with_/// --- PASS: TestGetTarget (0.00s) --- PASS: TestGetTarget/No_path_or_query (0.00s) --- PASS: TestGetTarget/With_complex_path (0.00s) --- PASS: TestGetTarget/With_query_and_path (0.00s) --- PASS: TestGetTarget/Unix_socket_target (0.00s) --- PASS: TestGetTarget/Unix_socket_target_with_/// (0.00s) === RUN TestIntegrationGetOGTags_UnixSocket --- PASS: TestIntegrationGetOGTags_UnixSocket (0.10s) === RUN TestGetOGTagsWithTargetHostOverride === RUN TestGetOGTagsWithTargetHostOverride/default_host_uses_original === RUN TestGetOGTagsWithTargetHostOverride/override_host_respected --- PASS: TestGetOGTagsWithTargetHostOverride (0.00s) --- PASS: TestGetOGTagsWithTargetHostOverride/default_host_uses_original (0.00s) --- PASS: TestGetOGTagsWithTargetHostOverride/override_host_respected (0.00s) === RUN TestGetOGTagsWithInsecureSkipVerify 2026/11/05 03:06:59 http: TLS handshake error from 127.0.0.1:52164: remote error: tls: bad certificate --- PASS: TestGetOGTagsWithInsecureSkipVerify (0.03s) === RUN TestGetOGTagsWithTargetSNI === RUN TestGetOGTagsWithTargetSNI/explicit_SNI_override === RUN TestGetOGTagsWithTargetSNI/auto_SNI_uses_original_host === RUN TestGetOGTagsWithTargetSNI/default_SNI_uses_backend_host --- PASS: TestGetOGTagsWithTargetSNI (0.64s) --- PASS: TestGetOGTagsWithTargetSNI/explicit_SNI_override (0.41s) --- PASS: TestGetOGTagsWithTargetSNI/auto_SNI_uses_original_host (0.15s) --- PASS: TestGetOGTagsWithTargetSNI/default_SNI_uses_backend_host (0.08s) === RUN TestExtractOGTags === RUN TestExtractOGTags/Basic_OG_tags === RUN TestExtractOGTags/OG_tags_with_name_attribute === RUN TestExtractOGTags/No_approved_OG_tags === RUN TestExtractOGTags/Empty_content === RUN TestExtractOGTags/Explicitly_approved_tag --- PASS: TestExtractOGTags (0.00s) --- PASS: TestExtractOGTags/Basic_OG_tags (0.00s) --- PASS: TestExtractOGTags/OG_tags_with_name_attribute (0.00s) --- PASS: TestExtractOGTags/No_approved_OG_tags (0.00s) --- PASS: TestExtractOGTags/Empty_content (0.00s) --- PASS: TestExtractOGTags/Explicitly_approved_tag (0.00s) === RUN TestIsOGMetaTag === RUN TestIsOGMetaTag/Meta_OG_tag === RUN TestIsOGMetaTag/Regular_meta_tag === RUN TestIsOGMetaTag/Not_a_meta_tag --- PASS: TestIsOGMetaTag (0.00s) --- PASS: TestIsOGMetaTag/Meta_OG_tag (0.00s) --- PASS: TestIsOGMetaTag/Regular_meta_tag (0.00s) --- PASS: TestIsOGMetaTag/Not_a_meta_tag (0.00s) === RUN TestExtractMetaTagInfo === RUN TestExtractMetaTagInfo/OG_title_with_property_(approved_by_prefix) === RUN TestExtractMetaTagInfo/OG_description_with_name_(approved_by_prefix) === RUN TestExtractMetaTagInfo/Regular_meta_tag_(name=description,_approved_by_exact_match) === RUN TestExtractMetaTagInfo/Regular_meta_tag_(name=keywords,_not_approved) === RUN TestExtractMetaTagInfo/Twitter_tag_(not_approved_by_default) === RUN TestExtractMetaTagInfo/No_content_(but_approved_property) === RUN TestExtractMetaTagInfo/No_property/name_attribute === RUN TestExtractMetaTagInfo/Explicitly_approved_tag_with_property_attribute --- PASS: TestExtractMetaTagInfo (0.00s) --- PASS: TestExtractMetaTagInfo/OG_title_with_property_(approved_by_prefix) (0.00s) --- PASS: TestExtractMetaTagInfo/OG_description_with_name_(approved_by_prefix) (0.00s) --- PASS: TestExtractMetaTagInfo/Regular_meta_tag_(name=description,_approved_by_exact_match) (0.00s) --- PASS: TestExtractMetaTagInfo/Regular_meta_tag_(name=keywords,_not_approved) (0.00s) --- PASS: TestExtractMetaTagInfo/Twitter_tag_(not_approved_by_default) (0.00s) --- PASS: TestExtractMetaTagInfo/No_content_(but_approved_property) (0.00s) --- PASS: TestExtractMetaTagInfo/No_property/name_attribute (0.00s) --- PASS: TestExtractMetaTagInfo/Explicitly_approved_tag_with_property_attribute (0.00s) === RUN TestOGRedirectOrigin === RUN TestOGRedirectOrigin/#00 === RUN TestOGRedirectOrigin/auto --- PASS: TestOGRedirectOrigin (0.00s) --- PASS: TestOGRedirectOrigin/#00 (0.00s) --- PASS: TestOGRedirectOrigin/auto (0.00s) === RUN TestSNIClientCacheBounded --- PASS: TestSNIClientCacheBounded (0.00s) === RUN FuzzGetTarget === RUN FuzzGetTarget/seed#0 === RUN FuzzGetTarget/seed#1 === RUN FuzzGetTarget/seed#2 === RUN FuzzGetTarget/seed#3 === RUN FuzzGetTarget/seed#4 === RUN FuzzGetTarget/seed#5 === RUN FuzzGetTarget/seed#6 === RUN FuzzGetTarget/seed#7 === RUN FuzzGetTarget/seed#8 === RUN FuzzGetTarget/seed#9 === RUN FuzzGetTarget/seed#10 === RUN FuzzGetTarget/seed#11 === RUN FuzzGetTarget/seed#12 === RUN FuzzGetTarget/seed#13 === RUN FuzzGetTarget/seed#14 --- PASS: FuzzGetTarget (0.00s) --- PASS: FuzzGetTarget/seed#0 (0.00s) --- PASS: FuzzGetTarget/seed#1 (0.00s) --- PASS: FuzzGetTarget/seed#2 (0.00s) --- PASS: FuzzGetTarget/seed#3 (0.00s) --- PASS: FuzzGetTarget/seed#4 (0.00s) --- PASS: FuzzGetTarget/seed#5 (0.00s) --- PASS: FuzzGetTarget/seed#6 (0.00s) --- PASS: FuzzGetTarget/seed#7 (0.00s) --- PASS: FuzzGetTarget/seed#8 (0.00s) --- PASS: FuzzGetTarget/seed#9 (0.00s) --- PASS: FuzzGetTarget/seed#10 (0.00s) --- PASS: FuzzGetTarget/seed#11 (0.00s) --- PASS: FuzzGetTarget/seed#12 (0.00s) --- PASS: FuzzGetTarget/seed#13 (0.00s) --- PASS: FuzzGetTarget/seed#14 (0.00s) === RUN FuzzExtractOGTags === RUN FuzzExtractOGTags/seed#0 === RUN FuzzExtractOGTags/seed#1 === RUN FuzzExtractOGTags/seed#2 === RUN FuzzExtractOGTags/seed#3 === RUN FuzzExtractOGTags/seed#4 === RUN FuzzExtractOGTags/seed#5 === RUN FuzzExtractOGTags/seed#6 === RUN FuzzExtractOGTags/seed#7 === RUN FuzzExtractOGTags/seed#8 === RUN FuzzExtractOGTags/seed#9 === RUN FuzzExtractOGTags/seed#10 === RUN FuzzExtractOGTags/seed#11 === RUN FuzzExtractOGTags/seed#12 === RUN FuzzExtractOGTags/seed#13 === RUN FuzzExtractOGTags/seed#14 === RUN FuzzExtractOGTags/seed#15 === RUN FuzzExtractOGTags/seed#16 === RUN FuzzExtractOGTags/seed#17 === RUN FuzzExtractOGTags/seed#18 === RUN FuzzExtractOGTags/seed#19 === RUN FuzzExtractOGTags/seed#20 === RUN FuzzExtractOGTags/seed#21 --- PASS: FuzzExtractOGTags (0.01s) --- PASS: FuzzExtractOGTags/seed#0 (0.00s) --- PASS: FuzzExtractOGTags/seed#1 (0.00s) --- PASS: FuzzExtractOGTags/seed#2 (0.00s) --- PASS: FuzzExtractOGTags/seed#3 (0.00s) --- PASS: FuzzExtractOGTags/seed#4 (0.00s) --- PASS: FuzzExtractOGTags/seed#5 (0.00s) --- PASS: FuzzExtractOGTags/seed#6 (0.00s) --- PASS: FuzzExtractOGTags/seed#7 (0.00s) --- PASS: FuzzExtractOGTags/seed#8 (0.00s) --- PASS: FuzzExtractOGTags/seed#9 (0.00s) --- PASS: FuzzExtractOGTags/seed#10 (0.00s) --- PASS: FuzzExtractOGTags/seed#11 (0.00s) --- PASS: FuzzExtractOGTags/seed#12 (0.01s) --- PASS: FuzzExtractOGTags/seed#13 (0.00s) --- PASS: FuzzExtractOGTags/seed#14 (0.00s) --- PASS: FuzzExtractOGTags/seed#15 (0.00s) --- PASS: FuzzExtractOGTags/seed#16 (0.00s) --- PASS: FuzzExtractOGTags/seed#17 (0.00s) --- PASS: FuzzExtractOGTags/seed#18 (0.00s) --- PASS: FuzzExtractOGTags/seed#19 (0.00s) --- PASS: FuzzExtractOGTags/seed#20 (0.00s) --- PASS: FuzzExtractOGTags/seed#21 (0.00s) === RUN FuzzGetTargetRoundTrip === RUN FuzzGetTargetRoundTrip/seed#0 === RUN FuzzGetTargetRoundTrip/seed#1 --- PASS: FuzzGetTargetRoundTrip (0.00s) --- PASS: FuzzGetTargetRoundTrip/seed#0 (0.00s) --- PASS: FuzzGetTargetRoundTrip/seed#1 (0.00s) === RUN FuzzExtractMetaTagInfo === RUN FuzzExtractMetaTagInfo/seed#0 === RUN FuzzExtractMetaTagInfo/seed#1 === RUN FuzzExtractMetaTagInfo/seed#2 === RUN FuzzExtractMetaTagInfo/seed#3 === RUN FuzzExtractMetaTagInfo/seed#4 === RUN FuzzExtractMetaTagInfo/seed#5 === RUN FuzzExtractMetaTagInfo/seed#6 --- PASS: FuzzExtractMetaTagInfo (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#0 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#1 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#2 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#3 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#4 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#5 (0.00s) --- PASS: FuzzExtractMetaTagInfo/seed#6 (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/ogtags 0.846s === RUN TestServiceSID === RUN TestServiceSID/TrustedInstaller_matches_the_published_SID === PAUSE TestServiceSID/TrustedInstaller_matches_the_published_SID === RUN TestServiceSID/the_pinned_Anubis_SID_is_the_derived_one === PAUSE TestServiceSID/the_pinned_Anubis_SID_is_the_derived_one === RUN TestServiceSID/case_in_the_service_name_does_not_matter === PAUSE TestServiceSID/case_in_the_service_name_does_not_matter === CONT TestServiceSID/TrustedInstaller_matches_the_published_SID === CONT TestServiceSID/case_in_the_service_name_does_not_matter === CONT TestServiceSID/the_pinned_Anubis_SID_is_the_derived_one --- PASS: TestServiceSID (0.00s) --- PASS: TestServiceSID/TrustedInstaller_matches_the_published_SID (0.00s) --- PASS: TestServiceSID/case_in_the_service_name_does_not_matter (0.00s) --- PASS: TestServiceSID/the_pinned_Anubis_SID_is_the_derived_one (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/servicesid 0.005s === RUN TestPlaywrightBlobWorkerBlockedByCSP csp_test.go:45: npx not found in PATH, skipping integration smoke testing: exec: "npx": executable file not found in $PATH --- SKIP: TestPlaywrightBlobWorkerBlockedByCSP (0.00s) === RUN TestPlaywrightWASMAlgorithms csp_test.go:91: npx not found in PATH, skipping integration smoke testing: exec: "npx": executable file not found in $PATH --- SKIP: TestPlaywrightWASMAlgorithms (0.00s) === RUN TestPlaywrightBrowser playwright_test.go:227: npx not found in PATH, skipping integration smoke testing: exec: "npx": executable file not found in $PATH --- SKIP: TestPlaywrightBrowser (0.00s) === RUN TestPlaywrightWithBasePrefix playwright_test.go:305: NOTE(Xe)\ these tests require HTTPS support in #364 --- SKIP: TestPlaywrightWithBasePrefix (0.00s) === RUN TestIntegrationServerLoadsDefaultPolicy {"time":"2026-11-05T03:07:00.437703921Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["BR","CN"]}} {"time":"2026-11-05T03:07:00.437799075Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335,136907,45102]}} server_setup_test.go:9: http://127.0.0.1:39873 --- PASS: TestIntegrationServerLoadsDefaultPolicy (0.15s) PASS ok github.com/TecharoHQ/anubis/internal/test 0.177s === RUN TestLoadPolicies === RUN TestLoadPolicies/botPolicies.yaml {"time":"2026-11-05T03:07:00.44388678Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["BR","CN"]}} {"time":"2026-11-05T03:07:00.444004851Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335,136907,45102]}} --- PASS: TestLoadPolicies (0.04s) --- PASS: TestLoadPolicies/botPolicies.yaml (0.04s) === RUN TestCVE2025_24369 anubis_test.go:263: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:00.598353112Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:45799","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.598712282Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:45799","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8e76-7888-884f-28d8b34ad08e","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.598840865Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:45799","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:00.598562801Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-8e76-7888-884f-28d8b34ad08e","method":"fast","randomData":"04b426a5a2942eaacbfb57a342c5cb677c26244c65e31cb9adcda9ae5e7a6e6bf4e676f5410bcfd7f9beda7eda7f2fa87ee2147a4e97370dfe15878ed8136412","policyRuleHash":"794dc14e5d44d33b","difficulty":1,"spent":false,"extensions":null},"rules":{"algorithm":"fast","difficulty":1},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:45799/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-8e76-7888-884f-28d8b34ad08e; Path=/; Expires=Thu, 05 Nov 2026 03:07:00 GMT anubis_test.go:196: requested cookies for http://127.0.0.1:45799/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=0&id=01a1a9ac-8e76-7888-884f-28d8b34ad08e&nonce=0&redir=%2F&response=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-8e76-7888-884f-28d8b34ad08e; Path=/; Expires=Thu, 05 Nov 2026 03:07:00 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:00.599907536Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:45799","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.60010389Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":710},"msg":"challenge validate call failed","host":"127.0.0.1:45799","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8e76-7888-884f-28d8b34ad08e","err":"challenge: error when processing challenge: validate: challenge: user failed challenge"} anubis_test.go:45: {"time":"2026-11-05T03:07:00.600172452Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":716},"msg":"challenge failed","host":"127.0.0.1:45799","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8e76-7888-884f-28d8b34ad08e","err":"challenge: error when processing challenge: validate: challenge: user failed challenge"} anubis_test.go:210: set cookie: http://127.0.0.1:45799/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=0&id=01a1a9ac-8e76-7888-884f-28d8b34ad08e&nonce=0&redir=%2F&response=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:00 GMT; Max-Age=0 --- PASS: TestCVE2025_24369 (0.16s) === RUN TestCookieSettings === RUN TestCookieSettings/secure_samesite_none_is_preserved anubis_test.go:346: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:00.720979772Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:45443","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.721223061Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:45443","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8ef1-727d-b409-7df78475f4cb","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.721307847Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:45443","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:00.721167323Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-8ef1-727d-b409-7df78475f4cb","method":"fast","randomData":"dc2082d00e3ca94f6f534567bec9b9911a857fb7407c340557fd53253a115b13876d4b4faf1bee5cbee450c932f23991a364436efaf2e2d08fc89ee923692c29","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:45443/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-8ef1-727d-b409-7df78475f4cb; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; Secure; SameSite=None; Partitioned anubis_test.go:366: lib.challengeResp{ID:"01a1a9ac-8ef1-727d-b409-7df78475f4cb", Challenge:"dc2082d00e3ca94f6f534567bec9b9911a857fb7407c340557fd53253a115b13876d4b4faf1bee5cbee450c932f23991a364436efaf2e2d08fc89ee923692c29"} anubis_test.go:366: elapsedTime=420&id=01a1a9ac-8ef1-727d-b409-7df78475f4cb&nonce=0&redir=%2F&response=574fd9a67a013d3cc64411aae3fafbf650f1cb56004932a20ff371cb88bad3bb anubis_test.go:196: requested cookies for http://127.0.0.1:45443/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-8ef1-727d-b409-7df78475f4cb&nonce=0&redir=%2F&response=574fd9a67a013d3cc64411aae3fafbf650f1cb56004932a20ff371cb88bad3bb anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-8ef1-727d-b409-7df78475f4cb; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; Secure; SameSite=None; Partitioned anubis_test.go:45: {"time":"2026-11-05T03:07:00.722242216Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:45443","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.722425719Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:45443","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8ef1-727d-b409-7df78475f4cb","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:00.722572627Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:45443","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8ef1-727d-b409-7df78475f4cb"} anubis_test.go:45: {"time":"2026-11-05T03:07:00.722874448Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:45443","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8ef1-727d-b409-7df78475f4cb"} anubis_test.go:210: set cookie: http://127.0.0.1:45443/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-8ef1-727d-b409-7df78475f4cb&nonce=0&redir=%2F&response=574fd9a67a013d3cc64411aae3fafbf650f1cb56004932a20ff371cb88bad3bb -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZWYxLTcyN2QtYjQwOS03ZGY3ODQ3NWY0Y2IiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ._34BrpsUojECu6nwuCy-r-OlQNr099dvj0RTPk3-lsJOHzwnOwC_bAsP8s45wr5oH5zp6hv5TrkLq5YGxAx3Cg; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; Secure; SameSite=None; Partitioned anubis_test.go:377: &http.Cookie{Name:"techaro.lol-anubis", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZWYxLTcyN2QtYjQwOS03ZGY3ODQ3NWY0Y2IiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ._34BrpsUojECu6nwuCy-r-OlQNr099dvj0RTPk3-lsJOHzwnOwC_bAsP8s45wr5oH5zp6hv5TrkLq5YGxAx3Cg", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2026, time.November, 12, 3, 7, 0, 0, time.UTC), RawExpires:"Thu, 12 Nov 2026 03:07:00 GMT", MaxAge:0, Secure:true, HttpOnly:false, SameSite:4, Partitioned:true, Raw:"techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZWYxLTcyN2QtYjQwOS03ZGY3ODQ3NWY0Y2IiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ._34BrpsUojECu6nwuCy-r-OlQNr099dvj0RTPk3-lsJOHzwnOwC_bAsP8s45wr5oH5zp6hv5TrkLq5YGxAx3Cg; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; Secure; SameSite=None; Partitioned", Unparsed:[]string(nil)} === RUN TestCookieSettings/secure_samesite_none_with_httponly_is_preserved anubis_test.go:346: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:00.901465431Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40691","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.901716021Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:40691","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.901790882Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:40691","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:00.901667466Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab","method":"fast","randomData":"f053cc94e3ec7577e8cfc7a0c5fde3bc88c0f5e1d8e70924a3ee368bac4d1747034bd6ae5cc7b821c8f9427a40ee80b94cb4d2150830d41fbe65a0f544695676","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:40691/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; HttpOnly; Secure; SameSite=None; Partitioned anubis_test.go:366: lib.challengeResp{ID:"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab", Challenge:"f053cc94e3ec7577e8cfc7a0c5fde3bc88c0f5e1d8e70924a3ee368bac4d1747034bd6ae5cc7b821c8f9427a40ee80b94cb4d2150830d41fbe65a0f544695676"} anubis_test.go:366: elapsedTime=420&id=01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab&nonce=0&redir=%2F&response=a4891ddeb6ce6ce2b581a6c4ddb4947426a14b3d00e54d92b687f3d54721f1dc anubis_test.go:196: requested cookies for http://127.0.0.1:40691/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab&nonce=0&redir=%2F&response=a4891ddeb6ce6ce2b581a6c4ddb4947426a14b3d00e54d92b687f3d54721f1dc anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; HttpOnly; Secure; SameSite=None; Partitioned anubis_test.go:45: {"time":"2026-11-05T03:07:00.902720172Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40691","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:00.902890873Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:40691","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:00.902994367Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:40691","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab"} anubis_test.go:45: {"time":"2026-11-05T03:07:00.903274056Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:40691","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab"} anubis_test.go:210: set cookie: http://127.0.0.1:40691/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-8fa5-7a22-8438-39fa9a11a0ab&nonce=0&redir=%2F&response=a4891ddeb6ce6ce2b581a6c4ddb4947426a14b3d00e54d92b687f3d54721f1dc -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZmE1LTdhMjItODQzOC0zOWZhOWExMWEwYWIiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.tinWZJVFospCD25gDBMZfv2uNp2MOWCzqVr-J_B93nFa-Na7kSFpupXUgFdoONRQqHCdR_ztJPar3ZS5YPYLAg; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; HttpOnly; Secure; SameSite=None; Partitioned anubis_test.go:377: &http.Cookie{Name:"techaro.lol-anubis", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZmE1LTdhMjItODQzOC0zOWZhOWExMWEwYWIiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.tinWZJVFospCD25gDBMZfv2uNp2MOWCzqVr-J_B93nFa-Na7kSFpupXUgFdoONRQqHCdR_ztJPar3ZS5YPYLAg", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2026, time.November, 12, 3, 7, 0, 0, time.UTC), RawExpires:"Thu, 12 Nov 2026 03:07:00 GMT", MaxAge:0, Secure:true, HttpOnly:true, SameSite:4, Partitioned:true, Raw:"techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy04ZmE1LTdhMjItODQzOC0zOWZhOWExMWEwYWIiLCJleHAiOjE3OTQ0NTI4MjAsImlhdCI6MTc5Mzg0ODAyMCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MCwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.tinWZJVFospCD25gDBMZfv2uNp2MOWCzqVr-J_B93nFa-Na7kSFpupXUgFdoONRQqHCdR_ztJPar3ZS5YPYLAg; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:00 GMT; HttpOnly; Secure; SameSite=None; Partitioned", Unparsed:[]string(nil)} === RUN TestCookieSettings/insecure_samesite_none_downgrades_to_lax anubis_test.go:346: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:01.086356495Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:37745","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.086669095Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:37745","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-905e-7895-b941-4b3efc65e222","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.086757561Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:37745","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:01.086566743Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-905e-7895-b941-4b3efc65e222","method":"fast","randomData":"ac8bed9da2c443a314d91336e02c531fc3db7b9e19d86ec0dd94e0c924353d733d7ed8f78b174608cd82f19282a1e3d41661fa18d9c27001cc84e2a407afd0b1","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:37745/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-905e-7895-b941-4b3efc65e222; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; SameSite=Lax; Partitioned anubis_test.go:366: lib.challengeResp{ID:"01a1a9ac-905e-7895-b941-4b3efc65e222", Challenge:"ac8bed9da2c443a314d91336e02c531fc3db7b9e19d86ec0dd94e0c924353d733d7ed8f78b174608cd82f19282a1e3d41661fa18d9c27001cc84e2a407afd0b1"} anubis_test.go:366: elapsedTime=420&id=01a1a9ac-905e-7895-b941-4b3efc65e222&nonce=0&redir=%2F&response=47257cad5da9bf890a82a62a13e3c40158ba6f65515a192955a474a75d7394fb anubis_test.go:196: requested cookies for http://127.0.0.1:37745/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-905e-7895-b941-4b3efc65e222&nonce=0&redir=%2F&response=47257cad5da9bf890a82a62a13e3c40158ba6f65515a192955a474a75d7394fb anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-905e-7895-b941-4b3efc65e222; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; SameSite=Lax; Partitioned anubis_test.go:45: {"time":"2026-11-05T03:07:01.087920616Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:37745","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.088148Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:37745","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-905e-7895-b941-4b3efc65e222","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:01.088263518Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:37745","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-905e-7895-b941-4b3efc65e222"} anubis_test.go:45: {"time":"2026-11-05T03:07:01.088535317Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:37745","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-905e-7895-b941-4b3efc65e222"} anubis_test.go:210: set cookie: http://127.0.0.1:37745/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-905e-7895-b941-4b3efc65e222&nonce=0&redir=%2F&response=47257cad5da9bf890a82a62a13e3c40158ba6f65515a192955a474a75d7394fb -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MDVlLTc4OTUtYjk0MS00YjNlZmM2NWUyMjIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.DcYdo2ynRfRKYGwJXSVIU9Mwiq4m1mt52-j1gyPuK3QWFqsmYaC15cl5bbP2VOJgihnNwGXZ75YwWY3sdTzbAQ; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; SameSite=Lax; Partitioned anubis_test.go:377: &http.Cookie{Name:"techaro.lol-anubis", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MDVlLTc4OTUtYjk0MS00YjNlZmM2NWUyMjIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.DcYdo2ynRfRKYGwJXSVIU9Mwiq4m1mt52-j1gyPuK3QWFqsmYaC15cl5bbP2VOJgihnNwGXZ75YwWY3sdTzbAQ", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2026, time.November, 12, 3, 7, 1, 0, time.UTC), RawExpires:"Thu, 12 Nov 2026 03:07:01 GMT", MaxAge:0, Secure:false, HttpOnly:false, SameSite:2, Partitioned:true, Raw:"techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MDVlLTc4OTUtYjk0MS00YjNlZmM2NWUyMjIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.DcYdo2ynRfRKYGwJXSVIU9Mwiq4m1mt52-j1gyPuK3QWFqsmYaC15cl5bbP2VOJgihnNwGXZ75YwWY3sdTzbAQ; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; SameSite=Lax; Partitioned", Unparsed:[]string(nil)} === RUN TestCookieSettings/insecure_samesite_lax_with_httponly_is_preserved anubis_test.go:346: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:01.268185694Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:34665","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.26862609Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:34665","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9114-7797-b48d-3979ad4d9552","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.268756825Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:34665","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:01.268501992Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-9114-7797-b48d-3979ad4d9552","method":"fast","randomData":"e4ae4253a55f229e4b4f761095016137ef726195df8d781524fe2647a4809a5419b8d941c5b8d571acb1fd24447610cc6bd896dc83903eefe7e48d6ccbd3e6e6","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:34665/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-9114-7797-b48d-3979ad4d9552; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; HttpOnly; SameSite=Lax anubis_test.go:366: lib.challengeResp{ID:"01a1a9ac-9114-7797-b48d-3979ad4d9552", Challenge:"e4ae4253a55f229e4b4f761095016137ef726195df8d781524fe2647a4809a5419b8d941c5b8d571acb1fd24447610cc6bd896dc83903eefe7e48d6ccbd3e6e6"} anubis_test.go:366: elapsedTime=420&id=01a1a9ac-9114-7797-b48d-3979ad4d9552&nonce=0&redir=%2F&response=87522c7ace2dcb3ec94d9e369e1c3ae73ce6d4066ecd88ab78d228c20738eb87 anubis_test.go:196: requested cookies for http://127.0.0.1:34665/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9114-7797-b48d-3979ad4d9552&nonce=0&redir=%2F&response=87522c7ace2dcb3ec94d9e369e1c3ae73ce6d4066ecd88ab78d228c20738eb87 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-9114-7797-b48d-3979ad4d9552; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; HttpOnly; SameSite=Lax anubis_test.go:45: {"time":"2026-11-05T03:07:01.270899622Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:34665","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.271073785Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:34665","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9114-7797-b48d-3979ad4d9552","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:01.271194465Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:34665","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9114-7797-b48d-3979ad4d9552"} anubis_test.go:45: {"time":"2026-11-05T03:07:01.271420368Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:34665","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9114-7797-b48d-3979ad4d9552"} anubis_test.go:210: set cookie: http://127.0.0.1:34665/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9114-7797-b48d-3979ad4d9552&nonce=0&redir=%2F&response=87522c7ace2dcb3ec94d9e369e1c3ae73ce6d4066ecd88ab78d228c20738eb87 -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MTE0LTc3OTctYjQ4ZC0zOTc5YWQ0ZDk1NTIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.x17EpaTQ-suK-bg5rYEcfKrFKOisOrVWPn9FPny-9WOfNDMGTeU7T5fpSRCH1OZ3zfGyr81k8E94YHD2pvpQCw; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; HttpOnly; SameSite=Lax anubis_test.go:377: &http.Cookie{Name:"techaro.lol-anubis", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MTE0LTc3OTctYjQ4ZC0zOTc5YWQ0ZDk1NTIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.x17EpaTQ-suK-bg5rYEcfKrFKOisOrVWPn9FPny-9WOfNDMGTeU7T5fpSRCH1OZ3zfGyr81k8E94YHD2pvpQCw", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2026, time.November, 12, 3, 7, 1, 0, time.UTC), RawExpires:"Thu, 12 Nov 2026 03:07:01 GMT", MaxAge:0, Secure:false, HttpOnly:true, SameSite:2, Partitioned:false, Raw:"techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MTE0LTc3OTctYjQ4ZC0zOTc5YWQ0ZDk1NTIiLCJleHAiOjE3OTQ0NTI4MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.x17EpaTQ-suK-bg5rYEcfKrFKOisOrVWPn9FPny-9WOfNDMGTeU7T5fpSRCH1OZ3zfGyr81k8E94YHD2pvpQCw; Path=/; Domain=127.0.0.1; Expires=Thu, 12 Nov 2026 03:07:01 GMT; HttpOnly; SameSite=Lax", Unparsed:[]string(nil)} === RUN TestCookieSettings/custom_expiration_is_honored anubis_test.go:346: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:01.449890096Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:34513","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.450908535Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:34513","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-91ca-7c69-8f68-68f09808bcc7","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.451027309Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:34513","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:01.450817647Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-91ca-7c69-8f68-68f09808bcc7","method":"fast","randomData":"3566bbeb61c7852e65236591227e439ae58fd60bed2148f5a3c2632e806048d22bdcf3c92aabb6f301fdba12c3ef6ad406faca0ed8129461724799bd5df6d771","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:34513/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-91ca-7c69-8f68-68f09808bcc7; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:01 GMT; Secure; SameSite=Lax anubis_test.go:366: lib.challengeResp{ID:"01a1a9ac-91ca-7c69-8f68-68f09808bcc7", Challenge:"3566bbeb61c7852e65236591227e439ae58fd60bed2148f5a3c2632e806048d22bdcf3c92aabb6f301fdba12c3ef6ad406faca0ed8129461724799bd5df6d771"} anubis_test.go:366: elapsedTime=420&id=01a1a9ac-91ca-7c69-8f68-68f09808bcc7&nonce=0&redir=%2F&response=26680402602317f9a238d0065d52232b81ac64bcfc15b4e96938ac18219ace9f anubis_test.go:196: requested cookies for http://127.0.0.1:34513/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-91ca-7c69-8f68-68f09808bcc7&nonce=0&redir=%2F&response=26680402602317f9a238d0065d52232b81ac64bcfc15b4e96938ac18219ace9f anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-91ca-7c69-8f68-68f09808bcc7; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:01 GMT; Secure; SameSite=Lax anubis_test.go:45: {"time":"2026-11-05T03:07:01.453424594Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:34513","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.453629852Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:34513","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-91ca-7c69-8f68-68f09808bcc7","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:01.453739976Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:34513","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-91ca-7c69-8f68-68f09808bcc7"} anubis_test.go:45: {"time":"2026-11-05T03:07:01.453980626Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:34513","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-91ca-7c69-8f68-68f09808bcc7"} anubis_test.go:210: set cookie: http://127.0.0.1:34513/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-91ca-7c69-8f68-68f09808bcc7&nonce=0&redir=%2F&response=26680402602317f9a238d0065d52232b81ac64bcfc15b4e96938ac18219ace9f -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MWNhLTdjNjktOGY2OC02OGYwOTgwOGJjYzciLCJleHAiOjE3OTM4NDg2MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.Ck6AZi2TY1C7nqklz2BHIbfxr_8N_xcrVUw2diQMH-6Q2d2PnEVkq1pzyJU_rbaB_D-Co8oMjAkeZxmlbKPyBA; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:01 GMT; Secure; SameSite=Lax anubis_test.go:377: &http.Cookie{Name:"techaro.lol-anubis", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MWNhLTdjNjktOGY2OC02OGYwOTgwOGJjYzciLCJleHAiOjE3OTM4NDg2MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.Ck6AZi2TY1C7nqklz2BHIbfxr_8N_xcrVUw2diQMH-6Q2d2PnEVkq1pzyJU_rbaB_D-Co8oMjAkeZxmlbKPyBA", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2026, time.November, 5, 3, 17, 1, 0, time.UTC), RawExpires:"Thu, 05 Nov 2026 03:17:01 GMT", MaxAge:0, Secure:true, HttpOnly:false, SameSite:2, Partitioned:false, Raw:"techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05MWNhLTdjNjktOGY2OC02OGYwOTgwOGJjYzciLCJleHAiOjE3OTM4NDg2MjEsImlhdCI6MTc5Mzg0ODAyMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.Ck6AZi2TY1C7nqklz2BHIbfxr_8N_xcrVUw2diQMH-6Q2d2PnEVkq1pzyJU_rbaB_D-Co8oMjAkeZxmlbKPyBA; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:01 GMT; Secure; SameSite=Lax", Unparsed:[]string(nil)} --- PASS: TestCookieSettings (0.85s) --- PASS: TestCookieSettings/secure_samesite_none_is_preserved (0.12s) --- PASS: TestCookieSettings/secure_samesite_none_with_httponly_is_preserved (0.18s) --- PASS: TestCookieSettings/insecure_samesite_none_downgrades_to_lax (0.19s) --- PASS: TestCookieSettings/insecure_samesite_lax_with_httponly_is_preserved (0.18s) --- PASS: TestCookieSettings/custom_expiration_is_honored (0.18s) === RUN TestChallengeDoesNotClearAbsentCookie anubis_test.go:420: loading policy file: testdata/zero_difficulty.yaml === RUN TestChallengeDoesNotClearAbsentCookie/absent_cookie_is_left_alone === NAME TestChallengeDoesNotClearAbsentCookie anubis_test.go:45: {"time":"2026-11-05T03:07:01.629742601Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.629974496Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:01.630048026Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:01.630189446Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-927e-71f1-b858-acb70bc18b3b","weight":10} === NAME TestChallengeDoesNotClearAbsentCookie/absent_cookie_is_left_alone anubis_test.go:210: set cookie: http://127.0.0.1:35057/ -> techaro.lol-anubis-cookie-verification=01a1a9ac-927e-71f1-b858-acb70bc18b3b; Path=/; Expires=Thu, 05 Nov 2026 03:37:01 GMT anubis_test.go:466: &http.Cookie{Name:"techaro.lol-anubis-cookie-verification", Value:"01a1a9ac-927e-71f1-b858-acb70bc18b3b", Quoted:false, Path:"/", Domain:"", Expires:time.Date(2026, time.November, 5, 3, 37, 1, 0, time.UTC), RawExpires:"Thu, 05 Nov 2026 03:37:01 GMT", MaxAge:0, Secure:false, HttpOnly:false, SameSite:0, Partitioned:false, Raw:"techaro.lol-anubis-cookie-verification=01a1a9ac-927e-71f1-b858-acb70bc18b3b; Path=/; Expires=Thu, 05 Nov 2026 03:37:01 GMT", Unparsed:[]string(nil)} === RUN TestChallengeDoesNotClearAbsentCookie/unparseable_token_is_cleared === NAME TestChallengeDoesNotClearAbsentCookie anubis_test.go:45: {"time":"2026-11-05T03:07:01.634137595Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:01.634318245Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:01.634387382Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":388},"msg":"invalid token","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"path":"/","err":"token is malformed: token contains an invalid number of segments"} anubis_test.go:45: {"time":"2026-11-05T03:07:01.634536706Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:35057","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-9282-7769-ae3f-c095566cd602","weight":10} === NAME TestChallengeDoesNotClearAbsentCookie/unparseable_token_is_cleared anubis_test.go:210: set cookie: http://127.0.0.1:35057/ -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:01 GMT; Max-Age=0 anubis_test.go:210: set cookie: http://127.0.0.1:35057/ -> techaro.lol-anubis-cookie-verification=01a1a9ac-9282-7769-ae3f-c095566cd602; Path=/; Expires=Thu, 05 Nov 2026 03:37:01 GMT anubis_test.go:466: &http.Cookie{Name:"techaro.lol-anubis", Value:"", Quoted:false, Path:"/", Domain:"", Expires:time.Date(2026, time.November, 5, 3, 6, 1, 0, time.UTC), RawExpires:"Thu, 05 Nov 2026 03:06:01 GMT", MaxAge:-1, Secure:false, HttpOnly:false, SameSite:0, Partitioned:false, Raw:"techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:01 GMT; Max-Age=0", Unparsed:[]string(nil)} anubis_test.go:466: &http.Cookie{Name:"techaro.lol-anubis-cookie-verification", Value:"01a1a9ac-9282-7769-ae3f-c095566cd602", Quoted:false, Path:"/", Domain:"", Expires:time.Date(2026, time.November, 5, 3, 37, 1, 0, time.UTC), RawExpires:"Thu, 05 Nov 2026 03:37:01 GMT", MaxAge:0, Secure:false, HttpOnly:false, SameSite:0, Partitioned:false, Raw:"techaro.lol-anubis-cookie-verification=01a1a9ac-9282-7769-ae3f-c095566cd602; Path=/; Expires=Thu, 05 Nov 2026 03:37:01 GMT", Unparsed:[]string(nil)} --- PASS: TestChallengeDoesNotClearAbsentCookie (0.18s) --- PASS: TestChallengeDoesNotClearAbsentCookie/absent_cookie_is_left_alone (0.00s) --- PASS: TestChallengeDoesNotClearAbsentCookie/unparseable_token_is_cleared (0.00s) === RUN TestCheckDefaultDifficultyMatchesPolicy === RUN TestCheckDefaultDifficultyMatchesPolicy/1 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/2 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/3 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/4 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/5 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/6 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/7 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/8 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent === RUN TestCheckDefaultDifficultyMatchesPolicy/9 anubis_test.go:486: loading policy file: testdata/test_config_no_thresholds.yaml anubis_test.go:509: bot/no-user-agent --- PASS: TestCheckDefaultDifficultyMatchesPolicy (1.54s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/1 (0.18s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/2 (0.17s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/3 (0.17s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/4 (0.17s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/5 (0.16s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/6 (0.18s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/7 (0.17s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/8 (0.18s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/9 (0.17s) === RUN TestBasePrefix === RUN TestBasePrefix/no_prefix anubis_test.go:554: loading policy file: ./testdata/test_config.yaml anubis_test.go:580: http://127.0.0.1:46423/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F anubis_test.go:45: {"time":"2026-11-05T03:07:03.348153578Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:46423","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.348331194Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:46423","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9934-7475-a779-0d3c7830c3dd","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.348396376Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:46423","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:03.348295515Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-9934-7475-a779-0d3c7830c3dd","method":"fast","randomData":"903068cd1f6c9f5c051a9a41f89bae70af85ba7d6350f3f096c76eb350245e8a23dcf31c2cf550e64885e11cc57ce66c76d69f503f242d0952e28c470ab8b5ab","policyRuleHash":"794dc14e5d44d33b","difficulty":1,"spent":false,"extensions":null},"rules":{"algorithm":"fast","difficulty":1},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:46423/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-9934-7475-a779-0d3c7830c3dd; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:602: {"rules":{"algorithm":"fast","difficulty":1},"challenge":"903068cd1f6c9f5c051a9a41f89bae70af85ba7d6350f3f096c76eb350245e8a23dcf31c2cf550e64885e11cc57ce66c76d69f503f242d0952e28c470ab8b5ab","id":"01a1a9ac-9934-7475-a779-0d3c7830c3dd"} anubis_test.go:653: http://127.0.0.1:46423/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9934-7475-a779-0d3c7830c3dd&nonce=26164&redir=%2F&response=0000fda23917cded6c28701b09bd1bd27aa426841097b2d1c7b42e878d5811b3 anubis_test.go:196: requested cookies for http://127.0.0.1:46423/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9934-7475-a779-0d3c7830c3dd&nonce=26164&redir=%2F&response=0000fda23917cded6c28701b09bd1bd27aa426841097b2d1c7b42e878d5811b3 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-9934-7475-a779-0d3c7830c3dd; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:03.416648037Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:46423","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.416885453Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:46423","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9934-7475-a779-0d3c7830c3dd","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:03.417017273Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:46423","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9934-7475-a779-0d3c7830c3dd"} anubis_test.go:45: {"time":"2026-11-05T03:07:03.417263913Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:46423","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9934-7475-a779-0d3c7830c3dd"} anubis_test.go:210: set cookie: http://127.0.0.1:46423/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9934-7475-a779-0d3c7830c3dd&nonce=26164&redir=%2F&response=0000fda23917cded6c28701b09bd1bd27aa426841097b2d1c7b42e878d5811b3 -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05OTM0LTc0NzUtYTc3OS0wZDNjNzgzMGMzZGQiLCJleHAiOjE3OTM4NDgwMjMsImlhdCI6MTc5Mzg0ODAyMywibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MywicG9saWN5UnVsZSI6Ijc5NGRjMTRlNWQ0NGQzM2IifQ.Ch_LXraEOnzXtoxJcl_fUd4qPVf55fbQqKabExk_iU6XdbA033Bhlsw3EE03D79FW-jBPeFbPc4iMOSC2bGyBw; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT === RUN TestBasePrefix/with_prefix anubis_test.go:554: loading policy file: ./testdata/test_config.yaml anubis_test.go:580: http://127.0.0.1:40743/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp anubis_test.go:45: {"time":"2026-11-05T03:07:03.601169415Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40743","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.601371264Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:40743","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.601455878Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:40743","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:03.601328397Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd","method":"fast","randomData":"f576f4514b5243aa20f585a84d0d498aab0dac2a27a9c42f9b052eaf6a69b2d4112588df396e0d15f8b76e3b2b3014b19a20f270682297924e21c6676263252d","policyRuleHash":"794dc14e5d44d33b","difficulty":1,"spent":false,"extensions":null},"rules":{"algorithm":"fast","difficulty":1},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:40743/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp -> techaro.lol-anubis-cookie-verification=01a1a9ac-9a31-74f5-855c-a8dfa1b813fd; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:602: {"rules":{"algorithm":"fast","difficulty":1},"challenge":"f576f4514b5243aa20f585a84d0d498aab0dac2a27a9c42f9b052eaf6a69b2d4112588df396e0d15f8b76e3b2b3014b19a20f270682297924e21c6676263252d","id":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd"} anubis_test.go:653: http://127.0.0.1:40743/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9a31-74f5-855c-a8dfa1b813fd&nonce=43032&redir=%2F&response=0000a6058864d18c0f40fff22dffae08800fe60c3d4949fb5488485f5a120cc3 anubis_test.go:196: requested cookies for http://127.0.0.1:40743/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9a31-74f5-855c-a8dfa1b813fd&nonce=43032&redir=%2F&response=0000a6058864d18c0f40fff22dffae08800fe60c3d4949fb5488485f5a120cc3 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-9a31-74f5-855c-a8dfa1b813fd; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:03.724879646Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40743","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.725334384Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:40743","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:03.725698938Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:40743","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd"} anubis_test.go:45: {"time":"2026-11-05T03:07:03.726160118Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:40743","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9a31-74f5-855c-a8dfa1b813fd"} anubis_test.go:210: set cookie: http://127.0.0.1:40743/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9a31-74f5-855c-a8dfa1b813fd&nonce=43032&redir=%2F&response=0000a6058864d18c0f40fff22dffae08800fe60c3d4949fb5488485f5a120cc3 -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05YTMxLTc0ZjUtODU1Yy1hOGRmYTFiODEzZmQiLCJleHAiOjE3OTM4NDgwMjMsImlhdCI6MTc5Mzg0ODAyMywibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2MywicG9saWN5UnVsZSI6Ijc5NGRjMTRlNWQ0NGQzM2IifQ.9wSPf5lKu2JACeYnh6V-4j4IMO9L980m7o_2oIBRkXLijXtjrXc0jMmHxFcglilJc_SgslSoIln3qiDQnjWUCA; Path=/myapp/; Expires=Thu, 05 Nov 2026 03:07:03 GMT === RUN TestBasePrefix/with_prefix_and_trailing_slash anubis_test.go:554: loading policy file: ./testdata/test_config.yaml anubis_test.go:580: http://127.0.0.1:40871/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp%2F anubis_test.go:45: {"time":"2026-11-05T03:07:03.907565989Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40871","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.907792405Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:40871","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9b63-7b61-8da5-adcec97e6123","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:03.907872238Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:40871","method":"POST","path":"/myapp/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:03.907749622Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-9b63-7b61-8da5-adcec97e6123","method":"fast","randomData":"8b82c9f647b5ad8eeba22a95ec12756d205f3f5051e25070e7c882f9ebf3fcd10c225726b48e8eaf8b7db3d343e5e15998fc276c7c4ae28de1a2f6ad5700b612","policyRuleHash":"794dc14e5d44d33b","difficulty":1,"spent":false,"extensions":null},"rules":{"algorithm":"fast","difficulty":1},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:40871/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-9b63-7b61-8da5-adcec97e6123; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:602: {"rules":{"algorithm":"fast","difficulty":1},"challenge":"8b82c9f647b5ad8eeba22a95ec12756d205f3f5051e25070e7c882f9ebf3fcd10c225726b48e8eaf8b7db3d343e5e15998fc276c7c4ae28de1a2f6ad5700b612","id":"01a1a9ac-9b63-7b61-8da5-adcec97e6123"} anubis_test.go:653: http://127.0.0.1:40871/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9b63-7b61-8da5-adcec97e6123&nonce=87489&redir=%2F&response=0000cae9e5922fbe3b6baf2cc2e7c7a3d1370d99126606457ff58fe601cf28f5 anubis_test.go:196: requested cookies for http://127.0.0.1:40871/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9b63-7b61-8da5-adcec97e6123&nonce=87489&redir=%2F&response=0000cae9e5922fbe3b6baf2cc2e7c7a3d1370d99126606457ff58fe601cf28f5 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-9b63-7b61-8da5-adcec97e6123; Path=/; Expires=Thu, 05 Nov 2026 03:07:03 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:04.156598028Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40871","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:04.156846657Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:40871","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9b63-7b61-8da5-adcec97e6123","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:04.156963657Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:40871","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9b63-7b61-8da5-adcec97e6123"} anubis_test.go:45: {"time":"2026-11-05T03:07:04.157205899Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:40871","method":"GET","path":"/myapp/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-9b63-7b61-8da5-adcec97e6123"} anubis_test.go:210: set cookie: http://127.0.0.1:40871/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-9b63-7b61-8da5-adcec97e6123&nonce=87489&redir=%2F&response=0000cae9e5922fbe3b6baf2cc2e7c7a3d1370d99126606457ff58fe601cf28f5 -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy05YjYzLTdiNjEtOGRhNS1hZGNlYzk3ZTYxMjMiLCJleHAiOjE3OTM4NDgwMjQsImlhdCI6MTc5Mzg0ODAyNCwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk2NCwicG9saWN5UnVsZSI6Ijc5NGRjMTRlNWQ0NGQzM2IifQ.OWZyTyadmEEjzlofA_vIYE7sq3JxhyA75mwtVEvc4njCVrGoKIRFBcS8C_x0iW25GDMWMqnslDUz7WtV1p9aCw; Path=/myapp/; Expires=Thu, 05 Nov 2026 03:07:04 GMT --- PASS: TestBasePrefix (0.98s) --- PASS: TestBasePrefix/no_prefix (0.24s) --- PASS: TestBasePrefix/with_prefix (0.31s) --- PASS: TestBasePrefix/with_prefix_and_trailing_slash (0.43s) === RUN TestCustomStatusCodes anubis_test.go:704: loading policy file: ./testdata/aggressive_403.yaml === RUN TestCustomStatusCodes/ALLOW === NAME TestCustomStatusCodes anubis_test.go:45: {"time":"2026-11-05T03:07:04.281149263Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":458},"msg":"allowing traffic to origin (explicit)","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"ALLOW","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW","weight":0}} anubis_test.go:693: ALLOW === RUN TestCustomStatusCodes/CHALLENGE === NAME TestCustomStatusCodes anubis_test.go:45: {"time":"2026-11-05T03:07:04.284101785Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:04.284326443Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:04.284540732Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-9cdc-768f-ba2b-453031fd31b7","weight":0} === RUN TestCustomStatusCodes/DENY === NAME TestCustomStatusCodes anubis_test.go:45: {"time":"2026-11-05T03:07:04.286303874Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":464},"msg":"explicit deny","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:04.286406454Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":472},"msg":"rule hash","host":"127.0.0.1:43811","method":"GET","path":"/","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0},"hash":"484487c000d57854"} --- PASS: TestCustomStatusCodes (0.13s) --- PASS: TestCustomStatusCodes/ALLOW (0.00s) --- PASS: TestCustomStatusCodes/CHALLENGE (0.00s) --- PASS: TestCustomStatusCodes/DENY (0.00s) === RUN TestNonGzipClientGetsDenyStatus anubis_test.go:736: loading policy file: testdata/aggressive_403.yaml anubis_test.go:769: 4021 of 4096 requests were challenged, 75 were rejected --- PASS: TestNonGzipClientGetsDenyStatus (0.85s) === RUN TestDownstreamAnubisHeadersAreAuthoritative === RUN TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow === RUN TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow/ordinary_request anubis_test.go:836: loading policy file: testdata/permissive.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:05.258738324Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":458},"msg":"allowing traffic to origin (explicit)","host":"example.com","method":"GET","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW","weight":0}} === RUN TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow/spoofed_headers anubis_test.go:836: loading policy file: testdata/permissive.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:05.379834528Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":458},"msg":"allowing traffic to origin (explicit)","host":"example.com","method":"GET","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW","weight":0}} --- PASS: TestDownstreamAnubisHeadersAreAuthoritative (0.24s) --- PASS: TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow (0.24s) --- PASS: TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow/ordinary_request (0.12s) --- PASS: TestDownstreamAnubisHeadersAreAuthoritative/explicit_allow/spoofed_headers (0.12s) === RUN TestCloudflareWorkersRule === RUN TestCloudflareWorkersRule/cel anubis_test.go:873: loading policy file: ./testdata/cloudflare-workers-cel.yaml === RUN TestCloudflareWorkersRule/cel/with-cf-worker-header === RUN TestCloudflareWorkersRule/cel/no-cf-worker-header === RUN TestCloudflareWorkersRule/header anubis_test.go:873: loading policy file: ./testdata/cloudflare-workers-header.yaml === RUN TestCloudflareWorkersRule/header/with-cf-worker-header === RUN TestCloudflareWorkersRule/header/no-cf-worker-header --- PASS: TestCloudflareWorkersRule (0.20s) --- PASS: TestCloudflareWorkersRule/cel (0.10s) --- PASS: TestCloudflareWorkersRule/cel/with-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/cel/no-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/header (0.10s) --- PASS: TestCloudflareWorkersRule/header/with-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/header/no-cf-worker-header (0.00s) === RUN TestRuleChange anubis_test.go:929: loading policy file: testdata/rule_change.yaml 2026/11/05 03:07:05 ERROR this should be impossible, asked to issue a challenge but the rule is not a challenge rule cr.name=default/allow cr.rule=ALLOW cr.weight=0 rule="&{Rules:0x1f63e33b2198 Challenge:0x1f63e31ce180 Weight: Name:default/allow hash: Action:ALLOW}" anubis_test.go:45: {"time":"2026-11-05T03:07:05.683283351Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:35839","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW","weight":0},"challenge":"01a1a9ac-a253-737e-9b89-0f56986dfb60","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:05.683381221Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:35839","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:05.683233146Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-a253-737e-9b89-0f56986dfb60","method":"fast","randomData":"78ecf0d0cdd6ddcfe7befaed84ed4c07c101fb39199f797afd1f1a47cc169a1670573b4c2e84d55fdde224ab2034bd36c38c896551312a4087a7066ebafd2cd1","policyRuleHash":"f28995ba1994463c","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"default/allow","rule":"ALLOW","weight":0}} anubis_test.go:210: set cookie: http://127.0.0.1:35839/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-a253-737e-9b89-0f56986dfb60; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:05 GMT anubis_test.go:946: lib.challengeResp{ID:"01a1a9ac-a253-737e-9b89-0f56986dfb60", Challenge:"78ecf0d0cdd6ddcfe7befaed84ed4c07c101fb39199f797afd1f1a47cc169a1670573b4c2e84d55fdde224ab2034bd36c38c896551312a4087a7066ebafd2cd1"} anubis_test.go:946: elapsedTime=420&id=01a1a9ac-a253-737e-9b89-0f56986dfb60&nonce=0&redir=%2F&response=7917c8d7ef7f45768ac3fe8a30201747618d234ae4d4dae8cd1c9d3c281e74ec anubis_test.go:196: requested cookies for http://127.0.0.1:35839/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-a253-737e-9b89-0f56986dfb60&nonce=0&redir=%2F&response=7917c8d7ef7f45768ac3fe8a30201747618d234ae4d4dae8cd1c9d3c281e74ec anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a253-737e-9b89-0f56986dfb60; Path=/; Domain=127.0.0.1; Expires=Thu, 05 Nov 2026 03:17:05 GMT --- PASS: TestRuleChange (0.10s) === RUN TestStripBasePrefixFromRequest === RUN TestStripBasePrefixFromRequest/strip_disabled_-_no_change === RUN TestStripBasePrefixFromRequest/strip_enabled_-_removes_prefix === RUN TestStripBasePrefixFromRequest/strip_enabled_-_root_becomes_slash === RUN TestStripBasePrefixFromRequest/strip_enabled_-_trailing_slash_on_base_prefix === RUN TestStripBasePrefixFromRequest/strip_enabled_-_no_prefix_match === RUN TestStripBasePrefixFromRequest/strip_enabled_-_empty_base_prefix === RUN TestStripBasePrefixFromRequest/strip_enabled_-_nested_path === RUN TestStripBasePrefixFromRequest/strip_enabled_-_exact_match_becomes_root --- PASS: TestStripBasePrefixFromRequest (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_disabled_-_no_change (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_removes_prefix (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_root_becomes_slash (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_trailing_slash_on_base_prefix (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_no_prefix_match (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_empty_base_prefix (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_nested_path (0.00s) --- PASS: TestStripBasePrefixFromRequest/strip_enabled_-_exact_match_becomes_root (0.00s) === RUN TestCookieSuffixNotSet anubis_test.go:1056: loading policy file: ./testdata/test_config.yaml === RUN TestCookieSuffixNotSet/make_sure_cookie_has_no_suffix --- PASS: TestCookieSuffixNotSet (0.16s) --- PASS: TestCookieSuffixNotSet/make_sure_cookie_has_no_suffix (0.00s) === RUN TestCookieSuffixIsSet anubis_test.go:1072: loading policy file: ./testdata/test_config.yaml === RUN TestCookieSuffixIsSet/make_sure_cookie_has_suffix --- PASS: TestCookieSuffixIsSet (0.15s) --- PASS: TestCookieSuffixIsSet/make_sure_cookie_has_suffix (0.00s) === RUN TestChallengeFor_ErrNotFound anubis_test.go:1089: loading policy file: testdata/aggressive_403.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.093880088Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"example.com","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:06.093949435Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"example.com","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.094077475Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"example.com","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-a3ee-7087-9f64-2f2b6c102e2e","weight":0} === RUN TestChallengeFor_ErrNotFound/make_sure_challenge_page_is_issued === RUN TestChallengeFor_ErrNotFound/make_sure_that_the_body_is_not_an_error_page === RUN TestChallengeFor_ErrNotFound/make_sure_new_test_cookie_is_issued --- PASS: TestChallengeFor_ErrNotFound (0.10s) --- PASS: TestChallengeFor_ErrNotFound/make_sure_challenge_page_is_issued (0.00s) --- PASS: TestChallengeFor_ErrNotFound/make_sure_that_the_body_is_not_an_error_page (0.00s) --- PASS: TestChallengeFor_ErrNotFound/make_sure_new_test_cookie_is_issued (0.00s) === RUN TestPassChallengeXSS anubis_test.go:1155: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.251371704Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:34855","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.251698264Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:34855","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-a48b-78c3-9649-6a80511bce24","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.251788776Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:34855","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:06.251577193Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-a48b-78c3-9649-6a80511bce24","method":"fast","randomData":"317693d5a5e98ebd7b28102a1298ef8df37ffdc2c00e01961448ac34de8a15b887135fce0a7705ae8731402488daa2257bec87740b94fe0c8ca0119723c4aa90","policyRuleHash":"794dc14e5d44d33b","difficulty":1,"spent":false,"extensions":null},"rules":{"algorithm":"fast","difficulty":1},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT === RUN TestPassChallengeXSS/with_test_cookie === RUN TestPassChallengeXSS/with_test_cookie/javascript_alert === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=javascript%3Aalert%28%27xss%27%29&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.253666912Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} === RUN TestPassChallengeXSS/with_test_cookie/vbscript === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=vbscript%3Amsgbox%28%22XSS%22%29&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.255429555Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} === RUN TestPassChallengeXSS/with_test_cookie/data_url === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=data%3Atext%2Fhtml%3Bbase64%2CPHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4%3D&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.256285684Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} === RUN TestPassChallengeXSS/no_test_cookie === RUN TestPassChallengeXSS/no_test_cookie/javascript_alert === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=javascript%3Aalert%28%27xss%27%29&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.256928583Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} === RUN TestPassChallengeXSS/no_test_cookie/vbscript === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=vbscript%3Amsgbox%28%22XSS%22%29&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.257417098Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} === RUN TestPassChallengeXSS/no_test_cookie/data_url === NAME TestPassChallengeXSS anubis_test.go:196: requested cookies for http://127.0.0.1:34855/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=data%3Atext%2Fhtml%3Bbase64%2CPHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4%3D&response=1cfd6323ce70ef56f8d389e999589aeb56664fe047a42f08b8b6245c4fc9e78b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-a48b-78c3-9649-6a80511bce24; Path=/; Expires=Thu, 05 Nov 2026 03:07:06 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:06.257913242Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"127.0.0.1:34855","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"invalid redirect"} --- PASS: TestPassChallengeXSS (0.16s) --- PASS: TestPassChallengeXSS/with_test_cookie (0.00s) --- PASS: TestPassChallengeXSS/with_test_cookie/javascript_alert (0.00s) --- PASS: TestPassChallengeXSS/with_test_cookie/vbscript (0.00s) --- PASS: TestPassChallengeXSS/with_test_cookie/data_url (0.00s) --- PASS: TestPassChallengeXSS/no_test_cookie (0.00s) --- PASS: TestPassChallengeXSS/no_test_cookie/javascript_alert (0.00s) --- PASS: TestPassChallengeXSS/no_test_cookie/vbscript (0.00s) --- PASS: TestPassChallengeXSS/no_test_cookie/data_url (0.00s) === RUN TestPassChallengeRestoresOriginalReferer anubis_test.go:1291: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.441674693Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44769","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.441892239Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:44769","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-a549-7ce7-acb0-d789a6eea905","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.441975059Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:44769","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:06.441849283Z","metadata":{"Referer":"https://example-external.test/some/post?utm=abc","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-a549-7ce7-acb0-d789a6eea905","method":"fast","randomData":"dc8ac6975c86a40e790cb1003693103f809321d64fdbc827c5ae720762d27315c1b2da9f9faeb6e077d36b7aba501673cdce9af2f4dcb74883d9175b6b1246c2","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:06.442561057Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44769","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.442752032Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:44769","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-a549-7ce7-acb0-d789a6eea905","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:06.442854968Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:44769","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-a549-7ce7-acb0-d789a6eea905"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.443092671Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:44769","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-a549-7ce7-acb0-d789a6eea905"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.443976581Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44769","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.444102325Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:44769","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:06.445696719Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44769","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:06.445814508Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:44769","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} --- PASS: TestPassChallengeRestoresOriginalReferer (0.19s) === RUN TestWithRefererAttributionQuery === RUN TestWithRefererAttributionQuery/disabled_leaves_redir_untouched === RUN TestWithRefererAttributionQuery/no_captured_referer_leaves_redir_untouched === RUN TestWithRefererAttributionQuery/same-site_referer_leaves_redir_untouched === RUN TestWithRefererAttributionQuery/unparseable_referer_leaves_redir_untouched === RUN TestWithRefererAttributionQuery/external_referer_with_no_existing_query_gets_utm_params === RUN TestWithRefererAttributionQuery/existing_unrelated_query_is_preserved_alongside_new_params === RUN TestWithRefererAttributionQuery/existing_utm_source_is_not_clobbered === RUN TestWithRefererAttributionQuery/existing_ref_param_is_not_clobbered --- PASS: TestWithRefererAttributionQuery (0.00s) --- PASS: TestWithRefererAttributionQuery/disabled_leaves_redir_untouched (0.00s) --- PASS: TestWithRefererAttributionQuery/no_captured_referer_leaves_redir_untouched (0.00s) --- PASS: TestWithRefererAttributionQuery/same-site_referer_leaves_redir_untouched (0.00s) --- PASS: TestWithRefererAttributionQuery/unparseable_referer_leaves_redir_untouched (0.00s) --- PASS: TestWithRefererAttributionQuery/external_referer_with_no_existing_query_gets_utm_params (0.00s) --- PASS: TestWithRefererAttributionQuery/existing_unrelated_query_is_preserved_alongside_new_params (0.00s) --- PASS: TestWithRefererAttributionQuery/existing_utm_source_is_not_clobbered (0.00s) --- PASS: TestWithRefererAttributionQuery/existing_ref_param_is_not_clobbered (0.00s) === RUN TestPassChallengeNilRuleChallengeFallback anubis_test.go:1541: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.61798803Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"NilChallengeTester/1.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"203.0.113.4","err":"invalid redirect"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.618212371Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"NilChallengeTester/1.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"203.0.113.4","err":"redirect domain not allowed"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.618358015Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"NilChallengeTester/1.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"203.0.113.4","err":"invalid redirect"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.6184912Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"NilChallengeTester/1.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"203.0.113.4","err":"invalid redirect"} --- PASS: TestPassChallengeNilRuleChallengeFallback (0.17s) === RUN TestXForwardedForNoDoubleComma anubis_test.go:1622: loading policy file: testdata/permissive.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.717971357Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":458},"msg":"allowing traffic to origin (explicit)","host":"127.0.0.1:44827","method":"GET","path":"/","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"10.0.0.1","check_result":{"name":"bot/ipv4-rfc-1918","rule":"ALLOW","weight":0}} --- PASS: TestXForwardedForNoDoubleComma (0.10s) === RUN TestOpenGraphAllowCacheCannotBypassPolicy === RUN TestOpenGraphAllowCacheCannotBypassPolicy/DENY anubis_test.go:1655: loading policy file: testdata/aggressive_403.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.84090666Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":464},"msg":"explicit deny","host":"example.com","method":"GET","path":"/admin/secret.jpg","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:06.840989934Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":472},"msg":"rule hash","host":"example.com","method":"GET","path":"/admin/secret.jpg","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0},"hash":"484487c000d57854"} === RUN TestOpenGraphAllowCacheCannotBypassPolicy/CHALLENGE anubis_test.go:1655: loading policy file: testdata/aggressive_403.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:06.908281972Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"example.com","method":"GET","path":"/admin/secret.jpg","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:06.908313912Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"example.com","method":"GET","path":"/admin/secret.jpg","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0},"path":"/admin/secret.jpg"} anubis_test.go:45: {"time":"2026-11-05T03:07:06.908359641Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"example.com","method":"GET","path":"/admin/secret.jpg","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-a71c-752a-9057-777418f32189","weight":0} --- PASS: TestOpenGraphAllowCacheCannotBypassPolicy (0.19s) --- PASS: TestOpenGraphAllowCacheCannotBypassPolicy/DENY (0.12s) --- PASS: TestOpenGraphAllowCacheCannotBypassPolicy/CHALLENGE (0.07s) === RUN TestDefaultPolicyWithoutGeoIP {"time":"2026-11-05T03:07:06.96148549Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["BR","CN"]}} {"time":"2026-11-05T03:07:06.961547117Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335,136907,45102]}} --- PASS: TestDefaultPolicyWithoutGeoIP (0.05s) === RUN TestGetRequestLoggerASN === RUN TestGetRequestLoggerASN/announced asn_logging_test.go:27: loading policy file: ./testdata/test_config.yaml === RUN TestGetRequestLoggerASN/private asn_logging_test.go:27: loading policy file: ./testdata/test_config.yaml === RUN TestGetRequestLoggerASN/not_an_IP asn_logging_test.go:27: loading policy file: ./testdata/test_config.yaml === RUN TestGetRequestLoggerASN/logging_disabled asn_logging_test.go:27: loading policy file: ./testdata/test_config.yaml === RUN TestGetRequestLoggerASN/no_database asn_logging_test.go:27: loading policy file: ./testdata/test_config.yaml --- PASS: TestGetRequestLoggerASN (0.78s) --- PASS: TestGetRequestLoggerASN/announced (0.16s) --- PASS: TestGetRequestLoggerASN/private (0.15s) --- PASS: TestGetRequestLoggerASN/not_an_IP (0.15s) --- PASS: TestGetRequestLoggerASN/logging_disabled (0.18s) --- PASS: TestGetRequestLoggerASN/no_database (0.14s) === RUN TestPassChallengeRequiresIssuedPolicy === RUN TestPassChallengeRequiresIssuedPolicy/hash challenge_binding_test.go:20: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:07.903322672Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39591","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:07.903493028Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39591","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-aaff-76f7-a296-be9c11e978a2","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:07.903557978Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39591","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:07.903459431Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-aaff-76f7-a296-be9c11e978a2","method":"fast","randomData":"891d6cb271191899b2d1d953c5861722704c3d5585e4d91af41e5402c5c7f8e60f5c62fd7fea682df1633b00fec7abb85227bb720f195633d0e9c2a8693b628e","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39591/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-aaff-76f7-a296-be9c11e978a2; Path=/; Expires=Thu, 05 Nov 2026 03:07:07 GMT challenge_binding_test.go:47: lib.challengeResp{ID:"01a1a9ac-aaff-76f7-a296-be9c11e978a2", Challenge:"891d6cb271191899b2d1d953c5861722704c3d5585e4d91af41e5402c5c7f8e60f5c62fd7fea682df1633b00fec7abb85227bb720f195633d0e9c2a8693b628e"} challenge_binding_test.go:47: elapsedTime=420&id=01a1a9ac-aaff-76f7-a296-be9c11e978a2&nonce=0&redir=%2F&response=a1f87b4cc51bd466dd5669bb5ddd6243c60a9100949e7b7e042424e463682d69 anubis_test.go:196: requested cookies for http://127.0.0.1:39591/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-aaff-76f7-a296-be9c11e978a2&nonce=0&redir=%2F&response=a1f87b4cc51bd466dd5669bb5ddd6243c60a9100949e7b7e042424e463682d69 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-aaff-76f7-a296-be9c11e978a2; Path=/; Expires=Thu, 05 Nov 2026 03:07:07 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:07.90555519Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39591","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} === RUN TestPassChallengeRequiresIssuedPolicy/difficulty challenge_binding_test.go:20: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.060715655Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44981","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.060921497Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:44981","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ab9c-7d6c-8625-5c296b0f3901","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.061000406Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:44981","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.060882285Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-ab9c-7d6c-8625-5c296b0f3901","method":"fast","randomData":"e10c1a9d36e5d86bb8550f9101c3c2eecf58bdefdbd68a189e124d7059dd806c3e35ecdb914b4ddff484ea7599d9e8372ebd770331d47d484b6f5b555efe4de8","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:44981/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-ab9c-7d6c-8625-5c296b0f3901; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT challenge_binding_test.go:47: lib.challengeResp{ID:"01a1a9ac-ab9c-7d6c-8625-5c296b0f3901", Challenge:"e10c1a9d36e5d86bb8550f9101c3c2eecf58bdefdbd68a189e124d7059dd806c3e35ecdb914b4ddff484ea7599d9e8372ebd770331d47d484b6f5b555efe4de8"} challenge_binding_test.go:47: elapsedTime=420&id=01a1a9ac-ab9c-7d6c-8625-5c296b0f3901&nonce=0&redir=%2F&response=07b196832cea4bb0dcb86d00f95b0bb572b08213357849cba92eb6274054b4da anubis_test.go:196: requested cookies for http://127.0.0.1:44981/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-ab9c-7d6c-8625-5c296b0f3901&nonce=0&redir=%2F&response=07b196832cea4bb0dcb86d00f95b0bb572b08213357849cba92eb6274054b4da anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-ab9c-7d6c-8625-5c296b0f3901; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.062021035Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44981","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} === RUN TestPassChallengeRequiresIssuedPolicy/algorithm challenge_binding_test.go:20: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.2415485Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:46391","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.241791088Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:46391","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ac51-7b5a-99b7-d3f71d00143d","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.241877658Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:46391","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.241746606Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-ac51-7b5a-99b7-d3f71d00143d","method":"fast","randomData":"19bdac1caf1de0f5fadb205d37376592d9a3d2657a1d89f4947a89bb72ce60b6d14e409ee1131b1873389dc2b4e87b0cf5b2ee2f5c17867f5c2f349d5ebbc124","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:46391/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-ac51-7b5a-99b7-d3f71d00143d; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT challenge_binding_test.go:47: lib.challengeResp{ID:"01a1a9ac-ac51-7b5a-99b7-d3f71d00143d", Challenge:"19bdac1caf1de0f5fadb205d37376592d9a3d2657a1d89f4947a89bb72ce60b6d14e409ee1131b1873389dc2b4e87b0cf5b2ee2f5c17867f5c2f349d5ebbc124"} challenge_binding_test.go:47: elapsedTime=420&id=01a1a9ac-ac51-7b5a-99b7-d3f71d00143d&nonce=0&redir=%2F&response=58a1c8a004acbb26c4dc5db92aaaa5e16edd67d40546cfeab5e38d00f5d9a94b anubis_test.go:196: requested cookies for http://127.0.0.1:46391/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-ac51-7b5a-99b7-d3f71d00143d&nonce=0&redir=%2F&response=58a1c8a004acbb26c4dc5db92aaaa5e16edd67d40546cfeab5e38d00f5d9a94b anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-ac51-7b5a-99b7-d3f71d00143d; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.242967469Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:46391","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} === RUN TestPassChallengeRequiresIssuedPolicy/extensions challenge_binding_test.go:20: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.382836994Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41211","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.383042964Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41211","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.383125006Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41211","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.383001759Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6","method":"fast","randomData":"31f9b4005d0eee4d774dfe859492e4476f839548895c958aae42d1bcc0dc9a7ad8e2b45d845496ac7597d9cdba53f162d0a34aa02367669f2c249beaf29637ef","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:41211/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT challenge_binding_test.go:47: lib.challengeResp{ID:"01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6", Challenge:"31f9b4005d0eee4d774dfe859492e4476f839548895c958aae42d1bcc0dc9a7ad8e2b45d845496ac7597d9cdba53f162d0a34aa02367669f2c249beaf29637ef"} challenge_binding_test.go:47: elapsedTime=420&id=01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6&nonce=0&redir=%2F&response=0789ecad2ae163d14e41b8e9e2f74c26f1d350f44fe784f4c7f18728d9578f05 anubis_test.go:196: requested cookies for http://127.0.0.1:41211/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6&nonce=0&redir=%2F&response=0789ecad2ae163d14e41b8e9e2f74c26f1d350f44fe784f4c7f18728d9578f05 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-acde-7f3b-a21d-c75d4b9d17c6; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.383909915Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41211","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} === RUN TestPassChallengeRequiresIssuedPolicy/action challenge_binding_test.go:20: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.557339728Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39287","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.557565997Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39287","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ad8d-77e1-a12c-1573807c7007","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.557667335Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39287","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.557520078Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-ad8d-77e1-a12c-1573807c7007","method":"fast","randomData":"b31dcca6c483574dfd7bc4296bf7b1a803068e44f3437bd14e1343656f4cabf071a698e1eeae59c007abe2723700d9337056e97707acfd6234e0a2581e27564f","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39287/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-ad8d-77e1-a12c-1573807c7007; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT challenge_binding_test.go:47: lib.challengeResp{ID:"01a1a9ac-ad8d-77e1-a12c-1573807c7007", Challenge:"b31dcca6c483574dfd7bc4296bf7b1a803068e44f3437bd14e1343656f4cabf071a698e1eeae59c007abe2723700d9337056e97707acfd6234e0a2581e27564f"} challenge_binding_test.go:47: elapsedTime=420&id=01a1a9ac-ad8d-77e1-a12c-1573807c7007&nonce=0&redir=%2F&response=852467bb8a7cc9e9fe6fe41e520c8b75fbce5157c5ff9d51b0c311459ed0ceaf anubis_test.go:196: requested cookies for http://127.0.0.1:39287/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-ad8d-77e1-a12c-1573807c7007&nonce=0&redir=%2F&response=852467bb8a7cc9e9fe6fe41e520c8b75fbce5157c5ff9d51b0c311459ed0ceaf anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-ad8d-77e1-a12c-1573807c7007; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.558496102Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39287","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} --- PASS: TestPassChallengeRequiresIssuedPolicy (0.81s) --- PASS: TestPassChallengeRequiresIssuedPolicy/hash (0.16s) --- PASS: TestPassChallengeRequiresIssuedPolicy/difficulty (0.15s) --- PASS: TestPassChallengeRequiresIssuedPolicy/algorithm (0.18s) --- PASS: TestPassChallengeRequiresIssuedPolicy/extensions (0.14s) --- PASS: TestPassChallengeRequiresIssuedPolicy/action (0.17s) === RUN TestChallengeCannotTransferToAnotherRule challenge_binding_test.go:57: loading policy file: testdata/rule_change.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.661638801Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"example.com","method":"GET","path":"/old","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","challenge":"01a1a9ac-adf5-7909-b275-fef23ad1d80e","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:08.661750676Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"example.com","method":"GET","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/old-rule","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-adf5-7909-b275-fef23ad1d80e","elapsedTime":1} anubis_test.go:45: {"time":"2026-11-05T03:07:08.661809401Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"example.com","method":"GET","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/old-rule","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-adf5-7909-b275-fef23ad1d80e"} anubis_test.go:45: {"time":"2026-11-05T03:07:08.661925051Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"example.com","method":"GET","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/old-rule","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-adf5-7909-b275-fef23ad1d80e"} --- PASS: TestChallengeCannotTransferToAnotherRule (0.10s) === RUN TestPassChallengeMissingVerificationCookie === RUN TestPassChallengeMissingVerificationCookie/cookie_present_passes challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.792476301Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:33347","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.79273366Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:33347","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ae78-7a67-8ac8-83e74c883cfc","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.792826454Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:33347","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.792685888Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-ae78-7a67-8ac8-83e74c883cfc","method":"fast","randomData":"0e44992906ef0ce24d9cbe93c89085de016e9f3dc724c0694b7e08eae4b50d6cb503dd5705029678ab7897381060bc9510386dbcb81c2762fdc7c9ce45dc6932","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:33347/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-ae78-7a67-8ac8-83e74c883cfc; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.793712638Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:33347","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.793918077Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:33347","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ae78-7a67-8ac8-83e74c883cfc","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:08.794029817Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:33347","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ae78-7a67-8ac8-83e74c883cfc"} anubis_test.go:45: {"time":"2026-11-05T03:07:08.794273049Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:33347","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ae78-7a67-8ac8-83e74c883cfc"} === RUN TestPassChallengeMissingVerificationCookie/first_miss_retries_then_passes challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:08.956660178Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.95684884Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-af1c-7c56-89e4-7e616fae3424","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.956911527Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.956811189Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-af1c-7c56-89e4-7e616fae3424","method":"fast","randomData":"563b5e272b2cd942432b90d32d5730d850efa4e0d4692e6e058b30f75e9ebb8ada6124712325f145d9456aa646212d5f2e308ba6db5e68b5817ce648d64ebd9d","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:44057/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-af1c-7c56-89e4-7e616fae3424; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.957550142Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":643},"msg":"verification cookie missing, retrying with a fresh challenge","host":"127.0.0.1:44057","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:45: {"time":"2026-11-05T03:07:08.958566226Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.958728815Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.95880205Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:44057","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:08.958699094Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60","method":"fast","randomData":"967617535cbd7a493047bc3a4b9a40b769880915cd9dcdb977f1962818651584219fa0c89f2c75c1e8353bda5213cc8384c75aab3031de5ff4c404a36d61ebfc","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:44057/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60; Path=/; Expires=Thu, 05 Nov 2026 03:07:08 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:08.959463373Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:44057","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:08.95964197Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:44057","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:08.959749241Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:44057","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60"} anubis_test.go:45: {"time":"2026-11-05T03:07:08.959987698Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:44057","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-af1e-7a9d-9b4c-7ebfa4c07a60"} === RUN TestPassChallengeMissingVerificationCookie/repeated_misses_end_in_an_error challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:09.13887599Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.139094487Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-afd3-70c2-846b-d9f18ccf2c49","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.139180076Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.139053793Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-afd3-70c2-846b-d9f18ccf2c49","method":"fast","randomData":"cae09bb6eaea8701d70271e5c61a396861ec76a1326ddd1de86c43e72d9997459acc51bd3622a44c0a015a92e2ab80adb7bbeadf1056681b751e8ad4e21ca48f","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39555/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-afd3-70c2-846b-d9f18ccf2c49; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.139885029Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":643},"msg":"verification cookie missing, retrying with a fresh challenge","host":"127.0.0.1:39555","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.140861394Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.141015776Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-afd4-7ef9-b0a8-b7262ca0eea6","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.141089622Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.140984148Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-afd4-7ef9-b0a8-b7262ca0eea6","method":"fast","randomData":"8b560efbc2c5de09ff43c1994819bc138538b88242f9516e12ff8e7151a7a0c99082b039afcd6418efa0c14c886608944775afa06f2707e8664f0376d1434721","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39555/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-afd4-7ef9-b0a8-b7262ca0eea6; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.141724453Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":647},"msg":"user has cookies disabled, this is not an anubis bug","host":"127.0.0.1:39555","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.142729566Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.142908757Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-afd6-7d43-99fd-b8035ae80045","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.14298881Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39555","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.142873399Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-afd6-7d43-99fd-b8035ae80045","method":"fast","randomData":"981322b18687364b2521948fe513224fe56264a08b0816bd1a8302e1988b7403d9df8f8a2ec9ad0d873af406ebf20a7c8acd268800e08e3f45b9d5fc4b7bd837","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39555/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-afd6-7d43-99fd-b8035ae80045; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.143691126Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":647},"msg":"user has cookies disabled, this is not an anubis bug","host":"127.0.0.1:39555","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} === RUN TestPassChallengeMissingVerificationCookie/retry_is_per_client challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:09.287863437Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.288119214Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b068-7105-811b-3df29531b2ec","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.288226462Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.288071288Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b068-7105-811b-3df29531b2ec","method":"fast","randomData":"68f0306ecba04255d7aa87a4611c0b475e97d467f969b24038127b19c985530fd6a5f31782a8d0f62fd0d429d681d623245da923248e2a3cae21c1bf9ec018bb","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:37937/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b068-7105-811b-3df29531b2ec; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.288981767Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":643},"msg":"verification cookie missing, retrying with a fresh challenge","host":"127.0.0.1:37937","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.289794908Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.289927852Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b069-7db3-aecc-dc92aae0032e","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.289979903Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.289900632Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b069-7db3-aecc-dc92aae0032e","method":"fast","randomData":"8db306035b7d8ce1230297654c6ab12b9d2444757c5995d97789bb45b59f6788e6d3fe8be42576f55630225d63bb1a5d5a9a84c0eae48d3872458ba14e3d6ae8","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:37937/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b069-7db3-aecc-dc92aae0032e; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.290488811Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":643},"msg":"verification cookie missing, retrying with a fresh challenge","host":"127.0.0.1:37937","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0 other","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.291217659Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.291325524Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b06b-749e-a6bc-613aee626d3b","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.291373299Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:37937","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.291304213Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b06b-749e-a6bc-613aee626d3b","method":"fast","randomData":"8ca46ff8522383e796180a35693b72874b1f86c4aa1dc9b3b6483c451938fa61153aac5ca6473d47dadcd7b616000acc14daf9ee500db400dfa3e2547e866101","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:37937/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b06b-749e-a6bc-613aee626d3b; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.291842526Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":647},"msg":"user has cookies disabled, this is not an anubis bug","host":"127.0.0.1:37937","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} === RUN TestPassChallengeMissingVerificationCookie/unknown_challenge_is_not_retried challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:09.448845582Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:33549","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.449058672Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:33549","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b109-703b-ae95-f34b14993190","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.449144716Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:33549","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.44901874Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b109-703b-ae95-f34b14993190","method":"fast","randomData":"0494e00dbf13a802c4c95a954ef3f2894bcc4ec1ef7de535a33d3e376dced4e763f472382b0b0745fb99326e303c67eaae680f107a2685eb842ed8545c072b48","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:33549/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b109-703b-ae95-f34b14993190; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.450450104Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":647},"msg":"user has cookies disabled, this is not an anubis bug","host":"127.0.0.1:33549","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} === RUN TestPassChallengeMissingVerificationCookie/spent_challenge_is_not_retried challenge_cookie_retry_test.go:104: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:09.61356126Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:43133","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.613808864Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:43133","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.613883735Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:43133","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.613768574Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9","method":"fast","randomData":"5c05e576f4f4e093d613ec8bc5b957f0fcaad2a841f1356ffb8905ad6230d169f1a52fa6b7cf9faccb78e827a3b92a3d61ec375b82e21b86a267d8a6e1681fa6","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:43133/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.614774724Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:43133","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.614962569Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:43133","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:09.615064217Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:43133","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.615289963Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:43133","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b1ad-7bac-8a3f-ab9320a7f4a9"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.6159763Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":647},"msg":"user has cookies disabled, this is not an anubis bug","host":"127.0.0.1:43133","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} --- PASS: TestPassChallengeMissingVerificationCookie (0.95s) --- PASS: TestPassChallengeMissingVerificationCookie/cookie_present_passes (0.13s) --- PASS: TestPassChallengeMissingVerificationCookie/first_miss_retries_then_passes (0.17s) --- PASS: TestPassChallengeMissingVerificationCookie/repeated_misses_end_in_an_error (0.18s) --- PASS: TestPassChallengeMissingVerificationCookie/retry_is_per_client (0.15s) --- PASS: TestPassChallengeMissingVerificationCookie/unknown_challenge_is_not_retried (0.16s) --- PASS: TestPassChallengeMissingVerificationCookie/spent_challenge_is_not_retried (0.16s) === RUN TestMissingVerificationCookieRetryIssuesFreshChallenge challenge_cookie_retry_test.go:142: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:09.787020444Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41167","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.787236028Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41167","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b25b-72ed-ae8c-523601cac582","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.787316061Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41167","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:09.787195358Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b25b-72ed-ae8c-523601cac582","method":"fast","randomData":"86d88ed7cf2ef5cde1ee41363880f0b340fdb71783599ffca5e5e460fe106e911428b2231e7be7b31642426bc75caba63b9b6d78a3d8670179ac93dc2d698157","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:41167/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b25b-72ed-ae8c-523601cac582; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.787990755Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":643},"msg":"verification cookie missing, retrying with a fresh challenge","host":"127.0.0.1:41167","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1"} anubis_test.go:196: requested cookies for http://127.0.0.1:41167/ anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-b25b-72ed-ae8c-523601cac582; Path=/; Expires=Thu, 05 Nov 2026 03:07:09 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:09.788961453Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41167","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:09.789097769Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:41167","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:09.789160565Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"127.0.0.1:41167","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:09.789281515Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41167","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-b25d-73b5-a513-6346dce71b95","weight":10} anubis_test.go:210: set cookie: http://127.0.0.1:41167/ -> techaro.lol-anubis-cookie-verification=01a1a9ac-b25d-73b5-a513-6346dce71b95; Path=/; Expires=Thu, 05 Nov 2026 03:37:09 GMT --- PASS: TestMissingVerificationCookieRetryIssuesFreshChallenge (0.17s) === RUN TestChallengeEndpointsLimitMultipartBodies === RUN TestChallengeEndpointsLimitMultipartBodies/make challenge_form_limit_test.go:30: loading policy file: testdata/zero_difficulty.yaml === RUN TestChallengeEndpointsLimitMultipartBodies/pass challenge_form_limit_test.go:30: loading policy file: testdata/zero_difficulty.yaml === RUN TestChallengeEndpointsLimitMultipartBodies/forward challenge_form_limit_test.go:30: loading policy file: testdata/zero_difficulty.yaml --- PASS: TestChallengeEndpointsLimitMultipartBodies (0.49s) --- PASS: TestChallengeEndpointsLimitMultipartBodies/make (0.14s) --- PASS: TestChallengeEndpointsLimitMultipartBodies/pass (0.16s) --- PASS: TestChallengeEndpointsLimitMultipartBodies/forward (0.18s) === RUN TestChallengeFormControls === RUN TestChallengeFormControls/query challenge_form_limit_test.go:61: loading policy file: testdata/zero_difficulty.yaml 2026/11/05 03:07:10 ERROR this should be impossible, asked to issue a challenge but the rule is not a challenge rule cr.name=bot/no-user-agent cr.rule=DENY cr.weight=0 rule="&{Rules:[0x1f63e2debe30] Challenge:0x1f63e2264400 Weight: Name:no-user-agent hash:3e79a8db49127e19 Action:DENY}" anubis_test.go:45: {"time":"2026-11-05T03:07:10.446910065Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"example.com","method":"POST","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/no-user-agent","rule":"DENY","weight":0},"challenge":"01a1a9ac-b4ee-7cf9-9f7d-d56a3435414e","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:10.447015187Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"example.com","method":"POST","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/no-user-agent","rule":"DENY","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:10.446855716Z","metadata":{"Referer":"","User-Agent":"","X-Real-IP":"192.0.2.1"},"id":"01a1a9ac-b4ee-7cf9-9f7d-d56a3435414e","method":"fast","randomData":"ca5ba6c3ae2453bfde00542f118737f9aa95694f5eea780998a3a962aa5c8e9751aab64ccaa4784eb049a7b48a57e4f0eda4b4a5066f101dcd01a910274baf41","policyRuleHash":"3e79a8db49127e19","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"bot/no-user-agent","rule":"DENY","weight":0}} === RUN TestChallengeFormControls/urlencoded challenge_form_limit_test.go:61: loading policy file: testdata/zero_difficulty.yaml 2026/11/05 03:07:10 ERROR this should be impossible, asked to issue a challenge but the rule is not a challenge rule cr.name=bot/no-user-agent cr.rule=DENY cr.weight=0 rule="&{Rules:[0x1f63e368fda0] Challenge:0x1f63e2f98100 Weight: Name:no-user-agent hash:3e79a8db49127e19 Action:DENY}" anubis_test.go:45: {"time":"2026-11-05T03:07:10.595395371Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"example.com","method":"POST","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/no-user-agent","rule":"DENY","weight":0},"challenge":"01a1a9ac-b583-7557-8a36-e0e61d7cdf4a","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:10.595478523Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"example.com","method":"POST","path":"/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"bot/no-user-agent","rule":"DENY","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:10.595352845Z","metadata":{"Referer":"","User-Agent":"","X-Real-IP":"192.0.2.1"},"id":"01a1a9ac-b583-7557-8a36-e0e61d7cdf4a","method":"fast","randomData":"30c2bd2de2950a0188b7baa83b091c253b86026042fb8f89c754ee050d2f50d3ade7383e3d7c1d550a1e1c912f86747bbb2ab59cf66ff8597e0f9dfdfc6fde4f","policyRuleHash":"3e79a8db49127e19","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"bot/no-user-agent","rule":"DENY","weight":0}} === RUN TestChallengeFormControls/oversized_urlencoded challenge_form_limit_test.go:61: loading policy file: testdata/zero_difficulty.yaml --- PASS: TestChallengeFormControls (0.48s) --- PASS: TestChallengeFormControls/query (0.17s) --- PASS: TestChallengeFormControls/urlencoded (0.15s) --- PASS: TestChallengeFormControls/oversized_urlencoded (0.16s) === RUN TestOriginUploadIsUnmodified challenge_form_limit_test.go:76: loading policy file: ./testdata/test_config.yaml --- PASS: TestOriginUploadIsUnmodified (0.14s) === RUN TestPrepareChallengeFormEmptyMultipartBody === RUN TestPrepareChallengeFormEmptyMultipartBody/empty_body === RUN TestPrepareChallengeFormEmptyMultipartBody/empty_body_with_unknown_length --- PASS: TestPrepareChallengeFormEmptyMultipartBody (0.00s) --- PASS: TestPrepareChallengeFormEmptyMultipartBody/empty_body (0.00s) --- PASS: TestPrepareChallengeFormEmptyMultipartBody/empty_body_with_unknown_length (0.00s) === RUN TestPrepareChallengeFormNonEmptyMultipartBodyUnknownLength --- PASS: TestPrepareChallengeFormNonEmptyMultipartBodyUnknownLength (0.00s) === RUN TestHydrateChallengeRulePreservesPolicy === RUN TestHydrateChallengeRulePreservesPolicy/missing 2026/11/05 03:07:10 WARN rule missing challenge configuration; using stored challenge metadata rule="" === RUN TestHydrateChallengeRulePreservesPolicy/defaults --- PASS: TestHydrateChallengeRulePreservesPolicy (0.00s) --- PASS: TestHydrateChallengeRulePreservesPolicy/missing (0.00s) --- PASS: TestHydrateChallengeRulePreservesPolicy/defaults (0.00s) === RUN TestChallengePagesHaveScriptWatchdog === RUN TestChallengePagesHaveScriptWatchdog/argon2id === RUN TestChallengePagesHaveScriptWatchdog/fast === RUN TestChallengePagesHaveScriptWatchdog/hashx === RUN TestChallengePagesHaveScriptWatchdog/metarefresh === RUN TestChallengePagesHaveScriptWatchdog/preact === RUN TestChallengePagesHaveScriptWatchdog/sha256 === RUN TestChallengePagesHaveScriptWatchdog/slow --- PASS: TestChallengePagesHaveScriptWatchdog (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/argon2id (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/fast (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/hashx (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/metarefresh (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/preact (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/sha256 (0.00s) --- PASS: TestChallengePagesHaveScriptWatchdog/slow (0.00s) === RUN TestPassChallengeRedirectIsUncacheable challenge_redirect_cache_test.go:13: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.053152561Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:42629","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.053380894Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:42629","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b74d-7516-a452-915f0791bba3","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.053465425Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:42629","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.053336822Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b74d-7516-a452-915f0791bba3","method":"fast","randomData":"01250e6ffc17b7f3836a9826976bdb7b6de033d081a3b88166ac07dbce77cf049518e752c6a3dc338f15c21358fd195475ad75fc145edcbfb3f824e112cd0315","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:42629/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b74d-7516-a452-915f0791bba3; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT challenge_redirect_cache_test.go:18: lib.challengeResp{ID:"01a1a9ac-b74d-7516-a452-915f0791bba3", Challenge:"01250e6ffc17b7f3836a9826976bdb7b6de033d081a3b88166ac07dbce77cf049518e752c6a3dc338f15c21358fd195475ad75fc145edcbfb3f824e112cd0315"} challenge_redirect_cache_test.go:18: elapsedTime=420&id=01a1a9ac-b74d-7516-a452-915f0791bba3&nonce=0&redir=%2F&response=3363a48312ffb42e4ac5be232d6c76eaa9190b0260b7998ea48b3f4c73c79931 anubis_test.go:196: requested cookies for http://127.0.0.1:42629/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b74d-7516-a452-915f0791bba3&nonce=0&redir=%2F&response=3363a48312ffb42e4ac5be232d6c76eaa9190b0260b7998ea48b3f4c73c79931 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-b74d-7516-a452-915f0791bba3; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.054364603Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:42629","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.054545781Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:42629","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b74d-7516-a452-915f0791bba3","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:11.054669491Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:42629","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b74d-7516-a452-915f0791bba3"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.054897102Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:42629","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b74d-7516-a452-915f0791bba3"} anubis_test.go:210: set cookie: http://127.0.0.1:42629/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b74d-7516-a452-915f0791bba3&nonce=0&redir=%2F&response=3363a48312ffb42e4ac5be232d6c76eaa9190b0260b7998ea48b3f4c73c79931 -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy1iNzRkLTc1MTYtYTQ1Mi05MTVmMDc5MWJiYTMiLCJleHAiOjE3OTM4NDgwMzEsImlhdCI6MTc5Mzg0ODAzMSwibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk3MSwicG9saWN5UnVsZSI6ImQyNGNmZmEyYzE4MGVkMjMifQ.rfMUAqUPUQ1Mv7JHb8LYy02uoeK7AUlHlSGvv7F_UdwecMqYAAm42UqPJR7cgyO5ITVW-w9_C9bUDHpx_SkwDg; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT --- PASS: TestPassChallengeRedirectIsUncacheable (0.16s) === RUN TestChallengeSpendIsExclusive challenge_spend_test.go:30: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.219277828Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:42021","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.219501094Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:42021","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b7f3-76ee-8481-229d5c453077","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.219585916Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:42021","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.219458594Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b7f3-76ee-8481-229d5c453077","method":"fast","randomData":"3b2db20d9869c77a3aaa8f6391167a6b0b8b89601a3d3029effb3fb70177bf7a692a9af857af87a9bd75519069a7c858ff6b6a45a613d4628150ad11e89432b9","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:42021/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b7f3-76ee-8481-229d5c453077; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.220463339Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220524077Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220576077Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220718573Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b7f3-76ee-8481-229d5c453077","elapsedTime":1} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220849491Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b7f3-76ee-8481-229d5c453077"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220902122Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220981608Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220924579Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22110648Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221185048Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220629764Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221187127Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22143659Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220877746Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22625657Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220479558Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220881382Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220956522Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.220468044Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221054363Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221165581Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221158754Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221156064Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b7f3-76ee-8481-229d5c453077"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22122525Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221221806Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.221375019Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226149431Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22659268Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226592686Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226273042Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226399989Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226421982Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22646094Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22649528Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226622141Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.226282242Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.227391905Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.227549058Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.227719763Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22785756Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22799508Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228127641Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228258753Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228391962Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228525116Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228678625Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228814489Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.228952206Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229083669Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229216103Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229349337Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229479999Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229619144Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.229766142Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.22989353Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230019847Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230153772Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230287561Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230415273Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230550861Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230704496Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230843551Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.230972151Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.231100183Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.231230514Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.231362868Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":676},"msg":"double spend prevented","host":"example.com","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"reason":"double_spend"} --- PASS: TestChallengeSpendIsExclusive (0.18s) === RUN TestChallengeSpendWriteFailureRejectsClearance challenge_spend_test.go:64: loading policy file: testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.383162654Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41229","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.383362396Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41229","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b897-74dd-8fd2-b349099777c7","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.383442159Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41229","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.383322523Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b897-74dd-8fd2-b349099777c7","method":"fast","randomData":"269d06caf95e5afe91929053401e7590d053683392fbca99c8bfc57ab629f9950fc77a70e4945dfc74890a7767aaa8cb5da76bc796c78af7f43386c46f35e1f3","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:41229/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b897-74dd-8fd2-b349099777c7; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT challenge_spend_test.go:70: lib.challengeResp{ID:"01a1a9ac-b897-74dd-8fd2-b349099777c7", Challenge:"269d06caf95e5afe91929053401e7590d053683392fbca99c8bfc57ab629f9950fc77a70e4945dfc74890a7767aaa8cb5da76bc796c78af7f43386c46f35e1f3"} challenge_spend_test.go:70: elapsedTime=420&id=01a1a9ac-b897-74dd-8fd2-b349099777c7&nonce=0&redir=%2F&response=e9094bec56cbacea995814bfbc72bd626c0716173655b4daba77fb5cfae5527e anubis_test.go:196: requested cookies for http://127.0.0.1:41229/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b897-74dd-8fd2-b349099777c7&nonce=0&redir=%2F&response=e9094bec56cbacea995814bfbc72bd626c0716173655b4daba77fb5cfae5527e anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-b897-74dd-8fd2-b349099777c7; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.384429222Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:41229","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.384644837Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:41229","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b897-74dd-8fd2-b349099777c7","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:11.384793409Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":749},"msg":"can't update information about challenge","host":"127.0.0.1:41229","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b897-74dd-8fd2-b349099777c7","err":"store: can't encode value"} --- PASS: TestChallengeSpendWriteFailureRejectsClearance (0.15s) === RUN TestPassChallengeRejectsEveryValidationError === RUN TestPassChallengeRejectsEveryValidationError/plain challenge_validation_security_test.go:36: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.511261715Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:33271","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.511469637Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:33271","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b917-767a-b7ca-e5f992a3bbb4","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.511571622Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:33271","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.511428355Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b917-767a-b7ca-e5f992a3bbb4","method":"fast","randomData":"5fc33e65f4a94b8431a55a4e2e9820cab5f0a08957ead90c0217b458a433647221214bc7dbb94be14c691d5d1e3cd7968d5bea86c0bc87e93a1f38666a2345c0","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:33271/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b917-767a-b7ca-e5f992a3bbb4; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT challenge_validation_security_test.go:41: lib.challengeResp{ID:"01a1a9ac-b917-767a-b7ca-e5f992a3bbb4", Challenge:"5fc33e65f4a94b8431a55a4e2e9820cab5f0a08957ead90c0217b458a433647221214bc7dbb94be14c691d5d1e3cd7968d5bea86c0bc87e93a1f38666a2345c0"} challenge_validation_security_test.go:41: elapsedTime=420&id=01a1a9ac-b917-767a-b7ca-e5f992a3bbb4&nonce=0&redir=%2F&response=653f8b65267f8c2b525e44effebb20a23e51be90dccf3789f5d53e001c524517 anubis_test.go:196: requested cookies for http://127.0.0.1:33271/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b917-767a-b7ca-e5f992a3bbb4&nonce=0&redir=%2F&response=653f8b65267f8c2b525e44effebb20a23e51be90dccf3789f5d53e001c524517 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-b917-767a-b7ca-e5f992a3bbb4; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.512564309Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:33271","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.512766227Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":710},"msg":"challenge validate call failed","host":"127.0.0.1:33271","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b917-767a-b7ca-e5f992a3bbb4","err":"validation unavailable"} anubis_test.go:210: set cookie: http://127.0.0.1:33271/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b917-767a-b7ca-e5f992a3bbb4&nonce=0&redir=%2F&response=653f8b65267f8c2b525e44effebb20a23e51be90dccf3789f5d53e001c524517 -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:11 GMT; Max-Age=0 === RUN TestPassChallengeRejectsEveryValidationError/wrapped_without_sentinel challenge_validation_security_test.go:36: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.683545947Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40669","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.683788739Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:40669","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.683872376Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:40669","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.683743957Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749","method":"fast","randomData":"b5c61af92b2c2a081cbefaa0a883e9736735e815a338b96b289646a557caee92176061a42f824fec5d5d0eb75f9f06cd8d45ba85eacf7803736e2cc66d27f314","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:40669/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT challenge_validation_security_test.go:41: lib.challengeResp{ID:"01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749", Challenge:"b5c61af92b2c2a081cbefaa0a883e9736735e815a338b96b289646a557caee92176061a42f824fec5d5d0eb75f9f06cd8d45ba85eacf7803736e2cc66d27f314"} challenge_validation_security_test.go:41: elapsedTime=420&id=01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749&nonce=0&redir=%2F&response=9b1c8bbecbb03564c720e0dafefedffc4c132570d106b7a5e4237e6603a3b527 anubis_test.go:196: requested cookies for http://127.0.0.1:40669/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749&nonce=0&redir=%2F&response=9b1c8bbecbb03564c720e0dafefedffc4c132570d106b7a5e4237e6603a3b527 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.684918185Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:40669","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.685125746Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":710},"msg":"challenge validate call failed","host":"127.0.0.1:40669","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749","err":"challenge: error when processing challenge: validate: validation unavailable"} anubis_test.go:210: set cookie: http://127.0.0.1:40669/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-b9c3-7b4b-bc3e-e6676fe95749&nonce=0&redir=%2F&response=9b1c8bbecbb03564c720e0dafefedffc4c132570d106b7a5e4237e6603a3b527 -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:11 GMT; Max-Age=0 === RUN TestPassChallengeRejectsEveryValidationError/failed_sentinel challenge_validation_security_test.go:36: loading policy file: ./testdata/zero_difficulty.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:11.844575151Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39337","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.844813044Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:39337","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5","weight":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.844868726Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:39337","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":{"issuedAt":"2026-11-05T03:07:11.844758004Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5","method":"fast","randomData":"cd6e67958667a01eef9c8d3272525761c395b5116b17cc7b0d9e1fe5066279aae875ba3a2898f7151941e8759bdcf3a95846bb1d2af3c5e2f5e69113c4f8474c","policyRuleHash":"d24cffa2c180ed23","spent":false,"extensions":null},"rules":{"algorithm":"fast"},"cr":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:210: set cookie: http://127.0.0.1:39337/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT challenge_validation_security_test.go:41: lib.challengeResp{ID:"01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5", Challenge:"cd6e67958667a01eef9c8d3272525761c395b5116b17cc7b0d9e1fe5066279aae875ba3a2898f7151941e8759bdcf3a95846bb1d2af3c5e2f5e69113c4f8474c"} challenge_validation_security_test.go:41: elapsedTime=420&id=01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5&nonce=0&redir=%2F&response=34a7ea0aaede071b395839e8b6c64098a056bce2f524cf403fbf1f29d94b1788 anubis_test.go:196: requested cookies for http://127.0.0.1:39337/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5&nonce=0&redir=%2F&response=34a7ea0aaede071b395839e8b6c64098a056bce2f524cf403fbf1f29d94b1788 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5; Path=/; Expires=Thu, 05 Nov 2026 03:07:11 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:11.846199071Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"127.0.0.1:39337","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:11.846431621Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":710},"msg":"challenge validate call failed","host":"127.0.0.1:39337","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5","err":"challenge: error when processing challenge: validate: challenge: user failed challenge"} anubis_test.go:45: {"time":"2026-11-05T03:07:11.846522019Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":716},"msg":"challenge failed","host":"127.0.0.1:39337","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"challenge":"01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5","err":"challenge: error when processing challenge: validate: challenge: user failed challenge"} anubis_test.go:210: set cookie: http://127.0.0.1:39337/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-ba64-7b7f-8928-a2a28c8d11a5&nonce=0&redir=%2F&response=34a7ea0aaede071b395839e8b6c64098a056bce2f524cf403fbf1f29d94b1788 -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:11 GMT; Max-Age=0 --- PASS: TestPassChallengeRejectsEveryValidationError (0.46s) --- PASS: TestPassChallengeRejectsEveryValidationError/plain (0.13s) --- PASS: TestPassChallengeRejectsEveryValidationError/wrapped_without_sentinel (0.17s) --- PASS: TestPassChallengeRejectsEveryValidationError/failed_sentinel (0.16s) === RUN TestCheckResponsesNoStore === RUN TestCheckResponsesNoStore/#00 check_cache_test.go:13: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.014569598Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:12.014731955Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:12.014775809Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"path":"/.within.website/x/cmd/anubis/api/check"} === RUN TestCheckResponsesNoStore/https://anubis.example.com check_cache_test.go:13: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.165653554Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).check","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":895},"msg":"adjusting weight","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","name":"generic-browser","delta":10} anubis_test.go:45: {"time":"2026-11-05T03:07:12.165841227Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10}} anubis_test.go:45: {"time":"2026-11-05T03:07:12.165902113Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"example.com","method":"GET","path":"/.within.website/x/cmd/anubis/api/check","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"192.0.2.1","check_result":{"name":"threshold/minimal-suspicion","rule":"CHALLENGE","weight":10},"path":"/.within.website/x/cmd/anubis/api/check"} --- PASS: TestCheckResponsesNoStore (0.32s) --- PASS: TestCheckResponsesNoStore/#00 (0.17s) --- PASS: TestCheckResponsesNoStore/https://anubis.example.com (0.15s) === RUN TestInvalidChallengeMethod --- PASS: TestInvalidChallengeMethod (0.00s) === RUN TestBadConfigs === RUN TestBadConfigs/badregexes.json config_test.go:31: can't parse policy file config/testdata/bad/badregexes.json: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` bot 2: config: bot entry for "headers-bad" is not valid: config.Bot: must set one of user_agent_regex, path_regex, headers_regex, remote_addresses, remote_addresses_url, expression, asns, or geoip === RUN TestBadConfigs/badregexes.yaml config_test.go:31: can't parse policy file config/testdata/bad/badregexes.yaml: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` === RUN TestBadConfigs/challenge-extension-empty.yaml config_test.go:31: can't parse policy file config/testdata/bad/challenge-extension-empty.yaml: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name must not be empty === RUN TestBadConfigs/challenge-extension-repeated.yaml config_test.go:31: can't parse policy file config/testdata/bad/challenge-extension-repeated.yaml: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name was repeated: "test-extension" === RUN TestBadConfigs/dns-ttl-custom.yaml config_test.go:31: can't parse policy file config/testdata/bad/dns-ttl-custom.yaml: can't parse policy config YAML config/testdata/bad/dns-ttl-custom.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field .dns_ttl.reverse of type int === RUN TestBadConfigs/geoip-auto-update-no-account.yaml config_test.go:31: can't parse policy file config/testdata/bad/geoip-auto-update-no-account.yaml: config is not valid: config.GeoIPDatabases: invalid geoip settings: auto_update: config.GeoIPAutoUpdate: must define account_id config.GeoIPAutoUpdate: environment variable named by license_key_env is not set: ANUBIS_TEST_MAXMIND_LICENSE_KEY_THAT_IS_NOT_SET config.GeoIPAutoUpdate: interval is too short: 5m0s is less than 1h0m0s === RUN TestBadConfigs/geoip-invalid-country-field.yaml config_test.go:31: can't parse policy file config/testdata/bad/geoip-invalid-country-field.yaml: config is not valid: config.GeoIPDatabases: invalid geoip settings: country: config.GeoIPDatabase: invalid country_field: "continent", must be one of "country" or "registered_country" === RUN TestBadConfigs/geoip-no-path.yaml config_test.go:31: can't parse policy file config/testdata/bad/geoip-no-path.yaml: config is not valid: config.GeoIPDatabases: invalid geoip settings: asn: config.GeoIPDatabase: must define path === RUN TestBadConfigs/honeypot-empty-implementation.yaml config_test.go:31: can't parse policy file config/testdata/bad/honeypot-empty-implementation.yaml: config is not valid: config.Honeypot: missing field "implementation": config: missing value config.Honeypot: invalid implementation selected (try: "naive"): got: "" === RUN TestBadConfigs/honeypot-invalid-implementation.json config_test.go:31: can't parse policy file config/testdata/bad/honeypot-invalid-implementation.json: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestBadConfigs/honeypot-invalid-implementation.yaml config_test.go:31: can't parse policy file config/testdata/bad/honeypot-invalid-implementation.yaml: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestBadConfigs/import-invalid-pattern.yaml config_test.go:31: can't parse policy file config/testdata/bad/import-invalid-pattern.yaml: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*[abc]abc]\.yaml: config.ImportStatement: glob pattern matched no files === RUN TestBadConfigs/import-no-match.yaml config_test.go:31: can't parse policy file config/testdata/bad/import-no-match.yaml: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*.yaml: config.ImportStatement: glob pattern matched no files === RUN TestBadConfigs/import_and_bot.json config_test.go:31: can't parse policy file config/testdata/bad/import_and_bot.json: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_and_bot.yaml config_test.go:31: can't parse policy file config/testdata/bad/import_and_bot.yaml: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_invalid_file.json config_test.go:31: can't parse policy file config/testdata/bad/import_invalid_file.json: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestBadConfigs/import_invalid_file.yaml config_test.go:31: can't parse policy file config/testdata/bad/import_invalid_file.yaml: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestBadConfigs/impressum-no-footer.yaml config_test.go:31: can't parse policy file config/testdata/bad/impressum-no-footer.yaml: errors validating policy config config/testdata/bad/impressum-no-footer.yaml: config: missing value: impressum footer must be defined === RUN TestBadConfigs/impressum-no-page-contents.yaml config_test.go:31: can't parse policy file config/testdata/bad/impressum-no-page-contents.yaml: errors validating policy config config/testdata/bad/impressum-no-page-contents.yaml: config: missing value: impressum page title must be defined config: missing value: impressum body title must be defined === RUN TestBadConfigs/invalid.json config_test.go:31: can't parse policy file config/testdata/bad/invalid.json: config is not valid: bot 0: config.BotOrImport: rule definition is invalid, you must set either bot rules or an import statement, not both === RUN TestBadConfigs/invalid.yaml config_test.go:31: can't parse policy file config/testdata/bad/invalid.yaml: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/logging-invalid-sink.yaml config_test.go:31: can't parse policy file config/testdata/bad/logging-invalid-sink.yaml: config is not valid: config: must define at least one (1) bot rule config.Logging: invalid sink: sink nope is unknown to me === RUN TestBadConfigs/logging-no-parameters.yaml config_test.go:31: can't parse policy file config/testdata/bad/logging-no-parameters.yaml: config is not valid: config: must define at least one (1) bot rule config.Logging: missing value parameters in logging block logging file config is nil, why are you calling this? === RUN TestBadConfigs/metrics-invalid-net.yaml config_test.go:31: can't parse policy file config/testdata/bad/metrics-invalid-net.yaml: config is not valid: config: must define at least one (1) bot rule config: invalid metrics configuration config.Metrics: invalid metrics network === RUN TestBadConfigs/multiple_expression_types.json config_test.go:31: can't parse policy file config/testdata/bad/multiple_expression_types.json: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestBadConfigs/multiple_expression_types.yaml config_test.go:31: can't parse policy file config/testdata/bad/multiple_expression_types.yaml: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestBadConfigs/nobots.json config_test.go:31: can't parse policy file config/testdata/bad/nobots.json: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/nobots.yaml config_test.go:31: can't parse policy file config/testdata/bad/nobots.yaml: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/opengraph_bad_ttl.yaml config_test.go:31: can't parse policy file config/testdata/bad/opengraph_bad_ttl.yaml: config is not valid: config.OpenGraph: invalid OpenGraph configuration config.OpenGraph: ttl does not parse as a Duration, see https://pkg.go.dev/time#ParseDuration (formatted like 5m -> 5 minutes, 2h -> 2 hours, etc): ParseDuration("taco") returned: time: invalid duration "taco" === RUN TestBadConfigs/regex_ends_newline.json config_test.go:31: can't parse policy file config/testdata/bad/regex_ends_newline.json: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestBadConfigs/regex_ends_newline.yaml config_test.go:31: can't parse policy file config/testdata/bad/regex_ends_newline.yaml: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestBadConfigs/remote-and-url.yaml config_test.go:31: can't parse policy file config/testdata/bad/remote-and-url.yaml: config is not valid: bot 0: config: bot entry for "both-addr-kinds" is not valid: config.Bot: must set either remote_addresses or remote_addresses_url, and not both === RUN TestBadConfigs/status-codes-0.json config_test.go:31: can't parse policy file config/testdata/bad/status-codes-0.json: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestBadConfigs/status-codes-0.yaml config_test.go:31: can't parse policy file config/testdata/bad/status-codes-0.yaml: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestBadConfigs/threshold-challenge-without-challenge.yaml config_test.go:31: can't parse policy file config/testdata/bad/threshold-challenge-without-challenge.yaml: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestBadConfigs/thresholds.yaml config_test.go:31: can't parse policy file config/testdata/bad/thresholds.yaml: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestBadConfigs/unparseable.json config_test.go:31: can't parse policy file config/testdata/bad/unparseable.json: can't parse policy config YAML config/testdata/bad/unparseable.json: error converting YAML to JSON: yaml: did not find expected node content === RUN TestBadConfigs/unparseable.yaml config_test.go:31: can't parse policy file config/testdata/bad/unparseable.yaml: can't parse policy config YAML config/testdata/bad/unparseable.yaml: error converting YAML to JSON: yaml: did not find expected node content --- PASS: TestBadConfigs (0.01s) --- PASS: TestBadConfigs/badregexes.json (0.00s) --- PASS: TestBadConfigs/badregexes.yaml (0.00s) --- PASS: TestBadConfigs/challenge-extension-empty.yaml (0.00s) --- PASS: TestBadConfigs/challenge-extension-repeated.yaml (0.00s) --- PASS: TestBadConfigs/dns-ttl-custom.yaml (0.00s) --- PASS: TestBadConfigs/geoip-auto-update-no-account.yaml (0.00s) --- PASS: TestBadConfigs/geoip-invalid-country-field.yaml (0.00s) --- PASS: TestBadConfigs/geoip-no-path.yaml (0.00s) --- PASS: TestBadConfigs/honeypot-empty-implementation.yaml (0.00s) --- PASS: TestBadConfigs/honeypot-invalid-implementation.json (0.00s) --- PASS: TestBadConfigs/honeypot-invalid-implementation.yaml (0.00s) --- PASS: TestBadConfigs/import-invalid-pattern.yaml (0.00s) --- PASS: TestBadConfigs/import-no-match.yaml (0.00s) --- PASS: TestBadConfigs/import_and_bot.json (0.00s) --- PASS: TestBadConfigs/import_and_bot.yaml (0.00s) --- PASS: TestBadConfigs/import_invalid_file.json (0.00s) --- PASS: TestBadConfigs/import_invalid_file.yaml (0.00s) --- PASS: TestBadConfigs/impressum-no-footer.yaml (0.00s) --- PASS: TestBadConfigs/impressum-no-page-contents.yaml (0.00s) --- PASS: TestBadConfigs/invalid.json (0.00s) --- PASS: TestBadConfigs/invalid.yaml (0.00s) --- PASS: TestBadConfigs/logging-invalid-sink.yaml (0.00s) --- PASS: TestBadConfigs/logging-no-parameters.yaml (0.00s) --- PASS: TestBadConfigs/metrics-invalid-net.yaml (0.00s) --- PASS: TestBadConfigs/multiple_expression_types.json (0.00s) --- PASS: TestBadConfigs/multiple_expression_types.yaml (0.00s) --- PASS: TestBadConfigs/nobots.json (0.00s) --- PASS: TestBadConfigs/nobots.yaml (0.00s) --- PASS: TestBadConfigs/opengraph_bad_ttl.yaml (0.00s) --- PASS: TestBadConfigs/regex_ends_newline.json (0.00s) --- PASS: TestBadConfigs/regex_ends_newline.yaml (0.00s) --- PASS: TestBadConfigs/remote-and-url.yaml (0.00s) --- PASS: TestBadConfigs/status-codes-0.json (0.00s) --- PASS: TestBadConfigs/status-codes-0.yaml (0.00s) --- PASS: TestBadConfigs/threshold-challenge-without-challenge.yaml (0.00s) --- PASS: TestBadConfigs/thresholds.yaml (0.00s) --- PASS: TestBadConfigs/unparseable.json (0.00s) --- PASS: TestBadConfigs/unparseable.yaml (0.00s) === RUN TestGoodConfigs === RUN TestGoodConfigs/allow_everyone.json === RUN TestGoodConfigs/allow_everyone.json/with-geoip === RUN TestGoodConfigs/allow_everyone.json/without-geoip === RUN TestGoodConfigs/allow_everyone.yaml === RUN TestGoodConfigs/allow_everyone.yaml/with-geoip === RUN TestGoodConfigs/allow_everyone.yaml/without-geoip === RUN TestGoodConfigs/block_cf_workers.json === RUN TestGoodConfigs/block_cf_workers.json/with-geoip === RUN TestGoodConfigs/block_cf_workers.json/without-geoip === RUN TestGoodConfigs/block_cf_workers.yaml === RUN TestGoodConfigs/block_cf_workers.yaml/with-geoip === RUN TestGoodConfigs/block_cf_workers.yaml/without-geoip === RUN TestGoodConfigs/challenge-extensions.yaml === RUN TestGoodConfigs/challenge-extensions.yaml/with-geoip === RUN TestGoodConfigs/challenge-extensions.yaml/without-geoip === RUN TestGoodConfigs/challenge_cloudflare.yaml === RUN TestGoodConfigs/challenge_cloudflare.yaml/with-geoip === RUN TestGoodConfigs/challenge_cloudflare.yaml/without-geoip {"time":"2026-11-05T03:07:12.19151003Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335]}} === RUN TestGoodConfigs/challengemozilla.json === RUN TestGoodConfigs/challengemozilla.json/with-geoip === RUN TestGoodConfigs/challengemozilla.json/without-geoip === RUN TestGoodConfigs/challengemozilla.yaml === RUN TestGoodConfigs/challengemozilla.yaml/with-geoip === RUN TestGoodConfigs/challengemozilla.yaml/without-geoip === RUN TestGoodConfigs/dns-ttl-custom.yaml === RUN TestGoodConfigs/dns-ttl-custom.yaml/with-geoip === RUN TestGoodConfigs/dns-ttl-custom.yaml/without-geoip === RUN TestGoodConfigs/entropy.yaml === RUN TestGoodConfigs/entropy.yaml/with-geoip === RUN TestGoodConfigs/entropy.yaml/without-geoip === RUN TestGoodConfigs/everything_blocked.json === RUN TestGoodConfigs/everything_blocked.json/with-geoip === RUN TestGoodConfigs/everything_blocked.json/without-geoip === RUN TestGoodConfigs/everything_blocked.yaml === RUN TestGoodConfigs/everything_blocked.yaml/with-geoip === RUN TestGoodConfigs/everything_blocked.yaml/without-geoip === RUN TestGoodConfigs/geoip_us.yaml === RUN TestGoodConfigs/geoip_us.yaml/with-geoip === RUN TestGoodConfigs/geoip_us.yaml/without-geoip {"time":"2026-11-05T03:07:12.204981407Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["US"]}} === RUN TestGoodConfigs/git_client.json === RUN TestGoodConfigs/git_client.json/with-geoip === RUN TestGoodConfigs/git_client.json/without-geoip === RUN TestGoodConfigs/git_client.yaml === RUN TestGoodConfigs/git_client.yaml/with-geoip === RUN TestGoodConfigs/git_client.yaml/without-geoip === RUN TestGoodConfigs/honeypot-disabled.yaml === RUN TestGoodConfigs/honeypot-disabled.yaml/with-geoip === RUN TestGoodConfigs/honeypot-disabled.yaml/without-geoip === RUN TestGoodConfigs/honeypot.json === RUN TestGoodConfigs/honeypot.json/with-geoip === RUN TestGoodConfigs/honeypot.json/without-geoip === RUN TestGoodConfigs/honeypot.yaml === RUN TestGoodConfigs/honeypot.yaml/with-geoip === RUN TestGoodConfigs/honeypot.yaml/without-geoip === RUN TestGoodConfigs/import-all-bots.yaml === RUN TestGoodConfigs/import-all-bots.yaml/with-geoip === RUN TestGoodConfigs/import-all-bots.yaml/without-geoip === RUN TestGoodConfigs/import_filesystem.json === RUN TestGoodConfigs/import_filesystem.json/with-geoip === RUN TestGoodConfigs/import_filesystem.json/without-geoip === RUN TestGoodConfigs/import_filesystem.yaml === RUN TestGoodConfigs/import_filesystem.yaml/with-geoip === RUN TestGoodConfigs/import_filesystem.yaml/without-geoip === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml/with-geoip === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml/without-geoip === RUN TestGoodConfigs/import_keep_internet_working.json === RUN TestGoodConfigs/import_keep_internet_working.json/with-geoip === RUN TestGoodConfigs/import_keep_internet_working.json/without-geoip === RUN TestGoodConfigs/import_keep_internet_working.yaml === RUN TestGoodConfigs/import_keep_internet_working.yaml/with-geoip === RUN TestGoodConfigs/import_keep_internet_working.yaml/without-geoip === RUN TestGoodConfigs/impressum.yaml === RUN TestGoodConfigs/impressum.yaml/with-geoip === RUN TestGoodConfigs/impressum.yaml/without-geoip === RUN TestGoodConfigs/logging-file.yaml === RUN TestGoodConfigs/logging-file.yaml/with-geoip === RUN TestGoodConfigs/logging-file.yaml/without-geoip === RUN TestGoodConfigs/logging-stdio.yaml === RUN TestGoodConfigs/logging-stdio.yaml/with-geoip === RUN TestGoodConfigs/logging-stdio.yaml/without-geoip === RUN TestGoodConfigs/no-thresholds.yaml === RUN TestGoodConfigs/no-thresholds.yaml/with-geoip === RUN TestGoodConfigs/no-thresholds.yaml/without-geoip === RUN TestGoodConfigs/old_xesite.json === RUN TestGoodConfigs/old_xesite.json/with-geoip === RUN TestGoodConfigs/old_xesite.json/without-geoip === RUN TestGoodConfigs/opengraph_all_good.yaml === RUN TestGoodConfigs/opengraph_all_good.yaml/with-geoip === RUN TestGoodConfigs/opengraph_all_good.yaml/without-geoip === RUN TestGoodConfigs/simple-weight.yaml === RUN TestGoodConfigs/simple-weight.yaml/with-geoip === RUN TestGoodConfigs/simple-weight.yaml/without-geoip === RUN TestGoodConfigs/status-codes-paranoid.json === RUN TestGoodConfigs/status-codes-paranoid.json/with-geoip === RUN TestGoodConfigs/status-codes-paranoid.json/without-geoip === RUN TestGoodConfigs/status-codes-paranoid.yaml === RUN TestGoodConfigs/status-codes-paranoid.yaml/with-geoip === RUN TestGoodConfigs/status-codes-paranoid.yaml/without-geoip === RUN TestGoodConfigs/status-codes-rfc.json === RUN TestGoodConfigs/status-codes-rfc.json/with-geoip === RUN TestGoodConfigs/status-codes-rfc.json/without-geoip === RUN TestGoodConfigs/status-codes-rfc.yaml === RUN TestGoodConfigs/status-codes-rfc.yaml/with-geoip === RUN TestGoodConfigs/status-codes-rfc.yaml/without-geoip === RUN TestGoodConfigs/thresholds.yaml === RUN TestGoodConfigs/thresholds.yaml/with-geoip === RUN TestGoodConfigs/thresholds.yaml/without-geoip === RUN TestGoodConfigs/weight-no-weight.yaml === RUN TestGoodConfigs/weight-no-weight.yaml/with-geoip === RUN TestGoodConfigs/weight-no-weight.yaml/without-geoip --- PASS: TestGoodConfigs (0.18s) --- PASS: TestGoodConfigs/allow_everyone.json (0.00s) --- PASS: TestGoodConfigs/allow_everyone.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/entropy.yaml (0.00s) --- PASS: TestGoodConfigs/entropy.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/entropy.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.json (0.00s) --- PASS: TestGoodConfigs/git_client.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.yaml (0.00s) --- PASS: TestGoodConfigs/git_client.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.json (0.00s) --- PASS: TestGoodConfigs/honeypot.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/import-all-bots.yaml (0.06s) --- PASS: TestGoodConfigs/import-all-bots.yaml/with-geoip (0.02s) --- PASS: TestGoodConfigs/import-all-bots.yaml/without-geoip (0.04s) --- PASS: TestGoodConfigs/import_filesystem.json (0.00s) --- PASS: TestGoodConfigs/import_filesystem.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml (0.01s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml/with-geoip (0.01s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml/without-geoip (0.01s) --- PASS: TestGoodConfigs/import_keep_internet_working.json (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml (0.01s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/impressum.yaml (0.00s) --- PASS: TestGoodConfigs/impressum.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/impressum.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/old_xesite.json (0.01s) --- PASS: TestGoodConfigs/old_xesite.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/old_xesite.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/thresholds.yaml (0.01s) --- PASS: TestGoodConfigs/thresholds.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/thresholds.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/weight-no-weight.yaml (0.01s) --- PASS: TestGoodConfigs/weight-no-weight.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/weight-no-weight.yaml/without-geoip (0.00s) === RUN TestDNSBLLookupDecision === RUN TestDNSBLLookupDecision/listed dnsbl_regression_test.go:24: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.505789842Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.50588074Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":512},"msg":"DNSBL hit","status":"HTTPProxy"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.506024685Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":512},"msg":"DNSBL hit","status":"HTTPProxy"} === RUN TestDNSBLLookupDecision/clean dnsbl_regression_test.go:24: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.63245941Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} === RUN TestDNSBLLookupDecision/transient_error dnsbl_regression_test.go:24: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.782161555Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.782223123Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":502},"msg":"can't look up ip in dnsbl","err":"lookup failed"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.782358991Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.782390992Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":502},"msg":"can't look up ip in dnsbl","err":"lookup failed"} --- PASS: TestDNSBLLookupDecision (0.43s) --- PASS: TestDNSBLLookupDecision/listed (0.15s) --- PASS: TestDNSBLLookupDecision/clean (0.13s) --- PASS: TestDNSBLLookupDecision/transient_error (0.15s) === RUN TestDNSBLRecoversAfterLookupError dnsbl_regression_test.go:42: loading policy file: ./testdata/test_config.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:12.910972245Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.911021103Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":502},"msg":"can't look up ip in dnsbl","err":"lookup failed"} anubis_test.go:45: {"time":"2026-11-05T03:07:12.911123669Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).handleDNSBLWithLookup","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":499},"msg":"looking up ip in dnsbl"} --- PASS: TestDNSBLRecoversAfterLookupError (0.13s) === RUN TestChallengeExtensionValidate === RUN TestChallengeExtensionValidate/accepted extension_test.go:129: loading policy file: ./testdata/challenge-extension.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:13.004928612Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41055","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-beec-7d36-8def-bc20e87229d0","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:13.005094562Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41055","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:13.004869027Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-beec-7d36-8def-bc20e87229d0","method":"fast","randomData":"270c019dca94e243ef1d0fbc9ffbf4c49126acdfdba371355543cb6b869583d7c75f3226e26e46bb17c9d28b3943777bb02ffda63565cf55fcf4ab8911fdec6a","policyRuleHash":"d082358d9cbcc647","spent":false,"extensions":["test-extension"]},"rules":{"algorithm":"fast","extensions":["test-extension"]},"cr":{"name":"bot/everyone","rule":"CHALLENGE","weight":0}} anubis_test.go:210: set cookie: http://127.0.0.1:41055/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-beec-7d36-8def-bc20e87229d0; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT extension_test.go:136: lib.challengeResp{ID:"01a1a9ac-beec-7d36-8def-bc20e87229d0", Challenge:"270c019dca94e243ef1d0fbc9ffbf4c49126acdfdba371355543cb6b869583d7c75f3226e26e46bb17c9d28b3943777bb02ffda63565cf55fcf4ab8911fdec6a"} extension_test.go:136: elapsedTime=420&id=01a1a9ac-beec-7d36-8def-bc20e87229d0&nonce=0&redir=%2F&response=9bc878c24bd6ce9b43212df6d8be0955ccc14f4219ac906d3b591cbe5be915ff anubis_test.go:196: requested cookies for http://127.0.0.1:41055/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-beec-7d36-8def-bc20e87229d0&nonce=0&redir=%2F&response=9bc878c24bd6ce9b43212df6d8be0955ccc14f4219ac906d3b591cbe5be915ff anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-beec-7d36-8def-bc20e87229d0; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:13.006010063Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:41055","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-beec-7d36-8def-bc20e87229d0","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:13.006157294Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":754},"msg":"challenge accepted","host":"127.0.0.1:41055","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-beec-7d36-8def-bc20e87229d0"} anubis_test.go:45: {"time":"2026-11-05T03:07:13.006395151Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":804},"msg":"challenge passed, redirecting to app","host":"127.0.0.1:41055","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-beec-7d36-8def-bc20e87229d0"} anubis_test.go:210: set cookie: http://127.0.0.1:41055/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-beec-7d36-8def-bc20e87229d0&nonce=0&redir=%2F&response=9bc878c24bd6ce9b43212df6d8be0955ccc14f4219ac906d3b591cbe5be915ff -> techaro.lol-anubis=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJDSEFMTEVOR0UiLCJjaGFsbGVuZ2UiOiIwMWExYTlhYy1iZWVjLTdkMzYtOGRlZi1iYzIwZTg3MjI5ZDAiLCJleHAiOjE3OTM4NDgwMzMsImlhdCI6MTc5Mzg0ODAzMywibWV0aG9kIjoiZmFzdCIsIm5iZiI6MTc5Mzg0Nzk3MywicG9saWN5UnVsZSI6ImQwODIzNThkOWNiY2M2NDcifQ.0X-CNS7R0SpVhWur6r_wORV1dhub8_ZivgNpG8yLatrJj9XNNq6PIA3YDz6hcKPGzhfYaEP6Or_xEvDYtWdwDA; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT === RUN TestChallengeExtensionValidate/refused_with_challenge_error extension_test.go:129: loading policy file: ./testdata/challenge-extension.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:13.131994034Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41129","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:13.132133892Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41129","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:13.131933135Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf","method":"fast","randomData":"d026f5d4b52293b47570358a9cbe0730f5833904bb66d9426b6b863579647f885167ea6890aa69e44888d8a41a84cbd9cb8985321bc3afde168429ddb5ee7b57","policyRuleHash":"d082358d9cbcc647","spent":false,"extensions":["test-extension"]},"rules":{"algorithm":"fast","extensions":["test-extension"]},"cr":{"name":"bot/everyone","rule":"CHALLENGE","weight":0}} anubis_test.go:210: set cookie: http://127.0.0.1:41129/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT extension_test.go:136: lib.challengeResp{ID:"01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf", Challenge:"d026f5d4b52293b47570358a9cbe0730f5833904bb66d9426b6b863579647f885167ea6890aa69e44888d8a41a84cbd9cb8985321bc3afde168429ddb5ee7b57"} extension_test.go:136: elapsedTime=420&id=01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf&nonce=0&redir=%2F&response=cbce2f824d8bfa4f1036e99327b3526e22fa9962554531bcf2f574860ce45f0d anubis_test.go:196: requested cookies for http://127.0.0.1:41129/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf&nonce=0&redir=%2F&response=cbce2f824d8bfa4f1036e99327b3526e22fa9962554531bcf2f574860ce45f0d anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:13.133040954Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:41129","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:13.133135598Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":734},"msg":"challenge extension failed","host":"127.0.0.1:41129","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf","extension":"test-extension","err":"challenge: error when processing challenge: validate: challenge: user failed challenge"} anubis_test.go:210: set cookie: http://127.0.0.1:41129/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-bf6b-7e2b-88bf-693b41e1cebf&nonce=0&redir=%2F&response=cbce2f824d8bfa4f1036e99327b3526e22fa9962554531bcf2f574860ce45f0d -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:13 GMT; Max-Age=0 === RUN TestChallengeExtensionValidate/refused_with_plain_error extension_test.go:129: loading policy file: ./testdata/challenge-extension.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:13.246895664Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:41957","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bfde-7ca2-9472-69924ee86a4c","weight":0} anubis_test.go:45: {"time":"2026-11-05T03:07:13.247062605Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":600},"msg":"made challenge","host":"127.0.0.1:41957","method":"POST","path":"/.within.website/x/cmd/anubis/api/make-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":{"issuedAt":"2026-11-05T03:07:13.246831657Z","metadata":{"Referer":"","User-Agent":"Mozilla/5.0","X-Real-IP":"127.0.0.1"},"id":"01a1a9ac-bfde-7ca2-9472-69924ee86a4c","method":"fast","randomData":"0a252b6f0802e3b9305de4a998795c713bae4cf1bf1f6d1934c2b6777c655f85216c7a90f9bb080a7994c23c2046421ae7b7ed8283815955b9d7ccd5d6418b38","policyRuleHash":"d082358d9cbcc647","spent":false,"extensions":["test-extension"]},"rules":{"algorithm":"fast","extensions":["test-extension"]},"cr":{"name":"bot/everyone","rule":"CHALLENGE","weight":0}} anubis_test.go:210: set cookie: http://127.0.0.1:41957/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-verification=01a1a9ac-bfde-7ca2-9472-69924ee86a4c; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT extension_test.go:136: lib.challengeResp{ID:"01a1a9ac-bfde-7ca2-9472-69924ee86a4c", Challenge:"0a252b6f0802e3b9305de4a998795c713bae4cf1bf1f6d1934c2b6777c655f85216c7a90f9bb080a7994c23c2046421ae7b7ed8283815955b9d7ccd5d6418b38"} extension_test.go:136: elapsedTime=420&id=01a1a9ac-bfde-7ca2-9472-69924ee86a4c&nonce=0&redir=%2F&response=613f6c0a1f5b3193966b12edf94254d3eeae8b55364d5821918f5c254f07d985 anubis_test.go:196: requested cookies for http://127.0.0.1:41957/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-bfde-7ca2-9472-69924ee86a4c&nonce=0&redir=%2F&response=613f6c0a1f5b3193966b12edf94254d3eeae8b55364d5821918f5c254f07d985 anubis_test.go:199: get cookie: <- techaro.lol-anubis-cookie-verification=01a1a9ac-bfde-7ca2-9472-69924ee86a4c; Path=/; Expires=Thu, 05 Nov 2026 03:07:13 GMT anubis_test.go:45: {"time":"2026-11-05T03:07:13.248072472Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork.(*Impl).Validate","file":"github.com/TecharoHQ/anubis/lib/challenge/proofofwork/proofofwork.go","line":91},"msg":"challenge took","host":"127.0.0.1:41957","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bfde-7ca2-9472-69924ee86a4c","elapsedTime":420} anubis_test.go:45: {"time":"2026-11-05T03:07:13.248195969Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":734},"msg":"challenge extension failed","host":"127.0.0.1:41957","method":"GET","path":"/.within.website/x/cmd/anubis/api/pass-challenge","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"challenge":"01a1a9ac-bfde-7ca2-9472-69924ee86a4c","extension":"test-extension","err":"store is down"} anubis_test.go:210: set cookie: http://127.0.0.1:41957/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&id=01a1a9ac-bfde-7ca2-9472-69924ee86a4c&nonce=0&redir=%2F&response=613f6c0a1f5b3193966b12edf94254d3eeae8b55364d5821918f5c254f07d985 -> techaro.lol-anubis=; Path=/; Expires=Thu, 05 Nov 2026 03:06:13 GMT; Max-Age=0 --- PASS: TestChallengeExtensionValidate (0.34s) --- PASS: TestChallengeExtensionValidate/accepted (0.10s) --- PASS: TestChallengeExtensionValidate/refused_with_challenge_error (0.13s) --- PASS: TestChallengeExtensionValidate/refused_with_plain_error (0.11s) === RUN TestChallengeExtensionHeadIsRendered extension_test.go:159: loading policy file: ./testdata/challenge-extension.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:13.372846683Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:45771","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:13.372944379Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"127.0.0.1:45771","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/everyone","rule":"CHALLENGE","weight":0},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:13.373116673Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:45771","method":"GET","path":"/","user_agent":"Mozilla/5.0","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-c05d-7026-86cc-f720a20b0c25","weight":0} anubis_test.go:210: set cookie: http://127.0.0.1:45771/ -> techaro.lol-anubis-cookie-verification=01a1a9ac-c05d-7026-86cc-f720a20b0c25; Path=/; Expires=Thu, 05 Nov 2026 03:37:13 GMT --- PASS: TestChallengeExtensionHeadIsRendered (0.13s) === RUN TestChallengeKnownExtensionMakesPolicyLoad --- PASS: TestChallengeKnownExtensionMakesPolicyLoad (0.00s) === RUN TestChallengeExtensionUnknownFailsPolicyLoad --- PASS: TestChallengeExtensionUnknownFailsPolicyLoad (0.00s) === RUN TestHS512SecretMinimumLength === RUN TestHS512SecretMinimumLength/0 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml === RUN TestHS512SecretMinimumLength/1 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml === RUN TestHS512SecretMinimumLength/32 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml === RUN TestHS512SecretMinimumLength/63 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml === RUN TestHS512SecretMinimumLength/64 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml === RUN TestHS512SecretMinimumLength/128 hs512_secret_test.go:19: loading policy file: testdata/zero_difficulty.yaml --- PASS: TestHS512SecretMinimumLength (0.52s) --- PASS: TestHS512SecretMinimumLength/0 (0.15s) --- PASS: TestHS512SecretMinimumLength/1 (0.03s) --- PASS: TestHS512SecretMinimumLength/32 (0.05s) --- PASS: TestHS512SecretMinimumLength/63 (0.04s) --- PASS: TestHS512SecretMinimumLength/64 (0.13s) --- PASS: TestHS512SecretMinimumLength/128 (0.13s) === RUN TestSetCookie === RUN TestSetCookie/basic http_test.go:41: loading policy file: ./testdata/test_config.yaml === RUN TestSetCookie/domain_techaro.lol http_test.go:41: loading policy file: ./testdata/test_config.yaml === RUN TestSetCookie/dynamic_cookie_domain http_test.go:41: loading policy file: ./testdata/test_config.yaml --- PASS: TestSetCookie (0.40s) --- PASS: TestSetCookie/basic (0.13s) --- PASS: TestSetCookie/domain_techaro.lol (0.15s) --- PASS: TestSetCookie/dynamic_cookie_domain (0.12s) === RUN TestClearCookie http_test.go:61: loading policy file: ./testdata/test_config.yaml --- PASS: TestClearCookie (0.13s) === RUN TestClearCookieWithDomain http_test.go:86: loading policy file: ./testdata/test_config.yaml --- PASS: TestClearCookieWithDomain (0.12s) === RUN TestClearCookieWithDynamicDomain http_test.go:111: loading policy file: ./testdata/test_config.yaml --- PASS: TestClearCookieWithDynamicDomain (0.15s) === RUN TestRenderIndexRedirect --- PASS: TestRenderIndexRedirect (0.00s) === RUN TestRenderIndexUnauthorized --- PASS: TestRenderIndexUnauthorized (0.00s) === RUN TestNoCacheOnError http_test.go:199: loading policy file: testdata/useragent.yaml === RUN TestNoCacheOnError/DENY === NAME TestNoCacheOnError anubis_test.go:45: {"time":"2026-11-05T03:07:14.801280663Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":464},"msg":"explicit deny","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:14.801414772Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":472},"msg":"rule hash","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY","weight":0},"hash":"484487c000d57854"} === RUN TestNoCacheOnError/CHALLENGE === NAME TestNoCacheOnError anubis_test.go:45: {"time":"2026-11-05T03:07:14.802175959Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":476},"msg":"challenge requested","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:14.802244543Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":366},"msg":"cookie not found","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE","weight":0},"path":"/"} anubis_test.go:45: {"time":"2026-11-05T03:07:14.802409568Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).issueChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":226},"msg":"new challenge issued","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","challenge":"01a1a9ac-c5f2-74ac-b45e-3ad8f3d0bb85","weight":0} === RUN TestNoCacheOnError/ALLOW === NAME TestNoCacheOnError anubis_test.go:45: {"time":"2026-11-05T03:07:14.80380253Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":458},"msg":"allowing traffic to origin (explicit)","host":"127.0.0.1:44101","method":"GET","path":"/","user_agent":"ALLOW","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/allow","rule":"ALLOW","weight":0}} --- PASS: TestNoCacheOnError (0.11s) --- PASS: TestNoCacheOnError/DENY (0.00s) --- PASS: TestNoCacheOnError/CHALLENGE (0.00s) --- PASS: TestNoCacheOnError/ALLOW (0.00s) === RUN TestRejectsHostlessRedirect http_test.go:230: loading policy file: testdata/useragent.yaml anubis_test.go:45: {"time":"2026-11-05T03:07:14.896876696Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).rejectRedirect","file":"github.com/TecharoHQ/anubis/lib/http.go","line":106},"msg":"invalid redirect","host":"anubis.example","method":"GET","path":"/.within.website/","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"","err":"invalid redirect"} --- PASS: TestRejectsHostlessRedirect (0.09s) === RUN TestMetricHostBound --- PASS: TestMetricHostBound (0.00s) === RUN TestPageCache page_cache_test.go:12: loading policy file: ./testdata/test_config.yaml === RUN TestPageCache/benchmark === RUN TestPageCache/happy === RUN TestPageCache/imprint === RUN TestPageCache/honeypot --- PASS: TestPageCache (0.16s) --- PASS: TestPageCache/benchmark (0.00s) --- PASS: TestPageCache/happy (0.00s) --- PASS: TestPageCache/imprint (0.00s) --- PASS: TestPageCache/honeypot (0.00s) === RUN TestAmbiguousPathCannotBypassDeny anubis_test.go:45: {"time":"2026-11-05T03:07:15.168145608Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":339},"msg":"check failed","host":"example.com","method":"GET","path":"/foo/../admin/secret","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"[unexpected] policy: administrator misconfiguration"} anubis_test.go:45: {"time":"2026-11-05T03:07:15.267568877Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":464},"msg":"explicit deny","host":"example.com","method":"GET","path":"//admin/secret","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/admin","rule":"DENY","weight":0}} anubis_test.go:45: {"time":"2026-11-05T03:07:15.267623535Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":472},"msg":"rule hash","host":"example.com","method":"GET","path":"//admin/secret","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/admin","rule":"DENY","weight":0},"hash":"cb3f04f70c80e71d"} anubis_test.go:45: {"time":"2026-11-05T03:07:15.357722646Z","level":"ERROR","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":339},"msg":"check failed","host":"example.com","method":"GET","path":"/admin/./secret","user_agent":"","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","err":"[unexpected] policy: administrator misconfiguration"} --- PASS: TestAmbiguousPathCannotBypassDeny (0.30s) === RUN TestRedirectSecurity === RUN TestRedirectSecurity/constructRedirectURL:_javascript_protocol_should_be_rejected 2026/11/05 03:07:15 WARN invalid protocol in X-Forwarded-Proto host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" proto=javascript redirect_security_test.go:221: expected error containing "invalid", got: Invalid redirect === RUN TestRedirectSecurity/constructRedirectURL:_data_protocol_should_be_rejected 2026/11/05 03:07:15 WARN invalid protocol in X-Forwarded-Proto host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" proto=data redirect_security_test.go:221: expected error containing "invalid", got: Invalid redirect === RUN TestRedirectSecurity/constructRedirectURL:_file_protocol_should_be_rejected redirect_security_test.go:221: expected error containing "invalid", got: Missing required X-Forwarded-* headers === RUN TestRedirectSecurity/constructRedirectURL:_ftp_protocol_should_be_rejected 2026/11/05 03:07:15 WARN invalid protocol in X-Forwarded-Proto host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" proto=ftp redirect_security_test.go:221: expected error containing "invalid", got: Invalid redirect === RUN TestRedirectSecurity/constructRedirectURL:_https_protocol_should_be_allowed === RUN TestRedirectSecurity/constructRedirectURL:_http_protocol_should_be_allowed === RUN TestRedirectSecurity/serveHTTPNext:_javascript:_URL_should_be_rejected === RUN TestRedirectSecurity/serveHTTPNext:_data:_URL_should_be_rejected === RUN TestRedirectSecurity/serveHTTPNext:_file:_URL_should_be_rejected === RUN TestRedirectSecurity/serveHTTPNext:_vbscript:_URL_should_be_rejected === RUN TestRedirectSecurity/serveHTTPNext:_valid_https_URL_should_work === RUN TestRedirectSecurity/serveHTTPNext:_valid_relative_URL_should_work === RUN TestRedirectSecurity/serveHTTPNext:_external_domain_should_be_blocked === RUN TestRedirectSecurity/serveHTTPNext:_relative_path_should_work === RUN TestRedirectSecurity/serveHTTPNext:_empty_redir_should_show_success_page === RUN TestRedirectSecurity/renderIndex:_javascript_protocol_in_X-Forwarded-Proto 2026/11/05 03:07:15 WARN invalid protocol in X-Forwarded-Proto host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" proto=javascript === RUN TestRedirectSecurity/renderIndex:_data_protocol_in_X-Forwarded-Proto 2026/11/05 03:07:15 WARN invalid protocol in X-Forwarded-Proto host=example.com method=GET path=/ user_agent="" accept_language="" priority="" x-forwarded-for="" x-real-ip="" proto=data === RUN TestRedirectSecurity/renderIndex:_valid_https_redirect --- PASS: TestRedirectSecurity (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_javascript_protocol_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_data_protocol_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_file_protocol_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_ftp_protocol_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_https_protocol_should_be_allowed (0.00s) --- PASS: TestRedirectSecurity/constructRedirectURL:_http_protocol_should_be_allowed (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_javascript:_URL_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_data:_URL_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_file:_URL_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_vbscript:_URL_should_be_rejected (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_valid_https_URL_should_work (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_valid_relative_URL_should_work (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_external_domain_should_be_blocked (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_relative_path_should_work (0.00s) --- PASS: TestRedirectSecurity/serveHTTPNext:_empty_redir_should_show_success_page (0.00s) --- PASS: TestRedirectSecurity/renderIndex:_javascript_protocol_in_X-Forwarded-Proto (0.00s) --- PASS: TestRedirectSecurity/renderIndex:_data_protocol_in_X-Forwarded-Proto (0.00s) --- PASS: TestRedirectSecurity/renderIndex:_valid_https_redirect (0.00s) === RUN TestValidateRedirect === RUN TestValidateRedirect//safe/path === RUN TestValidateRedirect/relative/path === RUN TestValidateRedirect//safe%2Fpath?q=%2F%2Fevil.com#fragment === RUN TestValidateRedirect/https://ALLOWED.example/path === RUN TestValidateRedirect/http://sub.allowed.example/ === RUN TestValidateRedirect/https://allowed.example:8443/ === RUN TestValidateRedirect/https://allowed.example:9443/ === RUN TestValidateRedirect/https://evil.com/ === RUN TestValidateRedirect/https://allowed.example@evil.com/ === RUN TestValidateRedirect/https:///evil.com/ === RUN TestValidateRedirect/http:/evil.com/ === RUN TestValidateRedirect/https:evil.com === RUN TestValidateRedirect///evil.com === RUN TestValidateRedirect///allowed.example === RUN TestValidateRedirect////evil.com === RUN TestValidateRedirect/////evil.com === RUN TestValidateRedirect//%2Fevil.com === RUN TestValidateRedirect//%2F%2Fevil.com === RUN TestValidateRedirect//%5Cevil.com === RUN TestValidateRedirect//\evil.com === RUN TestValidateRedirect/https://allowed.example\@evil.com/ === RUN TestValidateRedirect/_https://evil.com/ === RUN TestValidateRedirect//_evil.com === RUN TestValidateRedirect/javascript:alert(1) === RUN TestValidateRedirect/data:text/plain,test === RUN TestValidateRedirect/file:///etc/passwd === RUN TestValidateRedirect//%zz --- PASS: TestValidateRedirect (0.00s) --- PASS: TestValidateRedirect//safe/path (0.00s) --- PASS: TestValidateRedirect/relative/path (0.00s) --- PASS: TestValidateRedirect//safe%2Fpath?q=%2F%2Fevil.com#fragment (0.00s) --- PASS: TestValidateRedirect/https://ALLOWED.example/path (0.00s) --- PASS: TestValidateRedirect/http://sub.allowed.example/ (0.00s) --- PASS: TestValidateRedirect/https://allowed.example:8443/ (0.00s) --- PASS: TestValidateRedirect/https://allowed.example:9443/ (0.00s) --- PASS: TestValidateRedirect/https://evil.com/ (0.00s) --- PASS: TestValidateRedirect/https://allowed.example@evil.com/ (0.00s) --- PASS: TestValidateRedirect/https:///evil.com/ (0.00s) --- PASS: TestValidateRedirect/http:/evil.com/ (0.00s) --- PASS: TestValidateRedirect/https:evil.com (0.00s) --- PASS: TestValidateRedirect///evil.com (0.00s) --- PASS: TestValidateRedirect///allowed.example (0.00s) --- PASS: TestValidateRedirect////evil.com (0.00s) --- PASS: TestValidateRedirect/////evil.com (0.00s) --- PASS: TestValidateRedirect//%2Fevil.com (0.00s) --- PASS: TestValidateRedirect//%2F%2Fevil.com (0.00s) --- PASS: TestValidateRedirect//%5Cevil.com (0.00s) --- PASS: TestValidateRedirect//\evil.com (0.00s) --- PASS: TestValidateRedirect/https://allowed.example\@evil.com/ (0.00s) --- PASS: TestValidateRedirect/_https://evil.com/ (0.00s) --- PASS: TestValidateRedirect//_evil.com (0.00s) --- PASS: TestValidateRedirect/javascript:alert(1) (0.00s) --- PASS: TestValidateRedirect/data:text/plain,test (0.00s) --- PASS: TestValidateRedirect/file:///etc/passwd (0.00s) --- PASS: TestValidateRedirect//%zz (0.00s) === RUN TestRedirectHandlersRejectAmbiguousTargets === RUN TestRedirectHandlersRejectAmbiguousTargets/https:///evil.com/ === RUN TestRedirectHandlersRejectAmbiguousTargets/http:/evil.com/ === RUN TestRedirectHandlersRejectAmbiguousTargets/https:evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets///evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//%2Fevil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//\evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets////evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets/////evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//%2F%2Fevil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//%252Fevil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//%255Cevil.com === RUN TestRedirectHandlersRejectAmbiguousTargets/%20https://evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets//%09/evil.com === RUN TestRedirectHandlersRejectAmbiguousTargets/javascript:alert(1) === RUN TestRedirectHandlersRejectAmbiguousTargets///allowed.example --- PASS: TestRedirectHandlersRejectAmbiguousTargets (0.01s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/https:///evil.com/ (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/http:/evil.com/ (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/https:evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets///evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//%2Fevil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//\evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets////evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/////evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//%2F%2Fevil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//%252Fevil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//%255Cevil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/%20https://evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets//%09/evil.com (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets/javascript:alert(1) (0.00s) --- PASS: TestRedirectHandlersRejectAmbiguousTargets///allowed.example (0.00s) === RUN TestRedirectAllowedDestination --- PASS: TestRedirectAllowedDestination (0.00s) === RUN TestThresholdPolicyHashesAreDistinct threshold_identity_test.go:13: loading policy file: testdata/zero_difficulty.yaml --- PASS: TestThresholdPolicyHashesAreDistinct (0.14s) PASS ok github.com/TecharoHQ/anubis/lib 15.140s ? github.com/TecharoHQ/anubis/lib/challenge [no test files] === RUN TestExplanationHTML === RUN TestExplanationHTML/plain_text === RUN TestExplanationHTML/wikipedia_link === RUN TestExplanationHTML/localized_wikipedia_link === RUN TestExplanationHTML/script_tag === RUN TestExplanationHTML/javascript_href === RUN TestExplanationHTML/attribute_breakout === RUN TestExplanationHTML/markup_inside_link_text --- PASS: TestExplanationHTML (0.00s) --- PASS: TestExplanationHTML/plain_text (0.00s) --- PASS: TestExplanationHTML/wikipedia_link (0.00s) --- PASS: TestExplanationHTML/localized_wikipedia_link (0.00s) --- PASS: TestExplanationHTML/script_tag (0.00s) --- PASS: TestExplanationHTML/javascript_href (0.00s) --- PASS: TestExplanationHTML/attribute_breakout (0.00s) --- PASS: TestExplanationHTML/markup_inside_link_text (0.00s) === RUN TestExplanationRendersLink === RUN TestExplanationRendersLink/bg explanation_test.go:83: translation has no link === RUN TestExplanationRendersLink/ca === RUN TestExplanationRendersLink/cs === RUN TestExplanationRendersLink/de === RUN TestExplanationRendersLink/en === RUN TestExplanationRendersLink/es === RUN TestExplanationRendersLink/et === RUN TestExplanationRendersLink/eu === RUN TestExplanationRendersLink/fi === RUN TestExplanationRendersLink/fil === RUN TestExplanationRendersLink/fr === RUN TestExplanationRendersLink/hr explanation_test.go:83: translation has no link === RUN TestExplanationRendersLink/is === RUN TestExplanationRendersLink/it === RUN TestExplanationRendersLink/ja === RUN TestExplanationRendersLink/lt === RUN TestExplanationRendersLink/nb === RUN TestExplanationRendersLink/nl === RUN TestExplanationRendersLink/nn === RUN TestExplanationRendersLink/pl === RUN TestExplanationRendersLink/pt-BR === RUN TestExplanationRendersLink/pt-PT === RUN TestExplanationRendersLink/ru === RUN TestExplanationRendersLink/sv === RUN TestExplanationRendersLink/th explanation_test.go:83: translation has no link === RUN TestExplanationRendersLink/tr === RUN TestExplanationRendersLink/uk === RUN TestExplanationRendersLink/vi === RUN TestExplanationRendersLink/zh-CN === RUN TestExplanationRendersLink/zh-TW --- PASS: TestExplanationRendersLink (0.02s) --- SKIP: TestExplanationRendersLink/bg (0.00s) --- PASS: TestExplanationRendersLink/ca (0.01s) --- PASS: TestExplanationRendersLink/cs (0.00s) --- PASS: TestExplanationRendersLink/de (0.00s) --- PASS: TestExplanationRendersLink/en (0.00s) --- PASS: TestExplanationRendersLink/es (0.00s) --- PASS: TestExplanationRendersLink/et (0.00s) --- PASS: TestExplanationRendersLink/eu (0.00s) --- PASS: TestExplanationRendersLink/fi (0.00s) --- PASS: TestExplanationRendersLink/fil (0.00s) --- PASS: TestExplanationRendersLink/fr (0.00s) --- SKIP: TestExplanationRendersLink/hr (0.00s) --- PASS: TestExplanationRendersLink/is (0.00s) --- PASS: TestExplanationRendersLink/it (0.00s) --- PASS: TestExplanationRendersLink/ja (0.00s) --- PASS: TestExplanationRendersLink/lt (0.00s) --- PASS: TestExplanationRendersLink/nb (0.00s) --- PASS: TestExplanationRendersLink/nl (0.00s) --- PASS: TestExplanationRendersLink/nn (0.00s) --- PASS: TestExplanationRendersLink/pl (0.00s) --- PASS: TestExplanationRendersLink/pt-BR (0.00s) --- PASS: TestExplanationRendersLink/pt-PT (0.00s) --- PASS: TestExplanationRendersLink/ru (0.00s) --- PASS: TestExplanationRendersLink/sv (0.00s) --- SKIP: TestExplanationRendersLink/th (0.00s) --- PASS: TestExplanationRendersLink/tr (0.00s) --- PASS: TestExplanationRendersLink/uk (0.00s) --- PASS: TestExplanationRendersLink/vi (0.00s) --- PASS: TestExplanationRendersLink/zh-CN (0.00s) --- PASS: TestExplanationRendersLink/zh-TW (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/challenge/challengepage 0.033s === RUN TestNew --- PASS: TestNew (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/challenge/challengetest 0.019s ? github.com/TecharoHQ/anubis/lib/challenge/extension [no test files] === RUN TestCSSLoad === RUN TestCSSLoad/load-css === RUN TestCSSLoad/validate === RUN TestCSSLoad/validate-invalid --- PASS: TestCSSLoad (0.00s) --- PASS: TestCSSLoad/load-css (0.00s) --- PASS: TestCSSLoad/validate (0.00s) --- PASS: TestCSSLoad/validate-invalid (0.00s) === RUN TestHeadEscapesCSSURL --- PASS: TestHeadEscapesCSSURL (0.00s) === RUN TestValidateRejectsUnavailableStore --- PASS: TestValidateRejectsUnavailableStore (0.00s) === RUN FuzzRenderCSS === RUN FuzzRenderCSS/seed#0 === RUN FuzzRenderCSS/8643a79bab153d1b --- PASS: FuzzRenderCSS (0.00s) --- PASS: FuzzRenderCSS/seed#0 (0.00s) --- PASS: FuzzRenderCSS/8643a79bab153d1b (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/challenge/extension/css-load 0.019s ? github.com/TecharoHQ/anubis/lib/challenge/metarefresh [no test files] ? github.com/TecharoHQ/anubis/lib/challenge/preact [no test files] === RUN TestInvalidProofDoesNotRevealExpectedDigest === RUN TestInvalidProofDoesNotRevealExpectedDigest/fast === RUN TestInvalidProofDoesNotRevealExpectedDigest/slow --- PASS: TestInvalidProofDoesNotRevealExpectedDigest (0.00s) --- PASS: TestInvalidProofDoesNotRevealExpectedDigest/fast (0.00s) --- PASS: TestInvalidProofDoesNotRevealExpectedDigest/slow (0.00s) === RUN TestValidateNilRuleChallenge === RUN TestValidateNilRuleChallenge/nil-rule-challenge === RUN TestValidateNilRuleChallenge/nil-rule === RUN TestValidateNilRuleChallenge/nil-challenge === RUN TestValidateNilRuleChallenge/nil-input --- PASS: TestValidateNilRuleChallenge (0.00s) --- PASS: TestValidateNilRuleChallenge/nil-rule-challenge (0.00s) --- PASS: TestValidateNilRuleChallenge/nil-rule (0.00s) --- PASS: TestValidateNilRuleChallenge/nil-challenge (0.00s) --- PASS: TestValidateNilRuleChallenge/nil-input (0.00s) === RUN TestBasic === RUN TestBasic/allgood === RUN TestBasic/no-params === RUN TestBasic/missing-nonce === RUN TestBasic/missing-elapsedTime === RUN TestBasic/missing-response === RUN TestBasic/wrong-nonce-format === RUN TestBasic/wrong-elapsedTime-format === RUN TestBasic/invalid-response --- PASS: TestBasic (0.01s) --- PASS: TestBasic/allgood (0.01s) --- PASS: TestBasic/no-params (0.00s) --- PASS: TestBasic/missing-nonce (0.00s) --- PASS: TestBasic/missing-elapsedTime (0.00s) --- PASS: TestBasic/missing-response (0.00s) --- PASS: TestBasic/wrong-nonce-format (0.00s) --- PASS: TestBasic/wrong-elapsedTime-format (0.00s) --- PASS: TestBasic/invalid-response (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/challenge/proofofwork 0.032s === RUN TestValidateAdversarial === RUN TestValidateAdversarial/sha256 === RUN TestValidateAdversarial/sha256/valid-solution-passes === RUN TestValidateAdversarial/sha256/no-fields === RUN TestValidateAdversarial/sha256/missing-nonce === RUN TestValidateAdversarial/sha256/missing-elapsedTime === RUN TestValidateAdversarial/sha256/missing-response === RUN TestValidateAdversarial/sha256/nonce-not-an-integer === RUN TestValidateAdversarial/sha256/nonce-overflows-int === RUN TestValidateAdversarial/sha256/elapsedTime-not-a-number === RUN TestValidateAdversarial/sha256/response-not-hex === RUN TestValidateAdversarial/sha256/response-wrong-length === RUN TestValidateAdversarial/sha256/response-wrong-hash === RUN TestValidateAdversarial/sha256/nil-input === RUN TestValidateAdversarial/sha256/nil-rule === RUN TestValidateAdversarial/sha256/nil-rule-challenge === RUN TestValidateAdversarial/sha256/nil-challenge === RUN TestValidateAdversarial/hashx === RUN TestValidateAdversarial/hashx/valid-solution-passes === RUN TestValidateAdversarial/hashx/no-fields === RUN TestValidateAdversarial/hashx/missing-nonce === RUN TestValidateAdversarial/hashx/missing-elapsedTime === RUN TestValidateAdversarial/hashx/missing-response === RUN TestValidateAdversarial/hashx/nonce-not-an-integer === RUN TestValidateAdversarial/hashx/nonce-overflows-int === RUN TestValidateAdversarial/hashx/elapsedTime-not-a-number === RUN TestValidateAdversarial/hashx/response-not-hex === RUN TestValidateAdversarial/hashx/response-wrong-length === RUN TestValidateAdversarial/hashx/response-wrong-hash === RUN TestValidateAdversarial/hashx/nil-input === RUN TestValidateAdversarial/hashx/nil-rule === RUN TestValidateAdversarial/hashx/nil-rule-challenge === RUN TestValidateAdversarial/hashx/nil-challenge === RUN TestValidateAdversarial/argon2id === RUN TestValidateAdversarial/argon2id/valid-solution-passes === RUN TestValidateAdversarial/argon2id/no-fields === RUN TestValidateAdversarial/argon2id/missing-nonce === RUN TestValidateAdversarial/argon2id/missing-elapsedTime === RUN TestValidateAdversarial/argon2id/missing-response === RUN TestValidateAdversarial/argon2id/nonce-not-an-integer === RUN TestValidateAdversarial/argon2id/nonce-overflows-int === RUN TestValidateAdversarial/argon2id/elapsedTime-not-a-number === RUN TestValidateAdversarial/argon2id/response-not-hex === RUN TestValidateAdversarial/argon2id/response-wrong-length === RUN TestValidateAdversarial/argon2id/response-wrong-hash === RUN TestValidateAdversarial/argon2id/nil-input === RUN TestValidateAdversarial/argon2id/nil-rule === RUN TestValidateAdversarial/argon2id/nil-rule-challenge === RUN TestValidateAdversarial/argon2id/nil-challenge --- PASS: TestValidateAdversarial (1.85s) --- PASS: TestValidateAdversarial/sha256 (0.03s) --- PASS: TestValidateAdversarial/sha256/valid-solution-passes (0.00s) --- PASS: TestValidateAdversarial/sha256/no-fields (0.00s) --- PASS: TestValidateAdversarial/sha256/missing-nonce (0.00s) --- PASS: TestValidateAdversarial/sha256/missing-elapsedTime (0.00s) --- PASS: TestValidateAdversarial/sha256/missing-response (0.00s) --- PASS: TestValidateAdversarial/sha256/nonce-not-an-integer (0.00s) --- PASS: TestValidateAdversarial/sha256/nonce-overflows-int (0.00s) --- PASS: TestValidateAdversarial/sha256/elapsedTime-not-a-number (0.00s) --- PASS: TestValidateAdversarial/sha256/response-not-hex (0.00s) --- PASS: TestValidateAdversarial/sha256/response-wrong-length (0.00s) --- PASS: TestValidateAdversarial/sha256/response-wrong-hash (0.00s) --- PASS: TestValidateAdversarial/sha256/nil-input (0.00s) --- PASS: TestValidateAdversarial/sha256/nil-rule (0.00s) --- PASS: TestValidateAdversarial/sha256/nil-rule-challenge (0.00s) --- PASS: TestValidateAdversarial/sha256/nil-challenge (0.00s) --- PASS: TestValidateAdversarial/hashx (0.07s) --- PASS: TestValidateAdversarial/hashx/valid-solution-passes (0.00s) --- PASS: TestValidateAdversarial/hashx/no-fields (0.00s) --- PASS: TestValidateAdversarial/hashx/missing-nonce (0.00s) --- PASS: TestValidateAdversarial/hashx/missing-elapsedTime (0.00s) --- PASS: TestValidateAdversarial/hashx/missing-response (0.00s) --- PASS: TestValidateAdversarial/hashx/nonce-not-an-integer (0.00s) --- PASS: TestValidateAdversarial/hashx/nonce-overflows-int (0.00s) --- PASS: TestValidateAdversarial/hashx/elapsedTime-not-a-number (0.00s) --- PASS: TestValidateAdversarial/hashx/response-not-hex (0.00s) --- PASS: TestValidateAdversarial/hashx/response-wrong-length (0.00s) --- PASS: TestValidateAdversarial/hashx/response-wrong-hash (0.00s) --- PASS: TestValidateAdversarial/hashx/nil-input (0.00s) --- PASS: TestValidateAdversarial/hashx/nil-rule (0.00s) --- PASS: TestValidateAdversarial/hashx/nil-rule-challenge (0.00s) --- PASS: TestValidateAdversarial/hashx/nil-challenge (0.00s) --- PASS: TestValidateAdversarial/argon2id (1.74s) --- PASS: TestValidateAdversarial/argon2id/valid-solution-passes (0.13s) --- PASS: TestValidateAdversarial/argon2id/no-fields (0.00s) --- PASS: TestValidateAdversarial/argon2id/missing-nonce (0.00s) --- PASS: TestValidateAdversarial/argon2id/missing-elapsedTime (0.00s) --- PASS: TestValidateAdversarial/argon2id/missing-response (0.00s) --- PASS: TestValidateAdversarial/argon2id/nonce-not-an-integer (0.00s) --- PASS: TestValidateAdversarial/argon2id/nonce-overflows-int (0.00s) --- PASS: TestValidateAdversarial/argon2id/elapsedTime-not-a-number (0.00s) --- PASS: TestValidateAdversarial/argon2id/response-not-hex (0.00s) --- PASS: TestValidateAdversarial/argon2id/response-wrong-length (0.00s) --- PASS: TestValidateAdversarial/argon2id/response-wrong-hash (0.15s) --- PASS: TestValidateAdversarial/argon2id/nil-input (0.00s) --- PASS: TestValidateAdversarial/argon2id/nil-rule (0.00s) --- PASS: TestValidateAdversarial/argon2id/nil-rule-challenge (0.00s) --- PASS: TestValidateAdversarial/argon2id/nil-challenge (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/challenge/wasm 1.867s === RUN TestASNsValid === RUN TestASNsValid/basic_valid === RUN TestASNsValid/private_ASN --- PASS: TestASNsValid (0.00s) --- PASS: TestASNsValid/basic_valid (0.00s) --- PASS: TestASNsValid/private_ASN (0.00s) === RUN TestIsPrivateASN === RUN TestIsPrivateASN/13335->false === RUN TestIsPrivateASN/64513->true === RUN TestIsPrivateASN/4206942069->true --- PASS: TestIsPrivateASN (0.00s) --- PASS: TestIsPrivateASN/13335->false (0.00s) --- PASS: TestIsPrivateASN/64513->true (0.00s) --- PASS: TestIsPrivateASN/4206942069->true (0.00s) === RUN TestExpressionOrListMarshalJSON === RUN TestExpressionOrListMarshalJSON/single_expression === RUN TestExpressionOrListMarshalJSON/all === RUN TestExpressionOrListMarshalJSON/all_one === RUN TestExpressionOrListMarshalJSON/any === RUN TestExpressionOrListMarshalJSON/any_one --- PASS: TestExpressionOrListMarshalJSON (0.00s) --- PASS: TestExpressionOrListMarshalJSON/single_expression (0.00s) --- PASS: TestExpressionOrListMarshalJSON/all (0.00s) --- PASS: TestExpressionOrListMarshalJSON/all_one (0.00s) --- PASS: TestExpressionOrListMarshalJSON/any (0.00s) --- PASS: TestExpressionOrListMarshalJSON/any_one (0.00s) === RUN TestExpressionOrListMarshalYAML === RUN TestExpressionOrListMarshalYAML/single_expression === RUN TestExpressionOrListMarshalYAML/all === RUN TestExpressionOrListMarshalYAML/all_one === RUN TestExpressionOrListMarshalYAML/any === RUN TestExpressionOrListMarshalYAML/any_one --- PASS: TestExpressionOrListMarshalYAML (0.00s) --- PASS: TestExpressionOrListMarshalYAML/single_expression (0.00s) --- PASS: TestExpressionOrListMarshalYAML/all (0.00s) --- PASS: TestExpressionOrListMarshalYAML/all_one (0.00s) --- PASS: TestExpressionOrListMarshalYAML/any (0.00s) --- PASS: TestExpressionOrListMarshalYAML/any_one (0.00s) === RUN TestExpressionOrListUnmarshalJSON === RUN TestExpressionOrListUnmarshalJSON/simple === RUN TestExpressionOrListUnmarshalJSON/object-and === RUN TestExpressionOrListUnmarshalJSON/object-or === RUN TestExpressionOrListUnmarshalJSON/both-or-and === RUN TestExpressionOrListUnmarshalJSON/expression-empty --- PASS: TestExpressionOrListUnmarshalJSON (0.00s) --- PASS: TestExpressionOrListUnmarshalJSON/simple (0.00s) --- PASS: TestExpressionOrListUnmarshalJSON/object-and (0.00s) --- PASS: TestExpressionOrListUnmarshalJSON/object-or (0.00s) --- PASS: TestExpressionOrListUnmarshalJSON/both-or-and (0.00s) --- PASS: TestExpressionOrListUnmarshalJSON/expression-empty (0.00s) === RUN TestExpressionOrListString === RUN TestExpressionOrListString/single_expression === RUN TestExpressionOrListString/all === RUN TestExpressionOrListString/all_with_&& === RUN TestExpressionOrListString/any === RUN TestExpressionOrListString/any_with_|| --- PASS: TestExpressionOrListString (0.00s) --- PASS: TestExpressionOrListString/single_expression (0.00s) --- PASS: TestExpressionOrListString/all (0.00s) --- PASS: TestExpressionOrListString/all_with_&& (0.00s) --- PASS: TestExpressionOrListString/any (0.00s) --- PASS: TestExpressionOrListString/any_with_|| (0.00s) === RUN TestGeoIPDatabasesValid === RUN TestGeoIPDatabasesValid/asn_only === RUN TestGeoIPDatabasesValid/country_only_with_registered_country === RUN TestGeoIPDatabasesValid/both_with_auto_update === RUN TestGeoIPDatabasesValid/no_databases === RUN TestGeoIPDatabasesValid/no_path === RUN TestGeoIPDatabasesValid/empty_edition_id === RUN TestGeoIPDatabasesValid/country_field_on_asn === RUN TestGeoIPDatabasesValid/invalid_country_field === RUN TestGeoIPDatabasesValid/auto_update_missing_everything === RUN TestGeoIPDatabasesValid/auto_update_license_env_not_set === RUN TestGeoIPDatabasesValid/auto_update_bad_interval_and_endpoint === RUN TestGeoIPDatabasesValid/auto_update_interval_too_short --- PASS: TestGeoIPDatabasesValid (0.00s) --- PASS: TestGeoIPDatabasesValid/asn_only (0.00s) --- PASS: TestGeoIPDatabasesValid/country_only_with_registered_country (0.00s) --- PASS: TestGeoIPDatabasesValid/both_with_auto_update (0.00s) --- PASS: TestGeoIPDatabasesValid/no_databases (0.00s) --- PASS: TestGeoIPDatabasesValid/no_path (0.00s) --- PASS: TestGeoIPDatabasesValid/empty_edition_id (0.00s) --- PASS: TestGeoIPDatabasesValid/country_field_on_asn (0.00s) --- PASS: TestGeoIPDatabasesValid/invalid_country_field (0.00s) --- PASS: TestGeoIPDatabasesValid/auto_update_missing_everything (0.00s) --- PASS: TestGeoIPDatabasesValid/auto_update_license_env_not_set (0.00s) --- PASS: TestGeoIPDatabasesValid/auto_update_bad_interval_and_endpoint (0.00s) --- PASS: TestGeoIPDatabasesValid/auto_update_interval_too_short (0.00s) === RUN TestGeoIPDatabasesDefaults --- PASS: TestGeoIPDatabasesDefaults (0.00s) === RUN TestGeoIPDatabasesLoad --- PASS: TestGeoIPDatabasesLoad (0.00s) === RUN TestGeoIPValid === RUN TestGeoIPValid/basic_valid === RUN TestGeoIPValid/invalid_country --- PASS: TestGeoIPValid (0.00s) --- PASS: TestGeoIPValid/basic_valid (0.00s) --- PASS: TestGeoIPValid/invalid_country (0.00s) === RUN TestHoneypotValid === RUN TestHoneypotValid/naive_enabled === RUN TestHoneypotValid/naive_disabled === RUN TestHoneypotValid/empty_implementation === RUN TestHoneypotValid/unknown_implementation === RUN TestHoneypotValid/wrong_case_implementation === RUN TestHoneypotValid/zero_value --- PASS: TestHoneypotValid (0.00s) --- PASS: TestHoneypotValid/naive_enabled (0.00s) --- PASS: TestHoneypotValid/naive_disabled (0.00s) --- PASS: TestHoneypotValid/empty_implementation (0.00s) --- PASS: TestHoneypotValid/unknown_implementation (0.00s) --- PASS: TestHoneypotValid/wrong_case_implementation (0.00s) --- PASS: TestHoneypotValid/zero_value (0.00s) === RUN TestHoneypotDefault --- PASS: TestHoneypotDefault (0.00s) === RUN TestHoneypotDefaultIsValid --- PASS: TestHoneypotDefaultIsValid (0.00s) === RUN TestGlobMatch === RUN TestGlobMatch/(data)/apps/allow-api-routes*.yaml === RUN TestGlobMatch/./testdata/hack-test.* === RUN TestGlobMatch//does/not/exist/* === RUN TestGlobMatch/(data)/bots/*.{yaml,yml} --- PASS: TestGlobMatch (0.00s) --- PASS: TestGlobMatch/(data)/apps/allow-api-routes*.yaml (0.00s) --- PASS: TestGlobMatch/./testdata/hack-test.* (0.00s) --- PASS: TestGlobMatch//does/not/exist/* (0.00s) --- PASS: TestGlobMatch/(data)/bots/*.{yaml,yml} (0.00s) === RUN TestImportMultiDocument === RUN TestImportMultiDocument/multi-document === RUN TestImportMultiDocument/single-file --- PASS: TestImportMultiDocument (0.00s) --- PASS: TestImportMultiDocument/multi-document (0.00s) --- PASS: TestImportMultiDocument/single-file (0.00s) === RUN TestImportStatementGlobMatchedNothing === RUN TestImportStatementGlobMatchedNothing/(data)/bots/*.yml === RUN TestImportStatementGlobMatchedNothing/(data)/does-not-exist/*.yaml === RUN TestImportStatementGlobMatchedNothing/./testdata/does-not-exist/*.yaml --- PASS: TestImportStatementGlobMatchedNothing (0.00s) --- PASS: TestImportStatementGlobMatchedNothing/(data)/bots/*.yml (0.00s) --- PASS: TestImportStatementGlobMatchedNothing/(data)/does-not-exist/*.yaml (0.00s) --- PASS: TestImportStatementGlobMatchedNothing/./testdata/does-not-exist/*.yaml (0.00s) === RUN TestImportStatement === RUN TestImportStatement/(data)/apps/allow-api-routes.yaml === RUN TestImportStatement/(data)/apps/bookstack-saml.yaml === RUN TestImportStatement/(data)/apps/gitea-rss-feeds.yaml === RUN TestImportStatement/(data)/apps/qualys-ssl-labs.yml === RUN TestImportStatement/(data)/apps/searx-checker.yml === RUN TestImportStatement/(data)/bots/_deny-pathological.yaml === RUN TestImportStatement/(data)/bots/aggressive-brazilian-scrapers.yaml === RUN TestImportStatement/(data)/bots/ai-catchall.yaml === RUN TestImportStatement/(data)/bots/ai-robots-txt.yaml === RUN TestImportStatement/(data)/bots/cloudflare-kitesurf.yaml === RUN TestImportStatement/(data)/bots/cloudflare-workers.yaml === RUN TestImportStatement/(data)/bots/custom-async-http-client.yaml === RUN TestImportStatement/(data)/bots/headless-browsers.yaml === RUN TestImportStatement/(data)/bots/irc-bots/archlinux-phrik.yaml === RUN TestImportStatement/(data)/bots/irc-bots/gentoo-chat.yaml === RUN TestImportStatement/(data)/bots/lyrenth.yaml === RUN TestImportStatement/(data)/bots/spec-violations.yaml === RUN TestImportStatement/(data)/bots/us-ai-scraper.yaml === RUN TestImportStatement/(data)/clients/ai.yaml === RUN TestImportStatement/(data)/clients/docker-client.yaml === RUN TestImportStatement/(data)/clients/git.yaml === RUN TestImportStatement/(data)/clients/go-get.yaml === RUN TestImportStatement/(data)/clients/google-user-triggered-fetchers.yaml === RUN TestImportStatement/(data)/clients/mistral-mistralai-user.yaml === RUN TestImportStatement/(data)/clients/openai-chatgpt-user.yaml === RUN TestImportStatement/(data)/clients/perplexity-user.yaml === RUN TestImportStatement/(data)/clients/small-internet-browsers/_permissive.yaml === RUN TestImportStatement/(data)/clients/small-internet-browsers/dillo.yaml === RUN TestImportStatement/(data)/clients/small-internet-browsers/netsurf.yaml === RUN TestImportStatement/(data)/clients/small-internet-browsers/palemoon.yaml === RUN TestImportStatement/(data)/clients/telegram-preview.yaml === RUN TestImportStatement/(data)/clients/vk-preview.yaml === RUN TestImportStatement/(data)/clients/x-firefox-ai.yaml === RUN TestImportStatement/(data)/common/acts-like-browser.yaml === RUN TestImportStatement/(data)/common/allow-api-like.yaml === RUN TestImportStatement/(data)/common/allow-private-addresses.yaml === RUN TestImportStatement/(data)/common/domain-fronting.yaml === RUN TestImportStatement/(data)/common/json-api.yaml === RUN TestImportStatement/(data)/common/keep-internet-working.yaml === RUN TestImportStatement/(data)/common/rfc-violations.yaml === RUN TestImportStatement/(data)/crawlers/_allow-good.yaml === RUN TestImportStatement/(data)/crawlers/ai-search.yaml === RUN TestImportStatement/(data)/crawlers/ai-training.yaml === RUN TestImportStatement/(data)/crawlers/alibaba-cloud.yaml === RUN TestImportStatement/(data)/crawlers/applebot.yaml === RUN TestImportStatement/(data)/crawlers/arquivo-pt.yaml === RUN TestImportStatement/(data)/crawlers/bingbot.yaml === RUN TestImportStatement/(data)/crawlers/commoncrawl.yaml === RUN TestImportStatement/(data)/crawlers/duckduckbot.yaml === RUN TestImportStatement/(data)/crawlers/googlebot.yaml === RUN TestImportStatement/(data)/crawlers/huawei-cloud.yaml === RUN TestImportStatement/(data)/crawlers/internet-archive.yaml === RUN TestImportStatement/(data)/crawlers/kagibot.yaml === RUN TestImportStatement/(data)/crawlers/marginalia.yaml === RUN TestImportStatement/(data)/crawlers/mojeekbot.yaml === RUN TestImportStatement/(data)/crawlers/openai-gptbot.yaml === RUN TestImportStatement/(data)/crawlers/openai-searchbot.yaml === RUN TestImportStatement/(data)/crawlers/perplexitybot.yaml === RUN TestImportStatement/(data)/crawlers/qwantbot.yaml === RUN TestImportStatement/(data)/crawlers/tencent-cloud.yaml === RUN TestImportStatement/(data)/crawlers/wikimedia-citoid.yaml === RUN TestImportStatement/(data)/crawlers/xai.yaml === RUN TestImportStatement/(data)/crawlers/yandexbot.yaml === RUN TestImportStatement/(data)/meta/ai-block-aggressive.yaml === RUN TestImportStatement/(data)/meta/ai-block-moderate.yaml === RUN TestImportStatement/(data)/meta/ai-block-permissive.yaml === RUN TestImportStatement/(data)/meta/default-config.yaml === RUN TestImportStatement/(data)/meta/messengers-preview.yaml === RUN TestImportStatement/(data)/services/updown.yaml === RUN TestImportStatement/(data)/services/uptime-robot.yaml --- PASS: TestImportStatement (0.06s) --- PASS: TestImportStatement/(data)/apps/allow-api-routes.yaml (0.00s) --- PASS: TestImportStatement/(data)/apps/bookstack-saml.yaml (0.00s) --- PASS: TestImportStatement/(data)/apps/gitea-rss-feeds.yaml (0.00s) --- PASS: TestImportStatement/(data)/apps/qualys-ssl-labs.yml (0.00s) --- PASS: TestImportStatement/(data)/apps/searx-checker.yml (0.00s) --- PASS: TestImportStatement/(data)/bots/_deny-pathological.yaml (0.01s) --- PASS: TestImportStatement/(data)/bots/aggressive-brazilian-scrapers.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/ai-catchall.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/ai-robots-txt.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/cloudflare-kitesurf.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/cloudflare-workers.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/custom-async-http-client.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/headless-browsers.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/irc-bots/archlinux-phrik.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/irc-bots/gentoo-chat.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/lyrenth.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/spec-violations.yaml (0.00s) --- PASS: TestImportStatement/(data)/bots/us-ai-scraper.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/ai.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/docker-client.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/git.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/go-get.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/google-user-triggered-fetchers.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/mistral-mistralai-user.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/openai-chatgpt-user.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/perplexity-user.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/small-internet-browsers/_permissive.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/small-internet-browsers/dillo.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/small-internet-browsers/netsurf.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/small-internet-browsers/palemoon.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/telegram-preview.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/vk-preview.yaml (0.00s) --- PASS: TestImportStatement/(data)/clients/x-firefox-ai.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/acts-like-browser.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/allow-api-like.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/allow-private-addresses.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/domain-fronting.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/json-api.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/keep-internet-working.yaml (0.00s) --- PASS: TestImportStatement/(data)/common/rfc-violations.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/_allow-good.yaml (0.01s) --- PASS: TestImportStatement/(data)/crawlers/ai-search.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/ai-training.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/alibaba-cloud.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/applebot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/arquivo-pt.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/bingbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/commoncrawl.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/duckduckbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/googlebot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/huawei-cloud.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/internet-archive.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/kagibot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/marginalia.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/mojeekbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/openai-gptbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/openai-searchbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/perplexitybot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/qwantbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/tencent-cloud.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/wikimedia-citoid.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/xai.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/yandexbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/meta/ai-block-aggressive.yaml (0.00s) --- PASS: TestImportStatement/(data)/meta/ai-block-moderate.yaml (0.00s) --- PASS: TestImportStatement/(data)/meta/ai-block-permissive.yaml (0.00s) --- PASS: TestImportStatement/(data)/meta/default-config.yaml (0.01s) --- PASS: TestImportStatement/(data)/meta/messengers-preview.yaml (0.00s) --- PASS: TestImportStatement/(data)/services/updown.yaml (0.00s) --- PASS: TestImportStatement/(data)/services/uptime-robot.yaml (0.00s) === RUN TestImpressumValid === RUN TestImpressumValid/basic_happy_path === RUN TestImpressumValid/no_footer === RUN TestImpressumValid/page_not_valid --- PASS: TestImpressumValid (0.00s) --- PASS: TestImpressumValid/basic_happy_path (0.00s) --- PASS: TestImpressumValid/no_footer (0.00s) --- PASS: TestImpressumValid/page_not_valid (0.00s) === RUN TestLoggingValid === RUN TestLoggingValid/simple_happy === RUN TestLoggingValid/default_file_config === RUN TestLoggingValid/invalid_sink === RUN TestLoggingValid/missing_parameters === RUN TestLoggingValid/invalid_parameters === RUN TestLoggingValid/file_sink_with_no_filename === RUN TestLoggingValid/file_sink_with_negative_max_backups === RUN TestLoggingValid/file_sink_with_negative_max_age --- PASS: TestLoggingValid (0.00s) --- PASS: TestLoggingValid/simple_happy (0.00s) --- PASS: TestLoggingValid/default_file_config (0.00s) --- PASS: TestLoggingValid/invalid_sink (0.00s) --- PASS: TestLoggingValid/missing_parameters (0.00s) --- PASS: TestLoggingValid/invalid_parameters (0.00s) --- PASS: TestLoggingValid/file_sink_with_no_filename (0.00s) --- PASS: TestLoggingValid/file_sink_with_negative_max_backups (0.00s) --- PASS: TestLoggingValid/file_sink_with_negative_max_age (0.00s) === RUN TestMetricsValid === RUN TestMetricsValid/basic_TCP === RUN TestMetricsValid/basic_TCP4 === RUN TestMetricsValid/basic_TCP6 === RUN TestMetricsValid/basic_unix === RUN TestMetricsValid/no_bind === RUN TestMetricsValid/no_network === RUN TestMetricsValid/no_unix_socket_mode === RUN TestMetricsValid/invalid_unix_socket_mode === RUN TestMetricsValid/invalid_network === RUN TestMetricsValid/invalid_TLS_config === RUN TestMetricsValid/selfsigned_TLS_cert === RUN TestMetricsValid/wrong_path_to_selfsigned_TLS_cert === RUN TestMetricsValid/unparseable_TLS_cert === RUN TestMetricsValid/mTLS_with_CA === RUN TestMetricsValid/mTLS_with_nonexistent_CA === RUN TestMetricsValid/mTLS_with_invalid_CA === RUN TestMetricsValid/basic_auth_credentials_set === RUN TestMetricsValid/invalid_basic_auth_config --- PASS: TestMetricsValid (0.00s) --- PASS: TestMetricsValid/basic_TCP (0.00s) --- PASS: TestMetricsValid/basic_TCP4 (0.00s) --- PASS: TestMetricsValid/basic_TCP6 (0.00s) --- PASS: TestMetricsValid/basic_unix (0.00s) --- PASS: TestMetricsValid/no_bind (0.00s) --- PASS: TestMetricsValid/no_network (0.00s) --- PASS: TestMetricsValid/no_unix_socket_mode (0.00s) --- PASS: TestMetricsValid/invalid_unix_socket_mode (0.00s) --- PASS: TestMetricsValid/invalid_network (0.00s) --- PASS: TestMetricsValid/invalid_TLS_config (0.00s) --- PASS: TestMetricsValid/selfsigned_TLS_cert (0.00s) --- PASS: TestMetricsValid/wrong_path_to_selfsigned_TLS_cert (0.00s) --- PASS: TestMetricsValid/unparseable_TLS_cert (0.00s) --- PASS: TestMetricsValid/mTLS_with_CA (0.00s) --- PASS: TestMetricsValid/mTLS_with_nonexistent_CA (0.00s) --- PASS: TestMetricsValid/mTLS_with_invalid_CA (0.00s) --- PASS: TestMetricsValid/basic_auth_credentials_set (0.00s) --- PASS: TestMetricsValid/invalid_basic_auth_config (0.00s) === RUN TestMetricsBasicAuthValid === RUN TestMetricsBasicAuthValid/both_set === RUN TestMetricsBasicAuthValid/empty_username_and_password === RUN TestMetricsBasicAuthValid/missing_username === RUN TestMetricsBasicAuthValid/missing_password === RUN TestMetricsBasicAuthValid/missing_both_surfaces_wrapper_error === RUN TestMetricsBasicAuthValid/missing_both_surfaces_password_error --- PASS: TestMetricsBasicAuthValid (0.00s) --- PASS: TestMetricsBasicAuthValid/both_set (0.00s) --- PASS: TestMetricsBasicAuthValid/empty_username_and_password (0.00s) --- PASS: TestMetricsBasicAuthValid/missing_username (0.00s) --- PASS: TestMetricsBasicAuthValid/missing_password (0.00s) --- PASS: TestMetricsBasicAuthValid/missing_both_surfaces_wrapper_error (0.00s) --- PASS: TestMetricsBasicAuthValid/missing_both_surfaces_password_error (0.00s) === RUN TestOpenGraphFileConfigValid === RUN TestOpenGraphFileConfigValid/basic_happy_path === RUN TestOpenGraphFileConfigValid/basic_happy_path_with_default === RUN TestOpenGraphFileConfigValid/invalid_time_duration === RUN TestOpenGraphFileConfigValid/missing_og:title_in_defaults --- PASS: TestOpenGraphFileConfigValid (0.00s) --- PASS: TestOpenGraphFileConfigValid/basic_happy_path (0.00s) --- PASS: TestOpenGraphFileConfigValid/basic_happy_path_with_default (0.00s) --- PASS: TestOpenGraphFileConfigValid/invalid_time_duration (0.00s) --- PASS: TestOpenGraphFileConfigValid/missing_og:title_in_defaults (0.00s) === RUN TestThresholdValid === RUN TestThresholdValid/basic_allow === RUN TestThresholdValid/basic_challenge === RUN TestThresholdValid/no_name === RUN TestThresholdValid/no_expression === RUN TestThresholdValid/invalid_expression === RUN TestThresholdValid/invalid_action === RUN TestThresholdValid/challenge_action_but_no_challenge === RUN TestThresholdValid/challenge_invalid --- PASS: TestThresholdValid (0.00s) --- PASS: TestThresholdValid/basic_allow (0.00s) --- PASS: TestThresholdValid/basic_challenge (0.00s) --- PASS: TestThresholdValid/no_name (0.00s) --- PASS: TestThresholdValid/no_expression (0.00s) --- PASS: TestThresholdValid/invalid_expression (0.00s) --- PASS: TestThresholdValid/invalid_action (0.00s) --- PASS: TestThresholdValid/challenge_action_but_no_challenge (0.00s) --- PASS: TestThresholdValid/challenge_invalid (0.00s) === RUN TestDefaultThresholdsValid === RUN TestDefaultThresholdsValid/0_legacy-anubis-behaviour --- PASS: TestDefaultThresholdsValid (0.00s) --- PASS: TestDefaultThresholdsValid/0_legacy-anubis-behaviour (0.00s) === RUN TestLoadActuallyLoadsThresholds --- PASS: TestLoadActuallyLoadsThresholds (0.00s) === RUN TestBotValid === RUN TestBotValid/simple_user_agent === RUN TestBotValid/simple_path === RUN TestBotValid/no_rule_name === RUN TestBotValid/no_rule_matcher === RUN TestBotValid/both_user-agent_and_path === RUN TestBotValid/unknown_action === RUN TestBotValid/invalid_user_agent_regex === RUN TestBotValid/invalid_path_regex === RUN TestBotValid/invalid_headers_regex === RUN TestBotValid/challenge_difficulty_too_low === RUN TestBotValid/challenge_difficulty_too_high === RUN TestBotValid/invalid_cidr_range === RUN TestBotValid/only_filter_by_IP_range === RUN TestBotValid/filter_by_user_agent_and_IP_range === RUN TestBotValid/filter_by_path_and_IP_range === RUN TestBotValid/only_filter_by_remote_addresses_url === RUN TestBotValid/filter_by_user_agent_and_remote_addresses_url === RUN TestBotValid/invalid_remote_addresses_url === RUN TestBotValid/remote_addresses_url_ftp_scheme === RUN TestBotValid/remote_addresses_url_empty === RUN TestBotValid/remote_addresses_and_remote_addresses_url === RUN TestBotValid/weight_rule_without_weight === RUN TestBotValid/weight_rule_with_weight_adjust --- PASS: TestBotValid (0.00s) --- PASS: TestBotValid/simple_user_agent (0.00s) --- PASS: TestBotValid/simple_path (0.00s) --- PASS: TestBotValid/no_rule_name (0.00s) --- PASS: TestBotValid/no_rule_matcher (0.00s) --- PASS: TestBotValid/both_user-agent_and_path (0.00s) --- PASS: TestBotValid/unknown_action (0.00s) --- PASS: TestBotValid/invalid_user_agent_regex (0.00s) --- PASS: TestBotValid/invalid_path_regex (0.00s) --- PASS: TestBotValid/invalid_headers_regex (0.00s) --- PASS: TestBotValid/challenge_difficulty_too_low (0.00s) --- PASS: TestBotValid/challenge_difficulty_too_high (0.00s) --- PASS: TestBotValid/invalid_cidr_range (0.00s) --- PASS: TestBotValid/only_filter_by_IP_range (0.00s) --- PASS: TestBotValid/filter_by_user_agent_and_IP_range (0.00s) --- PASS: TestBotValid/filter_by_path_and_IP_range (0.00s) --- PASS: TestBotValid/only_filter_by_remote_addresses_url (0.00s) --- PASS: TestBotValid/filter_by_user_agent_and_remote_addresses_url (0.00s) --- PASS: TestBotValid/invalid_remote_addresses_url (0.00s) --- PASS: TestBotValid/remote_addresses_url_ftp_scheme (0.00s) --- PASS: TestBotValid/remote_addresses_url_empty (0.00s) --- PASS: TestBotValid/remote_addresses_and_remote_addresses_url (0.00s) --- PASS: TestBotValid/weight_rule_without_weight (0.00s) --- PASS: TestBotValid/weight_rule_with_weight_adjust (0.00s) === RUN TestConfigValidKnownGood === RUN TestConfigValidKnownGood/allow_everyone.json === RUN TestConfigValidKnownGood/allow_everyone.yaml === RUN TestConfigValidKnownGood/block_cf_workers.json === RUN TestConfigValidKnownGood/block_cf_workers.yaml === RUN TestConfigValidKnownGood/challenge-extensions.yaml === RUN TestConfigValidKnownGood/challenge_cloudflare.yaml === RUN TestConfigValidKnownGood/challengemozilla.json === RUN TestConfigValidKnownGood/challengemozilla.yaml === RUN TestConfigValidKnownGood/dns-ttl-custom.yaml === RUN TestConfigValidKnownGood/entropy.yaml === RUN TestConfigValidKnownGood/everything_blocked.json === RUN TestConfigValidKnownGood/everything_blocked.yaml === RUN TestConfigValidKnownGood/geoip_us.yaml === RUN TestConfigValidKnownGood/git_client.json === RUN TestConfigValidKnownGood/git_client.yaml === RUN TestConfigValidKnownGood/honeypot-disabled.yaml === RUN TestConfigValidKnownGood/honeypot.json === RUN TestConfigValidKnownGood/honeypot.yaml === RUN TestConfigValidKnownGood/import-all-bots.yaml === RUN TestConfigValidKnownGood/import_filesystem.json === RUN TestConfigValidKnownGood/import_filesystem.yaml === RUN TestConfigValidKnownGood/import_google_user_triggered_fetchers.yaml === RUN TestConfigValidKnownGood/import_keep_internet_working.json === RUN TestConfigValidKnownGood/import_keep_internet_working.yaml === RUN TestConfigValidKnownGood/impressum.yaml === RUN TestConfigValidKnownGood/logging-file.yaml === RUN TestConfigValidKnownGood/logging-stdio.yaml === RUN TestConfigValidKnownGood/no-thresholds.yaml === RUN TestConfigValidKnownGood/old_xesite.json === RUN TestConfigValidKnownGood/opengraph_all_good.yaml === RUN TestConfigValidKnownGood/simple-weight.yaml === RUN TestConfigValidKnownGood/status-codes-paranoid.json === RUN TestConfigValidKnownGood/status-codes-paranoid.yaml === RUN TestConfigValidKnownGood/status-codes-rfc.json === RUN TestConfigValidKnownGood/status-codes-rfc.yaml === RUN TestConfigValidKnownGood/thresholds.yaml === RUN TestConfigValidKnownGood/weight-no-weight.yaml --- PASS: TestConfigValidKnownGood (0.04s) --- PASS: TestConfigValidKnownGood/allow_everyone.json (0.00s) --- PASS: TestConfigValidKnownGood/allow_everyone.yaml (0.00s) --- PASS: TestConfigValidKnownGood/block_cf_workers.json (0.00s) --- PASS: TestConfigValidKnownGood/block_cf_workers.yaml (0.00s) --- PASS: TestConfigValidKnownGood/challenge-extensions.yaml (0.00s) --- PASS: TestConfigValidKnownGood/challenge_cloudflare.yaml (0.00s) --- PASS: TestConfigValidKnownGood/challengemozilla.json (0.00s) --- PASS: TestConfigValidKnownGood/challengemozilla.yaml (0.00s) --- PASS: TestConfigValidKnownGood/dns-ttl-custom.yaml (0.00s) --- PASS: TestConfigValidKnownGood/entropy.yaml (0.00s) --- PASS: TestConfigValidKnownGood/everything_blocked.json (0.00s) --- PASS: TestConfigValidKnownGood/everything_blocked.yaml (0.00s) --- PASS: TestConfigValidKnownGood/geoip_us.yaml (0.00s) --- PASS: TestConfigValidKnownGood/git_client.json (0.00s) --- PASS: TestConfigValidKnownGood/git_client.yaml (0.00s) --- PASS: TestConfigValidKnownGood/honeypot-disabled.yaml (0.00s) --- PASS: TestConfigValidKnownGood/honeypot.json (0.00s) --- PASS: TestConfigValidKnownGood/honeypot.yaml (0.00s) --- PASS: TestConfigValidKnownGood/import-all-bots.yaml (0.03s) --- PASS: TestConfigValidKnownGood/import_filesystem.json (0.00s) --- PASS: TestConfigValidKnownGood/import_filesystem.yaml (0.00s) --- PASS: TestConfigValidKnownGood/import_google_user_triggered_fetchers.yaml (0.00s) --- PASS: TestConfigValidKnownGood/import_keep_internet_working.json (0.00s) --- PASS: TestConfigValidKnownGood/import_keep_internet_working.yaml (0.00s) --- PASS: TestConfigValidKnownGood/impressum.yaml (0.00s) --- PASS: TestConfigValidKnownGood/logging-file.yaml (0.00s) --- PASS: TestConfigValidKnownGood/logging-stdio.yaml (0.00s) --- PASS: TestConfigValidKnownGood/no-thresholds.yaml (0.00s) --- PASS: TestConfigValidKnownGood/old_xesite.json (0.00s) --- PASS: TestConfigValidKnownGood/opengraph_all_good.yaml (0.00s) --- PASS: TestConfigValidKnownGood/simple-weight.yaml (0.00s) --- PASS: TestConfigValidKnownGood/status-codes-paranoid.json (0.00s) --- PASS: TestConfigValidKnownGood/status-codes-paranoid.yaml (0.00s) --- PASS: TestConfigValidKnownGood/status-codes-rfc.json (0.00s) --- PASS: TestConfigValidKnownGood/status-codes-rfc.yaml (0.00s) --- PASS: TestConfigValidKnownGood/thresholds.yaml (0.00s) --- PASS: TestConfigValidKnownGood/weight-no-weight.yaml (0.00s) === RUN TestConfigValidBad === RUN TestConfigValidBad/badregexes.json config_test.go:313: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` bot 2: config: bot entry for "headers-bad" is not valid: config.Bot: must set one of user_agent_regex, path_regex, headers_regex, remote_addresses, remote_addresses_url, expression, asns, or geoip === RUN TestConfigValidBad/badregexes.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` === RUN TestConfigValidBad/challenge-extension-empty.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name must not be empty === RUN TestConfigValidBad/challenge-extension-repeated.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name was repeated: "test-extension" === RUN TestConfigValidBad/dns-ttl-custom.yaml config_test.go:313: can't parse policy config YAML testdata/bad/dns-ttl-custom.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field .dns_ttl.reverse of type int === RUN TestConfigValidBad/geoip-auto-update-no-account.yaml config_test.go:313: config is not valid: config.GeoIPDatabases: invalid geoip settings: auto_update: config.GeoIPAutoUpdate: must define account_id config.GeoIPAutoUpdate: environment variable named by license_key_env is not set: ANUBIS_TEST_MAXMIND_LICENSE_KEY_THAT_IS_NOT_SET config.GeoIPAutoUpdate: interval is too short: 5m0s is less than 1h0m0s === RUN TestConfigValidBad/geoip-invalid-country-field.yaml config_test.go:313: config is not valid: config.GeoIPDatabases: invalid geoip settings: country: config.GeoIPDatabase: invalid country_field: "continent", must be one of "country" or "registered_country" === RUN TestConfigValidBad/geoip-no-path.yaml config_test.go:313: config is not valid: config.GeoIPDatabases: invalid geoip settings: asn: config.GeoIPDatabase: must define path === RUN TestConfigValidBad/honeypot-empty-implementation.yaml config_test.go:313: config is not valid: config.Honeypot: missing field "implementation": config: missing value config.Honeypot: invalid implementation selected (try: "naive"): got: "" === RUN TestConfigValidBad/honeypot-invalid-implementation.json config_test.go:313: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestConfigValidBad/honeypot-invalid-implementation.yaml config_test.go:313: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestConfigValidBad/import-invalid-pattern.yaml config_test.go:313: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*[abc]abc]\.yaml: config.ImportStatement: glob pattern matched no files === RUN TestConfigValidBad/import-no-match.yaml config_test.go:313: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*.yaml: config.ImportStatement: glob pattern matched no files === RUN TestConfigValidBad/import_and_bot.json config_test.go:313: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestConfigValidBad/import_and_bot.yaml config_test.go:313: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestConfigValidBad/import_invalid_file.json config_test.go:313: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestConfigValidBad/import_invalid_file.yaml config_test.go:313: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestConfigValidBad/impressum-no-footer.yaml config_test.go:313: errors validating policy config testdata/bad/impressum-no-footer.yaml: config: missing value: impressum footer must be defined === RUN TestConfigValidBad/impressum-no-page-contents.yaml config_test.go:313: errors validating policy config testdata/bad/impressum-no-page-contents.yaml: config: missing value: impressum page title must be defined config: missing value: impressum body title must be defined === RUN TestConfigValidBad/invalid.json config_test.go:313: config is not valid: bot 0: config.BotOrImport: rule definition is invalid, you must set either bot rules or an import statement, not both === RUN TestConfigValidBad/invalid.yaml config_test.go:313: config is not valid: config: must define at least one (1) bot rule === RUN TestConfigValidBad/logging-invalid-sink.yaml config_test.go:313: config is not valid: config: must define at least one (1) bot rule config.Logging: invalid sink: sink nope is unknown to me === RUN TestConfigValidBad/logging-no-parameters.yaml config_test.go:313: config is not valid: config: must define at least one (1) bot rule config.Logging: missing value parameters in logging block logging file config is nil, why are you calling this? === RUN TestConfigValidBad/metrics-invalid-net.yaml config_test.go:313: config is not valid: config: must define at least one (1) bot rule config: invalid metrics configuration config.Metrics: invalid metrics network === RUN TestConfigValidBad/multiple_expression_types.json config_test.go:313: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestConfigValidBad/multiple_expression_types.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestConfigValidBad/nobots.json config_test.go:313: config is not valid: config: must define at least one (1) bot rule === RUN TestConfigValidBad/nobots.yaml config_test.go:313: config is not valid: config: must define at least one (1) bot rule === RUN TestConfigValidBad/opengraph_bad_ttl.yaml config_test.go:313: config is not valid: config.OpenGraph: invalid OpenGraph configuration config.OpenGraph: ttl does not parse as a Duration, see https://pkg.go.dev/time#ParseDuration (formatted like 5m -> 5 minutes, 2h -> 2 hours, etc): ParseDuration("taco") returned: time: invalid duration "taco" === RUN TestConfigValidBad/regex_ends_newline.json config_test.go:313: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestConfigValidBad/regex_ends_newline.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestConfigValidBad/remote-and-url.yaml config_test.go:313: config is not valid: bot 0: config: bot entry for "both-addr-kinds" is not valid: config.Bot: must set either remote_addresses or remote_addresses_url, and not both === RUN TestConfigValidBad/status-codes-0.json config_test.go:313: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestConfigValidBad/status-codes-0.yaml config_test.go:313: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestConfigValidBad/threshold-challenge-without-challenge.yaml config_test.go:313: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestConfigValidBad/thresholds.yaml config_test.go:313: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestConfigValidBad/unparseable.json config_test.go:313: can't parse policy config YAML testdata/bad/unparseable.json: error converting YAML to JSON: yaml: did not find expected node content === RUN TestConfigValidBad/unparseable.yaml config_test.go:313: can't parse policy config YAML testdata/bad/unparseable.yaml: error converting YAML to JSON: yaml: did not find expected node content --- PASS: TestConfigValidBad (0.01s) --- PASS: TestConfigValidBad/badregexes.json (0.00s) --- PASS: TestConfigValidBad/badregexes.yaml (0.00s) --- PASS: TestConfigValidBad/challenge-extension-empty.yaml (0.00s) --- PASS: TestConfigValidBad/challenge-extension-repeated.yaml (0.00s) --- PASS: TestConfigValidBad/dns-ttl-custom.yaml (0.00s) --- PASS: TestConfigValidBad/geoip-auto-update-no-account.yaml (0.00s) --- PASS: TestConfigValidBad/geoip-invalid-country-field.yaml (0.00s) --- PASS: TestConfigValidBad/geoip-no-path.yaml (0.00s) --- PASS: TestConfigValidBad/honeypot-empty-implementation.yaml (0.00s) --- PASS: TestConfigValidBad/honeypot-invalid-implementation.json (0.00s) --- PASS: TestConfigValidBad/honeypot-invalid-implementation.yaml (0.00s) --- PASS: TestConfigValidBad/import-invalid-pattern.yaml (0.00s) --- PASS: TestConfigValidBad/import-no-match.yaml (0.00s) --- PASS: TestConfigValidBad/import_and_bot.json (0.00s) --- PASS: TestConfigValidBad/import_and_bot.yaml (0.00s) --- PASS: TestConfigValidBad/import_invalid_file.json (0.00s) --- PASS: TestConfigValidBad/import_invalid_file.yaml (0.00s) --- PASS: TestConfigValidBad/impressum-no-footer.yaml (0.00s) --- PASS: TestConfigValidBad/impressum-no-page-contents.yaml (0.00s) --- PASS: TestConfigValidBad/invalid.json (0.00s) --- PASS: TestConfigValidBad/invalid.yaml (0.00s) --- PASS: TestConfigValidBad/logging-invalid-sink.yaml (0.00s) --- PASS: TestConfigValidBad/logging-no-parameters.yaml (0.00s) --- PASS: TestConfigValidBad/metrics-invalid-net.yaml (0.00s) --- PASS: TestConfigValidBad/multiple_expression_types.json (0.00s) --- PASS: TestConfigValidBad/multiple_expression_types.yaml (0.00s) --- PASS: TestConfigValidBad/nobots.json (0.00s) --- PASS: TestConfigValidBad/nobots.yaml (0.00s) --- PASS: TestConfigValidBad/opengraph_bad_ttl.yaml (0.00s) --- PASS: TestConfigValidBad/regex_ends_newline.json (0.00s) --- PASS: TestConfigValidBad/regex_ends_newline.yaml (0.00s) --- PASS: TestConfigValidBad/remote-and-url.yaml (0.00s) --- PASS: TestConfigValidBad/status-codes-0.json (0.00s) --- PASS: TestConfigValidBad/status-codes-0.yaml (0.00s) --- PASS: TestConfigValidBad/threshold-challenge-without-challenge.yaml (0.00s) --- PASS: TestConfigValidBad/thresholds.yaml (0.00s) --- PASS: TestConfigValidBad/unparseable.json (0.00s) --- PASS: TestConfigValidBad/unparseable.yaml (0.00s) === RUN TestBotConfigZero --- PASS: TestBotConfigZero (0.00s) === RUN TestStoreValid === RUN TestStoreValid/no_backend === RUN TestStoreValid/in-memory_backend === RUN TestStoreValid/bbolt_backend === RUN TestStoreValid/valkey_backend === RUN TestStoreValid/valkey_backend_no_URL === RUN TestStoreValid/valkey_backend_bad_URL === RUN TestStoreValid/bbolt_backend_no_path === RUN TestStoreValid/unknown_backend --- PASS: TestStoreValid (0.00s) --- PASS: TestStoreValid/no_backend (0.00s) --- PASS: TestStoreValid/in-memory_backend (0.00s) --- PASS: TestStoreValid/bbolt_backend (0.00s) --- PASS: TestStoreValid/valkey_backend (0.00s) --- PASS: TestStoreValid/valkey_backend_no_URL (0.00s) --- PASS: TestStoreValid/valkey_backend_bad_URL (0.00s) --- PASS: TestStoreValid/bbolt_backend_no_path (0.00s) --- PASS: TestStoreValid/unknown_backend (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/config 0.134s === RUN TestAdditionalMaxMindEditions === RUN TestAdditionalMaxMindEditions/ISP_for_ASN compatibility_test.go:97: PASS: GeoIP2-ISP loaded and lookup succeeded === RUN TestAdditionalMaxMindEditions/City_for_Country compatibility_test.go:97: PASS: GeoLite2-City loaded and lookup succeeded --- PASS: TestAdditionalMaxMindEditions (0.00s) --- PASS: TestAdditionalMaxMindEditions/ISP_for_ASN (0.00s) --- PASS: TestAdditionalMaxMindEditions/City_for_Country (0.00s) === RUN TestAdditionalMaxMindEdgeCases === RUN TestAdditionalMaxMindEdgeCases/IPv4_lookup === RUN TestAdditionalMaxMindEdgeCases/IPv6_lookup === RUN TestAdditionalMaxMindEdgeCases/IP_not_in_database === RUN TestAdditionalMaxMindEdgeCases/private_IP --- PASS: TestAdditionalMaxMindEdgeCases (0.00s) --- PASS: TestAdditionalMaxMindEdgeCases/IPv4_lookup (0.00s) --- PASS: TestAdditionalMaxMindEdgeCases/IPv6_lookup (0.00s) --- PASS: TestAdditionalMaxMindEdgeCases/IP_not_in_database (0.00s) --- PASS: TestAdditionalMaxMindEdgeCases/private_IP (0.00s) === RUN TestLookup === RUN TestLookup/cloudflare_v4 === RUN TestLookup/cloudflare_v6 === RUN TestLookup/ipv4_mapped_ipv6 === RUN TestLookup/registered_country_fallback === RUN TestLookup/canada === RUN TestLookup/not_in_database === RUN TestLookup/private === RUN TestLookup/loopback === RUN TestLookup/ipv6_loopback --- PASS: TestLookup (0.00s) --- PASS: TestLookup/cloudflare_v4 (0.00s) --- PASS: TestLookup/cloudflare_v6 (0.00s) --- PASS: TestLookup/ipv4_mapped_ipv6 (0.00s) --- PASS: TestLookup/registered_country_fallback (0.00s) --- PASS: TestLookup/canada (0.00s) --- PASS: TestLookup/not_in_database (0.00s) --- PASS: TestLookup/private (0.00s) --- PASS: TestLookup/loopback (0.00s) --- PASS: TestLookup/ipv6_loopback (0.00s) === RUN TestLookupCountryField === RUN TestLookupCountryField/country === RUN TestLookupCountryField/registered_country === RUN TestLookupCountryField/registered_country_falls_back_to_country === RUN TestLookupCountryField/country_falls_back_to_registered_country --- PASS: TestLookupCountryField (0.00s) --- PASS: TestLookupCountryField/country (0.00s) --- PASS: TestLookupCountryField/registered_country (0.00s) --- PASS: TestLookupCountryField/registered_country_falls_back_to_country (0.00s) --- PASS: TestLookupCountryField/country_falls_back_to_registered_country (0.00s) === RUN TestNilDB --- PASS: TestNilDB (0.00s) === RUN TestCheckers === RUN TestCheckers/cloudflare === RUN TestCheckers/canada === RUN TestCheckers/not_in_database === RUN TestCheckers/private === RUN TestCheckers/not_an_IP === RUN TestCheckers/empty --- PASS: TestCheckers (0.00s) --- PASS: TestCheckers/cloudflare (0.00s) --- PASS: TestCheckers/canada (0.00s) --- PASS: TestCheckers/not_in_database (0.00s) --- PASS: TestCheckers/private (0.00s) --- PASS: TestCheckers/not_an_IP (0.00s) --- PASS: TestCheckers/empty (0.00s) === RUN TestNew === RUN TestNew/both === RUN TestNew/asn_only === RUN TestNew/missing_file === RUN TestNew/swapped_paths --- PASS: TestNew (0.00s) --- PASS: TestNew/both (0.00s) --- PASS: TestNew/asn_only (0.00s) --- PASS: TestNew/missing_file (0.00s) --- PASS: TestNew/swapped_paths (0.00s) === RUN TestReloadFromDisk --- PASS: TestReloadFromDisk (0.00s) === RUN TestNewDownloadsMissingDatabase --- PASS: TestNewDownloadsMissingDatabase (0.00s) === RUN TestUpdate === RUN TestUpdate/no_update_available === RUN TestUpdate/update_available === RUN TestUpdate/corrupt_download === RUN TestUpdate/wrong_database_type === RUN TestUpdate/checksum_mismatch === RUN TestUpdate/bad_license_key --- PASS: TestUpdate (0.02s) --- PASS: TestUpdate/no_update_available (0.00s) --- PASS: TestUpdate/update_available (0.00s) --- PASS: TestUpdate/corrupt_download (0.01s) --- PASS: TestUpdate/wrong_database_type (0.00s) --- PASS: TestUpdate/checksum_mismatch (0.00s) --- PASS: TestUpdate/bad_license_key (0.00s) === RUN TestContext --- PASS: TestContext (0.00s) === RUN TestVersionedStartupAndCleanup --- PASS: TestVersionedStartupAndCleanup (0.00s) === RUN TestVersionAfterClockStep --- PASS: TestVersionAfterClockStep (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/geoip 0.064s ? github.com/TecharoHQ/anubis/lib/geoip/geoiptest [no test files] === RUN TestLocalizationService === RUN TestLocalizationService/bg_localization === RUN TestLocalizationService/ca_localization === RUN TestLocalizationService/de_localization === RUN TestLocalizationService/en_localization === RUN TestLocalizationService/es_localization === RUN TestLocalizationService/et_localization === RUN TestLocalizationService/fil_localization === RUN TestLocalizationService/fr_localization === RUN TestLocalizationService/hr_localization === RUN TestLocalizationService/is_localization === RUN TestLocalizationService/ja_localization === RUN TestLocalizationService/nb_localization === RUN TestLocalizationService/nl_localization === RUN TestLocalizationService/nn_localization === RUN TestLocalizationService/pl_localization === RUN TestLocalizationService/pt-BR_localization === RUN TestLocalizationService/pt-PT_localization === RUN TestLocalizationService/ru_localization === RUN TestLocalizationService/sv_localization === RUN TestLocalizationService/tr_localization === RUN TestLocalizationService/uk_localization === RUN TestLocalizationService/vi_localization === RUN TestLocalizationService/zh-CN_localization === RUN TestLocalizationService/zh-TW_localization === RUN TestLocalizationService/All_required_keys_exist_in_bg === RUN TestLocalizationService/All_required_keys_exist_in_ca === RUN TestLocalizationService/All_required_keys_exist_in_de === RUN TestLocalizationService/All_required_keys_exist_in_en === RUN TestLocalizationService/All_required_keys_exist_in_es === RUN TestLocalizationService/All_required_keys_exist_in_et === RUN TestLocalizationService/All_required_keys_exist_in_fil === RUN TestLocalizationService/All_required_keys_exist_in_fr === RUN TestLocalizationService/All_required_keys_exist_in_hr === RUN TestLocalizationService/All_required_keys_exist_in_is === RUN TestLocalizationService/All_required_keys_exist_in_ja === RUN TestLocalizationService/All_required_keys_exist_in_nb === RUN TestLocalizationService/All_required_keys_exist_in_nl === RUN TestLocalizationService/All_required_keys_exist_in_nn === RUN TestLocalizationService/All_required_keys_exist_in_pl === RUN TestLocalizationService/All_required_keys_exist_in_pt-BR === RUN TestLocalizationService/All_required_keys_exist_in_pt-PT === RUN TestLocalizationService/All_required_keys_exist_in_ru === RUN TestLocalizationService/All_required_keys_exist_in_sv === RUN TestLocalizationService/All_required_keys_exist_in_tr === RUN TestLocalizationService/All_required_keys_exist_in_uk === RUN TestLocalizationService/All_required_keys_exist_in_vi === RUN TestLocalizationService/All_required_keys_exist_in_zh-CN === RUN TestLocalizationService/All_required_keys_exist_in_zh-TW --- PASS: TestLocalizationService (0.01s) --- PASS: TestLocalizationService/bg_localization (0.00s) --- PASS: TestLocalizationService/ca_localization (0.00s) --- PASS: TestLocalizationService/de_localization (0.00s) --- PASS: TestLocalizationService/en_localization (0.00s) --- PASS: TestLocalizationService/es_localization (0.00s) --- PASS: TestLocalizationService/et_localization (0.00s) --- PASS: TestLocalizationService/fil_localization (0.00s) --- PASS: TestLocalizationService/fr_localization (0.00s) --- PASS: TestLocalizationService/hr_localization (0.00s) --- PASS: TestLocalizationService/is_localization (0.00s) --- PASS: TestLocalizationService/ja_localization (0.00s) --- PASS: TestLocalizationService/nb_localization (0.00s) --- PASS: TestLocalizationService/nl_localization (0.00s) --- PASS: TestLocalizationService/nn_localization (0.00s) --- PASS: TestLocalizationService/pl_localization (0.00s) --- PASS: TestLocalizationService/pt-BR_localization (0.00s) --- PASS: TestLocalizationService/pt-PT_localization (0.00s) --- PASS: TestLocalizationService/ru_localization (0.00s) --- PASS: TestLocalizationService/sv_localization (0.00s) --- PASS: TestLocalizationService/tr_localization (0.00s) --- PASS: TestLocalizationService/uk_localization (0.00s) --- PASS: TestLocalizationService/vi_localization (0.00s) --- PASS: TestLocalizationService/zh-CN_localization (0.00s) --- PASS: TestLocalizationService/zh-TW_localization (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_bg (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_ca (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_de (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_en (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_es (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_et (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_fil (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_fr (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_hr (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_is (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_ja (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_nb (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_nl (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_nn (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_pl (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_pt-BR (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_pt-PT (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_ru (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_sv (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_tr (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_uk (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_vi (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_zh-CN (0.00s) --- PASS: TestLocalizationService/All_required_keys_exist_in_zh-TW (0.00s) === RUN TestComprehensiveTranslations === RUN TestComprehensiveTranslations/ca === RUN TestComprehensiveTranslations/ca/access_denied === RUN TestComprehensiveTranslations/ca/algorithm === RUN TestComprehensiveTranslations/ca/authorization_required === RUN TestComprehensiveTranslations/ca/benchmark_requires_js === RUN TestComprehensiveTranslations/ca/benchmarking_anubis === RUN TestComprehensiveTranslations/ca/celphase === RUN TestComprehensiveTranslations/ca/client_error_browser === RUN TestComprehensiveTranslations/ca/compare === RUN TestComprehensiveTranslations/ca/connection_security === RUN TestComprehensiveTranslations/ca/contact_webmaster === RUN TestComprehensiveTranslations/ca/cookies_disabled === RUN TestComprehensiveTranslations/ca/difficulty === RUN TestComprehensiveTranslations/ca/dronebl_entry === RUN TestComprehensiveTranslations/ca/failed_to_sign_jwt === RUN TestComprehensiveTranslations/ca/go_home === RUN TestComprehensiveTranslations/ca/internal_server_error === RUN TestComprehensiveTranslations/ca/invalid_invocation === RUN TestComprehensiveTranslations/ca/invalid_redirect === RUN TestComprehensiveTranslations/ca/iters === RUN TestComprehensiveTranslations/ca/iters_a === RUN TestComprehensiveTranslations/ca/iters_b === RUN TestComprehensiveTranslations/ca/javascript_required === RUN TestComprehensiveTranslations/ca/js_calculating === RUN TestComprehensiveTranslations/ca/js_calculating_difficulty === RUN TestComprehensiveTranslations/ca/js_calculation_error === RUN TestComprehensiveTranslations/ca/js_calculation_error_msg === RUN TestComprehensiveTranslations/ca/js_challenge_error === RUN TestComprehensiveTranslations/ca/js_challenge_error_msg === RUN TestComprehensiveTranslations/ca/js_context_not_secure === RUN TestComprehensiveTranslations/ca/js_context_not_secure_msg === RUN TestComprehensiveTranslations/ca/js_cookies_error === RUN TestComprehensiveTranslations/ca/js_done_took === RUN TestComprehensiveTranslations/ca/js_finished_reading === RUN TestComprehensiveTranslations/ca/js_iterations === RUN TestComprehensiveTranslations/ca/js_missing_feature === RUN TestComprehensiveTranslations/ca/js_speed === RUN TestComprehensiveTranslations/ca/js_success === RUN TestComprehensiveTranslations/ca/js_verification_longer === RUN TestComprehensiveTranslations/ca/js_web_crypto_error === RUN TestComprehensiveTranslations/ca/js_web_workers_error === RUN TestComprehensiveTranslations/ca/jshelter_note === RUN TestComprehensiveTranslations/ca/loading === RUN TestComprehensiveTranslations/ca/made_with === RUN TestComprehensiveTranslations/ca/making_sure_not_bot === RUN TestComprehensiveTranslations/ca/mascot_design === RUN TestComprehensiveTranslations/ca/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/ca/oh_noes === RUN TestComprehensiveTranslations/ca/protected_by === RUN TestComprehensiveTranslations/ca/protected_from === RUN TestComprehensiveTranslations/ca/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/ca/redirect_not_parseable === RUN TestComprehensiveTranslations/ca/script_load_error === RUN TestComprehensiveTranslations/ca/see_dronebl_lookup === RUN TestComprehensiveTranslations/ca/simplified_explanation === RUN TestComprehensiveTranslations/ca/static_check_endpoint === RUN TestComprehensiveTranslations/ca/time === RUN TestComprehensiveTranslations/ca/time_a === RUN TestComprehensiveTranslations/ca/time_b === RUN TestComprehensiveTranslations/ca/try_again === RUN TestComprehensiveTranslations/ca/version_info === RUN TestComprehensiveTranslations/ca/why_am_i_seeing === RUN TestComprehensiveTranslations/ca/you_are_not_a_bot === RUN TestComprehensiveTranslations/cs === RUN TestComprehensiveTranslations/cs/access_denied === RUN TestComprehensiveTranslations/cs/algorithm === RUN TestComprehensiveTranslations/cs/authorization_required === RUN TestComprehensiveTranslations/cs/benchmark_requires_js === RUN TestComprehensiveTranslations/cs/benchmarking_anubis === RUN TestComprehensiveTranslations/cs/celphase === RUN TestComprehensiveTranslations/cs/client_error_browser === RUN TestComprehensiveTranslations/cs/compare === RUN TestComprehensiveTranslations/cs/connection_security === RUN TestComprehensiveTranslations/cs/contact_webmaster === RUN TestComprehensiveTranslations/cs/cookies_disabled === RUN TestComprehensiveTranslations/cs/difficulty === RUN TestComprehensiveTranslations/cs/dronebl_entry === RUN TestComprehensiveTranslations/cs/failed_to_sign_jwt === RUN TestComprehensiveTranslations/cs/go_home === RUN TestComprehensiveTranslations/cs/internal_server_error === RUN TestComprehensiveTranslations/cs/invalid_invocation === RUN TestComprehensiveTranslations/cs/invalid_redirect === RUN TestComprehensiveTranslations/cs/iters === RUN TestComprehensiveTranslations/cs/iters_a === RUN TestComprehensiveTranslations/cs/iters_b === RUN TestComprehensiveTranslations/cs/javascript_required === RUN TestComprehensiveTranslations/cs/js_calculating === RUN TestComprehensiveTranslations/cs/js_calculating_difficulty === RUN TestComprehensiveTranslations/cs/js_calculation_error === RUN TestComprehensiveTranslations/cs/js_calculation_error_msg === RUN TestComprehensiveTranslations/cs/js_challenge_error === RUN TestComprehensiveTranslations/cs/js_challenge_error_msg === RUN TestComprehensiveTranslations/cs/js_context_not_secure === RUN TestComprehensiveTranslations/cs/js_context_not_secure_msg === RUN TestComprehensiveTranslations/cs/js_cookies_error === RUN TestComprehensiveTranslations/cs/js_done_took === RUN TestComprehensiveTranslations/cs/js_finished_reading === RUN TestComprehensiveTranslations/cs/js_iterations === RUN TestComprehensiveTranslations/cs/js_missing_feature === RUN TestComprehensiveTranslations/cs/js_speed === RUN TestComprehensiveTranslations/cs/js_success === RUN TestComprehensiveTranslations/cs/js_verification_longer === RUN TestComprehensiveTranslations/cs/js_web_crypto_error === RUN TestComprehensiveTranslations/cs/js_web_workers_error === RUN TestComprehensiveTranslations/cs/jshelter_note === RUN TestComprehensiveTranslations/cs/loading === RUN TestComprehensiveTranslations/cs/made_with === RUN TestComprehensiveTranslations/cs/making_sure_not_bot === RUN TestComprehensiveTranslations/cs/mascot_design === RUN TestComprehensiveTranslations/cs/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/cs/oh_noes === RUN TestComprehensiveTranslations/cs/protected_by === RUN TestComprehensiveTranslations/cs/protected_from === RUN TestComprehensiveTranslations/cs/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/cs/redirect_not_parseable === RUN TestComprehensiveTranslations/cs/script_load_error === RUN TestComprehensiveTranslations/cs/see_dronebl_lookup === RUN TestComprehensiveTranslations/cs/simplified_explanation === RUN TestComprehensiveTranslations/cs/static_check_endpoint === RUN TestComprehensiveTranslations/cs/time === RUN TestComprehensiveTranslations/cs/time_a === RUN TestComprehensiveTranslations/cs/time_b === RUN TestComprehensiveTranslations/cs/try_again === RUN TestComprehensiveTranslations/cs/version_info === RUN TestComprehensiveTranslations/cs/why_am_i_seeing === RUN TestComprehensiveTranslations/cs/you_are_not_a_bot === RUN TestComprehensiveTranslations/de === RUN TestComprehensiveTranslations/de/access_denied === RUN TestComprehensiveTranslations/de/algorithm === RUN TestComprehensiveTranslations/de/authorization_required === RUN TestComprehensiveTranslations/de/benchmark_requires_js === RUN TestComprehensiveTranslations/de/benchmarking_anubis === RUN TestComprehensiveTranslations/de/celphase === RUN TestComprehensiveTranslations/de/client_error_browser === RUN TestComprehensiveTranslations/de/compare === RUN TestComprehensiveTranslations/de/connection_security === RUN TestComprehensiveTranslations/de/contact_webmaster === RUN TestComprehensiveTranslations/de/cookies_disabled === RUN TestComprehensiveTranslations/de/difficulty === RUN TestComprehensiveTranslations/de/dronebl_entry === RUN TestComprehensiveTranslations/de/failed_to_sign_jwt === RUN TestComprehensiveTranslations/de/go_home === RUN TestComprehensiveTranslations/de/internal_server_error === RUN TestComprehensiveTranslations/de/invalid_invocation === RUN TestComprehensiveTranslations/de/invalid_redirect === RUN TestComprehensiveTranslations/de/iters === RUN TestComprehensiveTranslations/de/iters_a === RUN TestComprehensiveTranslations/de/iters_b === RUN TestComprehensiveTranslations/de/javascript_required === RUN TestComprehensiveTranslations/de/js_calculating === RUN TestComprehensiveTranslations/de/js_calculating_difficulty === RUN TestComprehensiveTranslations/de/js_calculation_error === RUN TestComprehensiveTranslations/de/js_calculation_error_msg === RUN TestComprehensiveTranslations/de/js_challenge_error === RUN TestComprehensiveTranslations/de/js_challenge_error_msg === RUN TestComprehensiveTranslations/de/js_context_not_secure === RUN TestComprehensiveTranslations/de/js_context_not_secure_msg === RUN TestComprehensiveTranslations/de/js_cookies_error === RUN TestComprehensiveTranslations/de/js_done_took === RUN TestComprehensiveTranslations/de/js_finished_reading === RUN TestComprehensiveTranslations/de/js_iterations === RUN TestComprehensiveTranslations/de/js_missing_feature === RUN TestComprehensiveTranslations/de/js_speed === RUN TestComprehensiveTranslations/de/js_success === RUN TestComprehensiveTranslations/de/js_verification_longer === RUN TestComprehensiveTranslations/de/js_web_crypto_error === RUN TestComprehensiveTranslations/de/js_web_workers_error === RUN TestComprehensiveTranslations/de/jshelter_note === RUN TestComprehensiveTranslations/de/loading === RUN TestComprehensiveTranslations/de/made_with === RUN TestComprehensiveTranslations/de/making_sure_not_bot === RUN TestComprehensiveTranslations/de/mascot_design === RUN TestComprehensiveTranslations/de/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/de/oh_noes === RUN TestComprehensiveTranslations/de/protected_by === RUN TestComprehensiveTranslations/de/protected_from === RUN TestComprehensiveTranslations/de/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/de/redirect_not_parseable === RUN TestComprehensiveTranslations/de/script_load_error === RUN TestComprehensiveTranslations/de/see_dronebl_lookup === RUN TestComprehensiveTranslations/de/simplified_explanation === RUN TestComprehensiveTranslations/de/static_check_endpoint === RUN TestComprehensiveTranslations/de/time === RUN TestComprehensiveTranslations/de/time_a === RUN TestComprehensiveTranslations/de/time_b === RUN TestComprehensiveTranslations/de/try_again === RUN TestComprehensiveTranslations/de/version_info === RUN TestComprehensiveTranslations/de/why_am_i_seeing === RUN TestComprehensiveTranslations/de/you_are_not_a_bot === RUN TestComprehensiveTranslations/en === RUN TestComprehensiveTranslations/en/access_denied === RUN TestComprehensiveTranslations/en/algorithm === RUN TestComprehensiveTranslations/en/authorization_required === RUN TestComprehensiveTranslations/en/benchmark_requires_js === RUN TestComprehensiveTranslations/en/benchmarking_anubis === RUN TestComprehensiveTranslations/en/celphase === RUN TestComprehensiveTranslations/en/client_error_browser === RUN TestComprehensiveTranslations/en/compare === RUN TestComprehensiveTranslations/en/connection_security === RUN TestComprehensiveTranslations/en/contact_webmaster === RUN TestComprehensiveTranslations/en/cookies_disabled === RUN TestComprehensiveTranslations/en/difficulty === RUN TestComprehensiveTranslations/en/dronebl_entry === RUN TestComprehensiveTranslations/en/failed_to_sign_jwt === RUN TestComprehensiveTranslations/en/go_home === RUN TestComprehensiveTranslations/en/internal_server_error === RUN TestComprehensiveTranslations/en/invalid_invocation === RUN TestComprehensiveTranslations/en/invalid_redirect === RUN TestComprehensiveTranslations/en/iters === RUN TestComprehensiveTranslations/en/iters_a === RUN TestComprehensiveTranslations/en/iters_b === RUN TestComprehensiveTranslations/en/javascript_required === RUN TestComprehensiveTranslations/en/js_calculating === RUN TestComprehensiveTranslations/en/js_calculating_difficulty === RUN TestComprehensiveTranslations/en/js_calculation_error === RUN TestComprehensiveTranslations/en/js_calculation_error_msg === RUN TestComprehensiveTranslations/en/js_challenge_error === RUN TestComprehensiveTranslations/en/js_challenge_error_msg === RUN TestComprehensiveTranslations/en/js_context_not_secure === RUN TestComprehensiveTranslations/en/js_context_not_secure_msg === RUN TestComprehensiveTranslations/en/js_cookies_error === RUN TestComprehensiveTranslations/en/js_done_took === RUN TestComprehensiveTranslations/en/js_finished_reading === RUN TestComprehensiveTranslations/en/js_iterations === RUN TestComprehensiveTranslations/en/js_missing_feature === RUN TestComprehensiveTranslations/en/js_speed === RUN TestComprehensiveTranslations/en/js_success === RUN TestComprehensiveTranslations/en/js_verification_longer === RUN TestComprehensiveTranslations/en/js_web_crypto_error === RUN TestComprehensiveTranslations/en/js_web_workers_error === RUN TestComprehensiveTranslations/en/jshelter_note === RUN TestComprehensiveTranslations/en/loading === RUN TestComprehensiveTranslations/en/made_with === RUN TestComprehensiveTranslations/en/making_sure_not_bot === RUN TestComprehensiveTranslations/en/mascot_design === RUN TestComprehensiveTranslations/en/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/en/oh_noes === RUN TestComprehensiveTranslations/en/protected_by === RUN TestComprehensiveTranslations/en/protected_from === RUN TestComprehensiveTranslations/en/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/en/redirect_not_parseable === RUN TestComprehensiveTranslations/en/script_load_error === RUN TestComprehensiveTranslations/en/see_dronebl_lookup === RUN TestComprehensiveTranslations/en/simplified_explanation === RUN TestComprehensiveTranslations/en/static_check_endpoint === RUN TestComprehensiveTranslations/en/time === RUN TestComprehensiveTranslations/en/time_a === RUN TestComprehensiveTranslations/en/time_b === RUN TestComprehensiveTranslations/en/try_again === RUN TestComprehensiveTranslations/en/version_info === RUN TestComprehensiveTranslations/en/why_am_i_seeing === RUN TestComprehensiveTranslations/en/you_are_not_a_bot === RUN TestComprehensiveTranslations/es === RUN TestComprehensiveTranslations/es/access_denied === RUN TestComprehensiveTranslations/es/algorithm === RUN TestComprehensiveTranslations/es/authorization_required === RUN TestComprehensiveTranslations/es/benchmark_requires_js === RUN TestComprehensiveTranslations/es/benchmarking_anubis === RUN TestComprehensiveTranslations/es/celphase === RUN TestComprehensiveTranslations/es/client_error_browser === RUN TestComprehensiveTranslations/es/compare === RUN TestComprehensiveTranslations/es/connection_security === RUN TestComprehensiveTranslations/es/contact_webmaster === RUN TestComprehensiveTranslations/es/cookies_disabled === RUN TestComprehensiveTranslations/es/difficulty === RUN TestComprehensiveTranslations/es/dronebl_entry === RUN TestComprehensiveTranslations/es/failed_to_sign_jwt === RUN TestComprehensiveTranslations/es/go_home === RUN TestComprehensiveTranslations/es/internal_server_error === RUN TestComprehensiveTranslations/es/invalid_invocation === RUN TestComprehensiveTranslations/es/invalid_redirect === RUN TestComprehensiveTranslations/es/iters === RUN TestComprehensiveTranslations/es/iters_a === RUN TestComprehensiveTranslations/es/iters_b === RUN TestComprehensiveTranslations/es/javascript_required === RUN TestComprehensiveTranslations/es/js_calculating === RUN TestComprehensiveTranslations/es/js_calculating_difficulty === RUN TestComprehensiveTranslations/es/js_calculation_error === RUN TestComprehensiveTranslations/es/js_calculation_error_msg === RUN TestComprehensiveTranslations/es/js_challenge_error === RUN TestComprehensiveTranslations/es/js_challenge_error_msg === RUN TestComprehensiveTranslations/es/js_context_not_secure === RUN TestComprehensiveTranslations/es/js_context_not_secure_msg === RUN TestComprehensiveTranslations/es/js_cookies_error === RUN TestComprehensiveTranslations/es/js_done_took === RUN TestComprehensiveTranslations/es/js_finished_reading === RUN TestComprehensiveTranslations/es/js_iterations === RUN TestComprehensiveTranslations/es/js_missing_feature === RUN TestComprehensiveTranslations/es/js_speed === RUN TestComprehensiveTranslations/es/js_success === RUN TestComprehensiveTranslations/es/js_verification_longer === RUN TestComprehensiveTranslations/es/js_web_crypto_error === RUN TestComprehensiveTranslations/es/js_web_workers_error === RUN TestComprehensiveTranslations/es/jshelter_note === RUN TestComprehensiveTranslations/es/loading === RUN TestComprehensiveTranslations/es/made_with === RUN TestComprehensiveTranslations/es/making_sure_not_bot === RUN TestComprehensiveTranslations/es/mascot_design === RUN TestComprehensiveTranslations/es/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/es/oh_noes === RUN TestComprehensiveTranslations/es/protected_by === RUN TestComprehensiveTranslations/es/protected_from === RUN TestComprehensiveTranslations/es/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/es/redirect_not_parseable === RUN TestComprehensiveTranslations/es/script_load_error === RUN TestComprehensiveTranslations/es/see_dronebl_lookup === RUN TestComprehensiveTranslations/es/simplified_explanation === RUN TestComprehensiveTranslations/es/static_check_endpoint === RUN TestComprehensiveTranslations/es/time === RUN TestComprehensiveTranslations/es/time_a === RUN TestComprehensiveTranslations/es/time_b === RUN TestComprehensiveTranslations/es/try_again === RUN TestComprehensiveTranslations/es/version_info === RUN TestComprehensiveTranslations/es/why_am_i_seeing === RUN TestComprehensiveTranslations/es/you_are_not_a_bot === RUN TestComprehensiveTranslations/et === RUN TestComprehensiveTranslations/et/access_denied === RUN TestComprehensiveTranslations/et/algorithm === RUN TestComprehensiveTranslations/et/authorization_required === RUN TestComprehensiveTranslations/et/benchmark_requires_js === RUN TestComprehensiveTranslations/et/benchmarking_anubis === RUN TestComprehensiveTranslations/et/celphase === RUN TestComprehensiveTranslations/et/client_error_browser === RUN TestComprehensiveTranslations/et/compare === RUN TestComprehensiveTranslations/et/connection_security === RUN TestComprehensiveTranslations/et/contact_webmaster === RUN TestComprehensiveTranslations/et/cookies_disabled === RUN TestComprehensiveTranslations/et/difficulty === RUN TestComprehensiveTranslations/et/dronebl_entry === RUN TestComprehensiveTranslations/et/failed_to_sign_jwt === RUN TestComprehensiveTranslations/et/go_home === RUN TestComprehensiveTranslations/et/internal_server_error === RUN TestComprehensiveTranslations/et/invalid_invocation === RUN TestComprehensiveTranslations/et/invalid_redirect === RUN TestComprehensiveTranslations/et/iters === RUN TestComprehensiveTranslations/et/iters_a === RUN TestComprehensiveTranslations/et/iters_b === RUN TestComprehensiveTranslations/et/javascript_required === RUN TestComprehensiveTranslations/et/js_calculating === RUN TestComprehensiveTranslations/et/js_calculating_difficulty === RUN TestComprehensiveTranslations/et/js_calculation_error === RUN TestComprehensiveTranslations/et/js_calculation_error_msg === RUN TestComprehensiveTranslations/et/js_challenge_error === RUN TestComprehensiveTranslations/et/js_challenge_error_msg === RUN TestComprehensiveTranslations/et/js_context_not_secure === RUN TestComprehensiveTranslations/et/js_context_not_secure_msg === RUN TestComprehensiveTranslations/et/js_cookies_error === RUN TestComprehensiveTranslations/et/js_done_took === RUN TestComprehensiveTranslations/et/js_finished_reading === RUN TestComprehensiveTranslations/et/js_iterations === RUN TestComprehensiveTranslations/et/js_missing_feature === RUN TestComprehensiveTranslations/et/js_speed === RUN TestComprehensiveTranslations/et/js_success === RUN TestComprehensiveTranslations/et/js_verification_longer === RUN TestComprehensiveTranslations/et/js_web_crypto_error === RUN TestComprehensiveTranslations/et/js_web_workers_error === RUN TestComprehensiveTranslations/et/jshelter_note === RUN TestComprehensiveTranslations/et/loading === RUN TestComprehensiveTranslations/et/made_with === RUN TestComprehensiveTranslations/et/making_sure_not_bot === RUN TestComprehensiveTranslations/et/mascot_design === RUN TestComprehensiveTranslations/et/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/et/oh_noes === RUN TestComprehensiveTranslations/et/protected_by === RUN TestComprehensiveTranslations/et/protected_from === RUN TestComprehensiveTranslations/et/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/et/redirect_not_parseable === RUN TestComprehensiveTranslations/et/script_load_error === RUN TestComprehensiveTranslations/et/see_dronebl_lookup === RUN TestComprehensiveTranslations/et/simplified_explanation === RUN TestComprehensiveTranslations/et/static_check_endpoint === RUN TestComprehensiveTranslations/et/time === RUN TestComprehensiveTranslations/et/time_a === RUN TestComprehensiveTranslations/et/time_b === RUN TestComprehensiveTranslations/et/try_again === RUN TestComprehensiveTranslations/et/version_info === RUN TestComprehensiveTranslations/et/why_am_i_seeing === RUN TestComprehensiveTranslations/et/you_are_not_a_bot === RUN TestComprehensiveTranslations/fi === RUN TestComprehensiveTranslations/fi/access_denied === RUN TestComprehensiveTranslations/fi/algorithm === RUN TestComprehensiveTranslations/fi/authorization_required === RUN TestComprehensiveTranslations/fi/benchmark_requires_js === RUN TestComprehensiveTranslations/fi/benchmarking_anubis === RUN TestComprehensiveTranslations/fi/celphase === RUN TestComprehensiveTranslations/fi/client_error_browser === RUN TestComprehensiveTranslations/fi/compare === RUN TestComprehensiveTranslations/fi/connection_security === RUN TestComprehensiveTranslations/fi/contact_webmaster === RUN TestComprehensiveTranslations/fi/cookies_disabled === RUN TestComprehensiveTranslations/fi/difficulty === RUN TestComprehensiveTranslations/fi/dronebl_entry === RUN TestComprehensiveTranslations/fi/failed_to_sign_jwt === RUN TestComprehensiveTranslations/fi/go_home === RUN TestComprehensiveTranslations/fi/internal_server_error === RUN TestComprehensiveTranslations/fi/invalid_invocation === RUN TestComprehensiveTranslations/fi/invalid_redirect === RUN TestComprehensiveTranslations/fi/iters === RUN TestComprehensiveTranslations/fi/iters_a === RUN TestComprehensiveTranslations/fi/iters_b === RUN TestComprehensiveTranslations/fi/javascript_required === RUN TestComprehensiveTranslations/fi/js_calculating === RUN TestComprehensiveTranslations/fi/js_calculating_difficulty === RUN TestComprehensiveTranslations/fi/js_calculation_error === RUN TestComprehensiveTranslations/fi/js_calculation_error_msg === RUN TestComprehensiveTranslations/fi/js_challenge_error === RUN TestComprehensiveTranslations/fi/js_challenge_error_msg === RUN TestComprehensiveTranslations/fi/js_context_not_secure === RUN TestComprehensiveTranslations/fi/js_context_not_secure_msg === RUN TestComprehensiveTranslations/fi/js_cookies_error === RUN TestComprehensiveTranslations/fi/js_done_took === RUN TestComprehensiveTranslations/fi/js_finished_reading === RUN TestComprehensiveTranslations/fi/js_iterations === RUN TestComprehensiveTranslations/fi/js_missing_feature === RUN TestComprehensiveTranslations/fi/js_speed === RUN TestComprehensiveTranslations/fi/js_success === RUN TestComprehensiveTranslations/fi/js_verification_longer === RUN TestComprehensiveTranslations/fi/js_web_crypto_error === RUN TestComprehensiveTranslations/fi/js_web_workers_error === RUN TestComprehensiveTranslations/fi/jshelter_note === RUN TestComprehensiveTranslations/fi/loading === RUN TestComprehensiveTranslations/fi/made_with === RUN TestComprehensiveTranslations/fi/making_sure_not_bot === RUN TestComprehensiveTranslations/fi/mascot_design === RUN TestComprehensiveTranslations/fi/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/fi/oh_noes === RUN TestComprehensiveTranslations/fi/protected_by === RUN TestComprehensiveTranslations/fi/protected_from === RUN TestComprehensiveTranslations/fi/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/fi/redirect_not_parseable === RUN TestComprehensiveTranslations/fi/script_load_error === RUN TestComprehensiveTranslations/fi/see_dronebl_lookup === RUN TestComprehensiveTranslations/fi/simplified_explanation === RUN TestComprehensiveTranslations/fi/static_check_endpoint === RUN TestComprehensiveTranslations/fi/time === RUN TestComprehensiveTranslations/fi/time_a === RUN TestComprehensiveTranslations/fi/time_b === RUN TestComprehensiveTranslations/fi/try_again === RUN TestComprehensiveTranslations/fi/version_info === RUN TestComprehensiveTranslations/fi/why_am_i_seeing === RUN TestComprehensiveTranslations/fi/you_are_not_a_bot === RUN TestComprehensiveTranslations/fil === RUN TestComprehensiveTranslations/fil/access_denied === RUN TestComprehensiveTranslations/fil/algorithm === RUN TestComprehensiveTranslations/fil/authorization_required === RUN TestComprehensiveTranslations/fil/benchmark_requires_js === RUN TestComprehensiveTranslations/fil/benchmarking_anubis === RUN TestComprehensiveTranslations/fil/celphase === RUN TestComprehensiveTranslations/fil/client_error_browser === RUN TestComprehensiveTranslations/fil/compare === RUN TestComprehensiveTranslations/fil/connection_security === RUN TestComprehensiveTranslations/fil/contact_webmaster === RUN TestComprehensiveTranslations/fil/cookies_disabled === RUN TestComprehensiveTranslations/fil/difficulty === RUN TestComprehensiveTranslations/fil/dronebl_entry === RUN TestComprehensiveTranslations/fil/failed_to_sign_jwt === RUN TestComprehensiveTranslations/fil/go_home === RUN TestComprehensiveTranslations/fil/internal_server_error === RUN TestComprehensiveTranslations/fil/invalid_invocation === RUN TestComprehensiveTranslations/fil/invalid_redirect === RUN TestComprehensiveTranslations/fil/iters === RUN TestComprehensiveTranslations/fil/iters_a === RUN TestComprehensiveTranslations/fil/iters_b === RUN TestComprehensiveTranslations/fil/javascript_required === RUN TestComprehensiveTranslations/fil/js_calculating === RUN TestComprehensiveTranslations/fil/js_calculating_difficulty === RUN TestComprehensiveTranslations/fil/js_calculation_error === RUN TestComprehensiveTranslations/fil/js_calculation_error_msg === RUN TestComprehensiveTranslations/fil/js_challenge_error === RUN TestComprehensiveTranslations/fil/js_challenge_error_msg === RUN TestComprehensiveTranslations/fil/js_context_not_secure === RUN TestComprehensiveTranslations/fil/js_context_not_secure_msg === RUN TestComprehensiveTranslations/fil/js_cookies_error === RUN TestComprehensiveTranslations/fil/js_done_took === RUN TestComprehensiveTranslations/fil/js_finished_reading === RUN TestComprehensiveTranslations/fil/js_iterations === RUN TestComprehensiveTranslations/fil/js_missing_feature === RUN TestComprehensiveTranslations/fil/js_speed === RUN TestComprehensiveTranslations/fil/js_success === RUN TestComprehensiveTranslations/fil/js_verification_longer === RUN TestComprehensiveTranslations/fil/js_web_crypto_error === RUN TestComprehensiveTranslations/fil/js_web_workers_error === RUN TestComprehensiveTranslations/fil/jshelter_note === RUN TestComprehensiveTranslations/fil/loading === RUN TestComprehensiveTranslations/fil/made_with === RUN TestComprehensiveTranslations/fil/making_sure_not_bot === RUN TestComprehensiveTranslations/fil/mascot_design === RUN TestComprehensiveTranslations/fil/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/fil/oh_noes === RUN TestComprehensiveTranslations/fil/protected_by === RUN TestComprehensiveTranslations/fil/protected_from === RUN TestComprehensiveTranslations/fil/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/fil/redirect_not_parseable === RUN TestComprehensiveTranslations/fil/script_load_error === RUN TestComprehensiveTranslations/fil/see_dronebl_lookup === RUN TestComprehensiveTranslations/fil/simplified_explanation === RUN TestComprehensiveTranslations/fil/static_check_endpoint === RUN TestComprehensiveTranslations/fil/time === RUN TestComprehensiveTranslations/fil/time_a === RUN TestComprehensiveTranslations/fil/time_b === RUN TestComprehensiveTranslations/fil/try_again === RUN TestComprehensiveTranslations/fil/version_info === RUN TestComprehensiveTranslations/fil/why_am_i_seeing === RUN TestComprehensiveTranslations/fil/you_are_not_a_bot === RUN TestComprehensiveTranslations/fr === RUN TestComprehensiveTranslations/fr/access_denied === RUN TestComprehensiveTranslations/fr/algorithm === RUN TestComprehensiveTranslations/fr/authorization_required === RUN TestComprehensiveTranslations/fr/benchmark_requires_js === RUN TestComprehensiveTranslations/fr/benchmarking_anubis === RUN TestComprehensiveTranslations/fr/celphase === RUN TestComprehensiveTranslations/fr/client_error_browser === RUN TestComprehensiveTranslations/fr/compare === RUN TestComprehensiveTranslations/fr/connection_security === RUN TestComprehensiveTranslations/fr/contact_webmaster === RUN TestComprehensiveTranslations/fr/cookies_disabled === RUN TestComprehensiveTranslations/fr/difficulty === RUN TestComprehensiveTranslations/fr/dronebl_entry === RUN TestComprehensiveTranslations/fr/failed_to_sign_jwt === RUN TestComprehensiveTranslations/fr/go_home === RUN TestComprehensiveTranslations/fr/internal_server_error === RUN TestComprehensiveTranslations/fr/invalid_invocation === RUN TestComprehensiveTranslations/fr/invalid_redirect === RUN TestComprehensiveTranslations/fr/iters === RUN TestComprehensiveTranslations/fr/iters_a === RUN TestComprehensiveTranslations/fr/iters_b === RUN TestComprehensiveTranslations/fr/javascript_required === RUN TestComprehensiveTranslations/fr/js_calculating === RUN TestComprehensiveTranslations/fr/js_calculating_difficulty === RUN TestComprehensiveTranslations/fr/js_calculation_error === RUN TestComprehensiveTranslations/fr/js_calculation_error_msg === RUN TestComprehensiveTranslations/fr/js_challenge_error === RUN TestComprehensiveTranslations/fr/js_challenge_error_msg === RUN TestComprehensiveTranslations/fr/js_context_not_secure === RUN TestComprehensiveTranslations/fr/js_context_not_secure_msg === RUN TestComprehensiveTranslations/fr/js_cookies_error === RUN TestComprehensiveTranslations/fr/js_done_took === RUN TestComprehensiveTranslations/fr/js_finished_reading === RUN TestComprehensiveTranslations/fr/js_iterations === RUN TestComprehensiveTranslations/fr/js_missing_feature === RUN TestComprehensiveTranslations/fr/js_speed === RUN TestComprehensiveTranslations/fr/js_success === RUN TestComprehensiveTranslations/fr/js_verification_longer === RUN TestComprehensiveTranslations/fr/js_web_crypto_error === RUN TestComprehensiveTranslations/fr/js_web_workers_error === RUN TestComprehensiveTranslations/fr/jshelter_note === RUN TestComprehensiveTranslations/fr/loading === RUN TestComprehensiveTranslations/fr/made_with === RUN TestComprehensiveTranslations/fr/making_sure_not_bot === RUN TestComprehensiveTranslations/fr/mascot_design === RUN TestComprehensiveTranslations/fr/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/fr/oh_noes === RUN TestComprehensiveTranslations/fr/protected_by === RUN TestComprehensiveTranslations/fr/protected_from === RUN TestComprehensiveTranslations/fr/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/fr/redirect_not_parseable === RUN TestComprehensiveTranslations/fr/script_load_error === RUN TestComprehensiveTranslations/fr/see_dronebl_lookup === RUN TestComprehensiveTranslations/fr/simplified_explanation === RUN TestComprehensiveTranslations/fr/static_check_endpoint === RUN TestComprehensiveTranslations/fr/time === RUN TestComprehensiveTranslations/fr/time_a === RUN TestComprehensiveTranslations/fr/time_b === RUN TestComprehensiveTranslations/fr/try_again === RUN TestComprehensiveTranslations/fr/version_info === RUN TestComprehensiveTranslations/fr/why_am_i_seeing === RUN TestComprehensiveTranslations/fr/you_are_not_a_bot === RUN TestComprehensiveTranslations/hr === RUN TestComprehensiveTranslations/hr/access_denied === RUN TestComprehensiveTranslations/hr/algorithm === RUN TestComprehensiveTranslations/hr/authorization_required === RUN TestComprehensiveTranslations/hr/benchmark_requires_js === RUN TestComprehensiveTranslations/hr/benchmarking_anubis === RUN TestComprehensiveTranslations/hr/celphase === RUN TestComprehensiveTranslations/hr/client_error_browser === RUN TestComprehensiveTranslations/hr/compare === RUN TestComprehensiveTranslations/hr/connection_security === RUN TestComprehensiveTranslations/hr/contact_webmaster === RUN TestComprehensiveTranslations/hr/cookies_disabled === RUN TestComprehensiveTranslations/hr/difficulty === RUN TestComprehensiveTranslations/hr/dronebl_entry === RUN TestComprehensiveTranslations/hr/failed_to_sign_jwt === RUN TestComprehensiveTranslations/hr/go_home === RUN TestComprehensiveTranslations/hr/internal_server_error === RUN TestComprehensiveTranslations/hr/invalid_invocation === RUN TestComprehensiveTranslations/hr/invalid_redirect === RUN TestComprehensiveTranslations/hr/iters === RUN TestComprehensiveTranslations/hr/iters_a === RUN TestComprehensiveTranslations/hr/iters_b === RUN TestComprehensiveTranslations/hr/javascript_required === RUN TestComprehensiveTranslations/hr/js_calculating === RUN TestComprehensiveTranslations/hr/js_calculating_difficulty === RUN TestComprehensiveTranslations/hr/js_calculation_error === RUN TestComprehensiveTranslations/hr/js_calculation_error_msg === RUN TestComprehensiveTranslations/hr/js_challenge_error === RUN TestComprehensiveTranslations/hr/js_challenge_error_msg === RUN TestComprehensiveTranslations/hr/js_context_not_secure === RUN TestComprehensiveTranslations/hr/js_context_not_secure_msg === RUN TestComprehensiveTranslations/hr/js_cookies_error === RUN TestComprehensiveTranslations/hr/js_done_took === RUN TestComprehensiveTranslations/hr/js_finished_reading === RUN TestComprehensiveTranslations/hr/js_iterations === RUN TestComprehensiveTranslations/hr/js_missing_feature === RUN TestComprehensiveTranslations/hr/js_speed === RUN TestComprehensiveTranslations/hr/js_success === RUN TestComprehensiveTranslations/hr/js_verification_longer === RUN TestComprehensiveTranslations/hr/js_web_crypto_error === RUN TestComprehensiveTranslations/hr/js_web_workers_error === RUN TestComprehensiveTranslations/hr/jshelter_note === RUN TestComprehensiveTranslations/hr/loading === RUN TestComprehensiveTranslations/hr/made_with === RUN TestComprehensiveTranslations/hr/making_sure_not_bot === RUN TestComprehensiveTranslations/hr/mascot_design === RUN TestComprehensiveTranslations/hr/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/hr/oh_noes === RUN TestComprehensiveTranslations/hr/protected_by === RUN TestComprehensiveTranslations/hr/protected_from === RUN TestComprehensiveTranslations/hr/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/hr/redirect_not_parseable === RUN TestComprehensiveTranslations/hr/script_load_error === RUN TestComprehensiveTranslations/hr/see_dronebl_lookup === RUN TestComprehensiveTranslations/hr/simplified_explanation === RUN TestComprehensiveTranslations/hr/static_check_endpoint === RUN TestComprehensiveTranslations/hr/time === RUN TestComprehensiveTranslations/hr/time_a === RUN TestComprehensiveTranslations/hr/time_b === RUN TestComprehensiveTranslations/hr/try_again === RUN TestComprehensiveTranslations/hr/version_info === RUN TestComprehensiveTranslations/hr/why_am_i_seeing === RUN TestComprehensiveTranslations/hr/you_are_not_a_bot === RUN TestComprehensiveTranslations/is === RUN TestComprehensiveTranslations/is/access_denied === RUN TestComprehensiveTranslations/is/algorithm === RUN TestComprehensiveTranslations/is/authorization_required === RUN TestComprehensiveTranslations/is/benchmark_requires_js === RUN TestComprehensiveTranslations/is/benchmarking_anubis === RUN TestComprehensiveTranslations/is/celphase === RUN TestComprehensiveTranslations/is/client_error_browser === RUN TestComprehensiveTranslations/is/compare === RUN TestComprehensiveTranslations/is/connection_security === RUN TestComprehensiveTranslations/is/contact_webmaster === RUN TestComprehensiveTranslations/is/cookies_disabled === RUN TestComprehensiveTranslations/is/difficulty === RUN TestComprehensiveTranslations/is/dronebl_entry === RUN TestComprehensiveTranslations/is/failed_to_sign_jwt === RUN TestComprehensiveTranslations/is/go_home === RUN TestComprehensiveTranslations/is/internal_server_error === RUN TestComprehensiveTranslations/is/invalid_invocation === RUN TestComprehensiveTranslations/is/invalid_redirect === RUN TestComprehensiveTranslations/is/iters === RUN TestComprehensiveTranslations/is/iters_a === RUN TestComprehensiveTranslations/is/iters_b === RUN TestComprehensiveTranslations/is/javascript_required === RUN TestComprehensiveTranslations/is/js_calculating === RUN TestComprehensiveTranslations/is/js_calculating_difficulty === RUN TestComprehensiveTranslations/is/js_calculation_error === RUN TestComprehensiveTranslations/is/js_calculation_error_msg === RUN TestComprehensiveTranslations/is/js_challenge_error === RUN TestComprehensiveTranslations/is/js_challenge_error_msg === RUN TestComprehensiveTranslations/is/js_context_not_secure === RUN TestComprehensiveTranslations/is/js_context_not_secure_msg === RUN TestComprehensiveTranslations/is/js_cookies_error === RUN TestComprehensiveTranslations/is/js_done_took === RUN TestComprehensiveTranslations/is/js_finished_reading === RUN TestComprehensiveTranslations/is/js_iterations === RUN TestComprehensiveTranslations/is/js_missing_feature === RUN TestComprehensiveTranslations/is/js_speed === RUN TestComprehensiveTranslations/is/js_success === RUN TestComprehensiveTranslations/is/js_verification_longer === RUN TestComprehensiveTranslations/is/js_web_crypto_error === RUN TestComprehensiveTranslations/is/js_web_workers_error === RUN TestComprehensiveTranslations/is/jshelter_note === RUN TestComprehensiveTranslations/is/loading === RUN TestComprehensiveTranslations/is/made_with === RUN TestComprehensiveTranslations/is/making_sure_not_bot === RUN TestComprehensiveTranslations/is/mascot_design === RUN TestComprehensiveTranslations/is/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/is/oh_noes === RUN TestComprehensiveTranslations/is/protected_by === RUN TestComprehensiveTranslations/is/protected_from === RUN TestComprehensiveTranslations/is/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/is/redirect_not_parseable === RUN TestComprehensiveTranslations/is/script_load_error === RUN TestComprehensiveTranslations/is/see_dronebl_lookup === RUN TestComprehensiveTranslations/is/simplified_explanation === RUN TestComprehensiveTranslations/is/static_check_endpoint === RUN TestComprehensiveTranslations/is/time === RUN TestComprehensiveTranslations/is/time_a === RUN TestComprehensiveTranslations/is/time_b === RUN TestComprehensiveTranslations/is/try_again === RUN TestComprehensiveTranslations/is/version_info === RUN TestComprehensiveTranslations/is/why_am_i_seeing === RUN TestComprehensiveTranslations/is/you_are_not_a_bot === RUN TestComprehensiveTranslations/it === RUN TestComprehensiveTranslations/it/access_denied === RUN TestComprehensiveTranslations/it/algorithm === RUN TestComprehensiveTranslations/it/authorization_required === RUN TestComprehensiveTranslations/it/benchmark_requires_js === RUN TestComprehensiveTranslations/it/benchmarking_anubis === RUN TestComprehensiveTranslations/it/celphase === RUN TestComprehensiveTranslations/it/client_error_browser === RUN TestComprehensiveTranslations/it/compare === RUN TestComprehensiveTranslations/it/connection_security === RUN TestComprehensiveTranslations/it/contact_webmaster === RUN TestComprehensiveTranslations/it/cookies_disabled === RUN TestComprehensiveTranslations/it/difficulty === RUN TestComprehensiveTranslations/it/dronebl_entry === RUN TestComprehensiveTranslations/it/failed_to_sign_jwt === RUN TestComprehensiveTranslations/it/go_home === RUN TestComprehensiveTranslations/it/internal_server_error === RUN TestComprehensiveTranslations/it/invalid_invocation === RUN TestComprehensiveTranslations/it/invalid_redirect === RUN TestComprehensiveTranslations/it/iters === RUN TestComprehensiveTranslations/it/iters_a === RUN TestComprehensiveTranslations/it/iters_b === RUN TestComprehensiveTranslations/it/javascript_required === RUN TestComprehensiveTranslations/it/js_calculating === RUN TestComprehensiveTranslations/it/js_calculating_difficulty === RUN TestComprehensiveTranslations/it/js_calculation_error === RUN TestComprehensiveTranslations/it/js_calculation_error_msg === RUN TestComprehensiveTranslations/it/js_challenge_error === RUN TestComprehensiveTranslations/it/js_challenge_error_msg === RUN TestComprehensiveTranslations/it/js_context_not_secure === RUN TestComprehensiveTranslations/it/js_context_not_secure_msg === RUN TestComprehensiveTranslations/it/js_cookies_error === RUN TestComprehensiveTranslations/it/js_done_took === RUN TestComprehensiveTranslations/it/js_finished_reading === RUN TestComprehensiveTranslations/it/js_iterations === RUN TestComprehensiveTranslations/it/js_missing_feature === RUN TestComprehensiveTranslations/it/js_speed === RUN TestComprehensiveTranslations/it/js_success === RUN TestComprehensiveTranslations/it/js_verification_longer === RUN TestComprehensiveTranslations/it/js_web_crypto_error === RUN TestComprehensiveTranslations/it/js_web_workers_error === RUN TestComprehensiveTranslations/it/jshelter_note === RUN TestComprehensiveTranslations/it/loading === RUN TestComprehensiveTranslations/it/made_with === RUN TestComprehensiveTranslations/it/making_sure_not_bot === RUN TestComprehensiveTranslations/it/mascot_design === RUN TestComprehensiveTranslations/it/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/it/oh_noes === RUN TestComprehensiveTranslations/it/protected_by === RUN TestComprehensiveTranslations/it/protected_from === RUN TestComprehensiveTranslations/it/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/it/redirect_not_parseable === RUN TestComprehensiveTranslations/it/script_load_error === RUN TestComprehensiveTranslations/it/see_dronebl_lookup === RUN TestComprehensiveTranslations/it/simplified_explanation === RUN TestComprehensiveTranslations/it/static_check_endpoint === RUN TestComprehensiveTranslations/it/time === RUN TestComprehensiveTranslations/it/time_a === RUN TestComprehensiveTranslations/it/time_b === RUN TestComprehensiveTranslations/it/try_again === RUN TestComprehensiveTranslations/it/version_info === RUN TestComprehensiveTranslations/it/why_am_i_seeing === RUN TestComprehensiveTranslations/it/you_are_not_a_bot === RUN TestComprehensiveTranslations/ja === RUN TestComprehensiveTranslations/ja/access_denied === RUN TestComprehensiveTranslations/ja/algorithm === RUN TestComprehensiveTranslations/ja/authorization_required === RUN TestComprehensiveTranslations/ja/benchmark_requires_js === RUN TestComprehensiveTranslations/ja/benchmarking_anubis === RUN TestComprehensiveTranslations/ja/celphase === RUN TestComprehensiveTranslations/ja/client_error_browser === RUN TestComprehensiveTranslations/ja/compare === RUN TestComprehensiveTranslations/ja/connection_security === RUN TestComprehensiveTranslations/ja/contact_webmaster === RUN TestComprehensiveTranslations/ja/cookies_disabled === RUN TestComprehensiveTranslations/ja/difficulty === RUN TestComprehensiveTranslations/ja/dronebl_entry === RUN TestComprehensiveTranslations/ja/failed_to_sign_jwt === RUN TestComprehensiveTranslations/ja/go_home === RUN TestComprehensiveTranslations/ja/internal_server_error === RUN TestComprehensiveTranslations/ja/invalid_invocation === RUN TestComprehensiveTranslations/ja/invalid_redirect === RUN TestComprehensiveTranslations/ja/iters === RUN TestComprehensiveTranslations/ja/iters_a === RUN TestComprehensiveTranslations/ja/iters_b === RUN TestComprehensiveTranslations/ja/javascript_required === RUN TestComprehensiveTranslations/ja/js_calculating === RUN TestComprehensiveTranslations/ja/js_calculating_difficulty === RUN TestComprehensiveTranslations/ja/js_calculation_error === RUN TestComprehensiveTranslations/ja/js_calculation_error_msg === RUN TestComprehensiveTranslations/ja/js_challenge_error === RUN TestComprehensiveTranslations/ja/js_challenge_error_msg === RUN TestComprehensiveTranslations/ja/js_context_not_secure === RUN TestComprehensiveTranslations/ja/js_context_not_secure_msg === RUN TestComprehensiveTranslations/ja/js_cookies_error === RUN TestComprehensiveTranslations/ja/js_done_took === RUN TestComprehensiveTranslations/ja/js_finished_reading === RUN TestComprehensiveTranslations/ja/js_iterations === RUN TestComprehensiveTranslations/ja/js_missing_feature === RUN TestComprehensiveTranslations/ja/js_speed === RUN TestComprehensiveTranslations/ja/js_success === RUN TestComprehensiveTranslations/ja/js_verification_longer === RUN TestComprehensiveTranslations/ja/js_web_crypto_error === RUN TestComprehensiveTranslations/ja/js_web_workers_error === RUN TestComprehensiveTranslations/ja/jshelter_note === RUN TestComprehensiveTranslations/ja/loading === RUN TestComprehensiveTranslations/ja/made_with === RUN TestComprehensiveTranslations/ja/making_sure_not_bot === RUN TestComprehensiveTranslations/ja/mascot_design === RUN TestComprehensiveTranslations/ja/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/ja/oh_noes === RUN TestComprehensiveTranslations/ja/protected_by === RUN TestComprehensiveTranslations/ja/protected_from === RUN TestComprehensiveTranslations/ja/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/ja/redirect_not_parseable === RUN TestComprehensiveTranslations/ja/script_load_error === RUN TestComprehensiveTranslations/ja/see_dronebl_lookup === RUN TestComprehensiveTranslations/ja/simplified_explanation === RUN TestComprehensiveTranslations/ja/static_check_endpoint === RUN TestComprehensiveTranslations/ja/time === RUN TestComprehensiveTranslations/ja/time_a === RUN TestComprehensiveTranslations/ja/time_b === RUN TestComprehensiveTranslations/ja/try_again === RUN TestComprehensiveTranslations/ja/version_info === RUN TestComprehensiveTranslations/ja/why_am_i_seeing === RUN TestComprehensiveTranslations/ja/you_are_not_a_bot === RUN TestComprehensiveTranslations/lt === RUN TestComprehensiveTranslations/lt/access_denied === RUN TestComprehensiveTranslations/lt/algorithm === RUN TestComprehensiveTranslations/lt/authorization_required === RUN TestComprehensiveTranslations/lt/benchmark_requires_js === RUN TestComprehensiveTranslations/lt/benchmarking_anubis === RUN TestComprehensiveTranslations/lt/celphase === RUN TestComprehensiveTranslations/lt/client_error_browser === RUN TestComprehensiveTranslations/lt/compare === RUN TestComprehensiveTranslations/lt/connection_security === RUN TestComprehensiveTranslations/lt/contact_webmaster === RUN TestComprehensiveTranslations/lt/cookies_disabled === RUN TestComprehensiveTranslations/lt/difficulty === RUN TestComprehensiveTranslations/lt/dronebl_entry === RUN TestComprehensiveTranslations/lt/failed_to_sign_jwt === RUN TestComprehensiveTranslations/lt/go_home === RUN TestComprehensiveTranslations/lt/internal_server_error === RUN TestComprehensiveTranslations/lt/invalid_invocation === RUN TestComprehensiveTranslations/lt/invalid_redirect === RUN TestComprehensiveTranslations/lt/iters === RUN TestComprehensiveTranslations/lt/iters_a === RUN TestComprehensiveTranslations/lt/iters_b === RUN TestComprehensiveTranslations/lt/javascript_required === RUN TestComprehensiveTranslations/lt/js_calculating === RUN TestComprehensiveTranslations/lt/js_calculating_difficulty === RUN TestComprehensiveTranslations/lt/js_calculation_error === RUN TestComprehensiveTranslations/lt/js_calculation_error_msg === RUN TestComprehensiveTranslations/lt/js_challenge_error === RUN TestComprehensiveTranslations/lt/js_challenge_error_msg === RUN TestComprehensiveTranslations/lt/js_context_not_secure === RUN TestComprehensiveTranslations/lt/js_context_not_secure_msg === RUN TestComprehensiveTranslations/lt/js_cookies_error === RUN TestComprehensiveTranslations/lt/js_done_took === RUN TestComprehensiveTranslations/lt/js_finished_reading === RUN TestComprehensiveTranslations/lt/js_iterations === RUN TestComprehensiveTranslations/lt/js_missing_feature === RUN TestComprehensiveTranslations/lt/js_speed === RUN TestComprehensiveTranslations/lt/js_success === RUN TestComprehensiveTranslations/lt/js_verification_longer === RUN TestComprehensiveTranslations/lt/js_web_crypto_error === RUN TestComprehensiveTranslations/lt/js_web_workers_error === RUN TestComprehensiveTranslations/lt/jshelter_note === RUN TestComprehensiveTranslations/lt/loading === RUN TestComprehensiveTranslations/lt/made_with === RUN TestComprehensiveTranslations/lt/making_sure_not_bot === RUN TestComprehensiveTranslations/lt/mascot_design === RUN TestComprehensiveTranslations/lt/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/lt/oh_noes === RUN TestComprehensiveTranslations/lt/protected_by === RUN TestComprehensiveTranslations/lt/protected_from === RUN TestComprehensiveTranslations/lt/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/lt/redirect_not_parseable === RUN TestComprehensiveTranslations/lt/script_load_error === RUN TestComprehensiveTranslations/lt/see_dronebl_lookup === RUN TestComprehensiveTranslations/lt/simplified_explanation === RUN TestComprehensiveTranslations/lt/static_check_endpoint === RUN TestComprehensiveTranslations/lt/time === RUN TestComprehensiveTranslations/lt/time_a === RUN TestComprehensiveTranslations/lt/time_b === RUN TestComprehensiveTranslations/lt/try_again === RUN TestComprehensiveTranslations/lt/version_info === RUN TestComprehensiveTranslations/lt/why_am_i_seeing === RUN TestComprehensiveTranslations/lt/you_are_not_a_bot === RUN TestComprehensiveTranslations/nb === RUN TestComprehensiveTranslations/nb/access_denied === RUN TestComprehensiveTranslations/nb/algorithm === RUN TestComprehensiveTranslations/nb/authorization_required === RUN TestComprehensiveTranslations/nb/benchmark_requires_js === RUN TestComprehensiveTranslations/nb/benchmarking_anubis === RUN TestComprehensiveTranslations/nb/celphase === RUN TestComprehensiveTranslations/nb/client_error_browser === RUN TestComprehensiveTranslations/nb/compare === RUN TestComprehensiveTranslations/nb/connection_security === RUN TestComprehensiveTranslations/nb/contact_webmaster === RUN TestComprehensiveTranslations/nb/cookies_disabled === RUN TestComprehensiveTranslations/nb/difficulty === RUN TestComprehensiveTranslations/nb/dronebl_entry === RUN TestComprehensiveTranslations/nb/failed_to_sign_jwt === RUN TestComprehensiveTranslations/nb/go_home === RUN TestComprehensiveTranslations/nb/internal_server_error === RUN TestComprehensiveTranslations/nb/invalid_invocation === RUN TestComprehensiveTranslations/nb/invalid_redirect === RUN TestComprehensiveTranslations/nb/iters === RUN TestComprehensiveTranslations/nb/iters_a === RUN TestComprehensiveTranslations/nb/iters_b === RUN TestComprehensiveTranslations/nb/javascript_required === RUN TestComprehensiveTranslations/nb/js_calculating === RUN TestComprehensiveTranslations/nb/js_calculating_difficulty === RUN TestComprehensiveTranslations/nb/js_calculation_error === RUN TestComprehensiveTranslations/nb/js_calculation_error_msg === RUN TestComprehensiveTranslations/nb/js_challenge_error === RUN TestComprehensiveTranslations/nb/js_challenge_error_msg === RUN TestComprehensiveTranslations/nb/js_context_not_secure === RUN TestComprehensiveTranslations/nb/js_context_not_secure_msg === RUN TestComprehensiveTranslations/nb/js_cookies_error === RUN TestComprehensiveTranslations/nb/js_done_took === RUN TestComprehensiveTranslations/nb/js_finished_reading === RUN TestComprehensiveTranslations/nb/js_iterations === RUN TestComprehensiveTranslations/nb/js_missing_feature === RUN TestComprehensiveTranslations/nb/js_speed === RUN TestComprehensiveTranslations/nb/js_success === RUN TestComprehensiveTranslations/nb/js_verification_longer === RUN TestComprehensiveTranslations/nb/js_web_crypto_error === RUN TestComprehensiveTranslations/nb/js_web_workers_error === RUN TestComprehensiveTranslations/nb/jshelter_note === RUN TestComprehensiveTranslations/nb/loading === RUN TestComprehensiveTranslations/nb/made_with === RUN TestComprehensiveTranslations/nb/making_sure_not_bot === RUN TestComprehensiveTranslations/nb/mascot_design === RUN TestComprehensiveTranslations/nb/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/nb/oh_noes === RUN TestComprehensiveTranslations/nb/protected_by === RUN TestComprehensiveTranslations/nb/protected_from === RUN TestComprehensiveTranslations/nb/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/nb/redirect_not_parseable === RUN TestComprehensiveTranslations/nb/script_load_error === RUN TestComprehensiveTranslations/nb/see_dronebl_lookup === RUN TestComprehensiveTranslations/nb/simplified_explanation === RUN TestComprehensiveTranslations/nb/static_check_endpoint === RUN TestComprehensiveTranslations/nb/time === RUN TestComprehensiveTranslations/nb/time_a === RUN TestComprehensiveTranslations/nb/time_b === RUN TestComprehensiveTranslations/nb/try_again === RUN TestComprehensiveTranslations/nb/version_info === RUN TestComprehensiveTranslations/nb/why_am_i_seeing === RUN TestComprehensiveTranslations/nb/you_are_not_a_bot === RUN TestComprehensiveTranslations/nl === RUN TestComprehensiveTranslations/nl/access_denied === RUN TestComprehensiveTranslations/nl/algorithm === RUN TestComprehensiveTranslations/nl/authorization_required === RUN TestComprehensiveTranslations/nl/benchmark_requires_js === RUN TestComprehensiveTranslations/nl/benchmarking_anubis === RUN TestComprehensiveTranslations/nl/celphase === RUN TestComprehensiveTranslations/nl/client_error_browser === RUN TestComprehensiveTranslations/nl/compare === RUN TestComprehensiveTranslations/nl/connection_security === RUN TestComprehensiveTranslations/nl/contact_webmaster === RUN TestComprehensiveTranslations/nl/cookies_disabled === RUN TestComprehensiveTranslations/nl/difficulty === RUN TestComprehensiveTranslations/nl/dronebl_entry === RUN TestComprehensiveTranslations/nl/failed_to_sign_jwt === RUN TestComprehensiveTranslations/nl/go_home === RUN TestComprehensiveTranslations/nl/internal_server_error === RUN TestComprehensiveTranslations/nl/invalid_invocation === RUN TestComprehensiveTranslations/nl/invalid_redirect === RUN TestComprehensiveTranslations/nl/iters === RUN TestComprehensiveTranslations/nl/iters_a === RUN TestComprehensiveTranslations/nl/iters_b === RUN TestComprehensiveTranslations/nl/javascript_required === RUN TestComprehensiveTranslations/nl/js_calculating === RUN TestComprehensiveTranslations/nl/js_calculating_difficulty === RUN TestComprehensiveTranslations/nl/js_calculation_error === RUN TestComprehensiveTranslations/nl/js_calculation_error_msg === RUN TestComprehensiveTranslations/nl/js_challenge_error === RUN TestComprehensiveTranslations/nl/js_challenge_error_msg === RUN TestComprehensiveTranslations/nl/js_context_not_secure === RUN TestComprehensiveTranslations/nl/js_context_not_secure_msg === RUN TestComprehensiveTranslations/nl/js_cookies_error === RUN TestComprehensiveTranslations/nl/js_done_took === RUN TestComprehensiveTranslations/nl/js_finished_reading === RUN TestComprehensiveTranslations/nl/js_iterations === RUN TestComprehensiveTranslations/nl/js_missing_feature === RUN TestComprehensiveTranslations/nl/js_speed === RUN TestComprehensiveTranslations/nl/js_success === RUN TestComprehensiveTranslations/nl/js_verification_longer === RUN TestComprehensiveTranslations/nl/js_web_crypto_error === RUN TestComprehensiveTranslations/nl/js_web_workers_error === RUN TestComprehensiveTranslations/nl/jshelter_note === RUN TestComprehensiveTranslations/nl/loading === RUN TestComprehensiveTranslations/nl/made_with === RUN TestComprehensiveTranslations/nl/making_sure_not_bot === RUN TestComprehensiveTranslations/nl/mascot_design === RUN TestComprehensiveTranslations/nl/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/nl/oh_noes === RUN TestComprehensiveTranslations/nl/protected_by === RUN TestComprehensiveTranslations/nl/protected_from === RUN TestComprehensiveTranslations/nl/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/nl/redirect_not_parseable === RUN TestComprehensiveTranslations/nl/script_load_error === RUN TestComprehensiveTranslations/nl/see_dronebl_lookup === RUN TestComprehensiveTranslations/nl/simplified_explanation === RUN TestComprehensiveTranslations/nl/static_check_endpoint === RUN TestComprehensiveTranslations/nl/time === RUN TestComprehensiveTranslations/nl/time_a === RUN TestComprehensiveTranslations/nl/time_b === RUN TestComprehensiveTranslations/nl/try_again === RUN TestComprehensiveTranslations/nl/version_info === RUN TestComprehensiveTranslations/nl/why_am_i_seeing === RUN TestComprehensiveTranslations/nl/you_are_not_a_bot === RUN TestComprehensiveTranslations/nn === RUN TestComprehensiveTranslations/nn/access_denied === RUN TestComprehensiveTranslations/nn/algorithm === RUN TestComprehensiveTranslations/nn/authorization_required === RUN TestComprehensiveTranslations/nn/benchmark_requires_js === RUN TestComprehensiveTranslations/nn/benchmarking_anubis === RUN TestComprehensiveTranslations/nn/celphase === RUN TestComprehensiveTranslations/nn/client_error_browser === RUN TestComprehensiveTranslations/nn/compare === RUN TestComprehensiveTranslations/nn/connection_security === RUN TestComprehensiveTranslations/nn/contact_webmaster === RUN TestComprehensiveTranslations/nn/cookies_disabled === RUN TestComprehensiveTranslations/nn/difficulty === RUN TestComprehensiveTranslations/nn/dronebl_entry === RUN TestComprehensiveTranslations/nn/failed_to_sign_jwt === RUN TestComprehensiveTranslations/nn/go_home === RUN TestComprehensiveTranslations/nn/internal_server_error === RUN TestComprehensiveTranslations/nn/invalid_invocation === RUN TestComprehensiveTranslations/nn/invalid_redirect === RUN TestComprehensiveTranslations/nn/iters === RUN TestComprehensiveTranslations/nn/iters_a === RUN TestComprehensiveTranslations/nn/iters_b === RUN TestComprehensiveTranslations/nn/javascript_required === RUN TestComprehensiveTranslations/nn/js_calculating === RUN TestComprehensiveTranslations/nn/js_calculating_difficulty === RUN TestComprehensiveTranslations/nn/js_calculation_error === RUN TestComprehensiveTranslations/nn/js_calculation_error_msg === RUN TestComprehensiveTranslations/nn/js_challenge_error === RUN TestComprehensiveTranslations/nn/js_challenge_error_msg === RUN TestComprehensiveTranslations/nn/js_context_not_secure === RUN TestComprehensiveTranslations/nn/js_context_not_secure_msg === RUN TestComprehensiveTranslations/nn/js_cookies_error === RUN TestComprehensiveTranslations/nn/js_done_took === RUN TestComprehensiveTranslations/nn/js_finished_reading === RUN TestComprehensiveTranslations/nn/js_iterations === RUN TestComprehensiveTranslations/nn/js_missing_feature === RUN TestComprehensiveTranslations/nn/js_speed === RUN TestComprehensiveTranslations/nn/js_success === RUN TestComprehensiveTranslations/nn/js_verification_longer === RUN TestComprehensiveTranslations/nn/js_web_crypto_error === RUN TestComprehensiveTranslations/nn/js_web_workers_error === RUN TestComprehensiveTranslations/nn/jshelter_note === RUN TestComprehensiveTranslations/nn/loading === RUN TestComprehensiveTranslations/nn/made_with === RUN TestComprehensiveTranslations/nn/making_sure_not_bot === RUN TestComprehensiveTranslations/nn/mascot_design === RUN TestComprehensiveTranslations/nn/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/nn/oh_noes === RUN TestComprehensiveTranslations/nn/protected_by === RUN TestComprehensiveTranslations/nn/protected_from === RUN TestComprehensiveTranslations/nn/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/nn/redirect_not_parseable === RUN TestComprehensiveTranslations/nn/script_load_error === RUN TestComprehensiveTranslations/nn/see_dronebl_lookup === RUN TestComprehensiveTranslations/nn/simplified_explanation === RUN TestComprehensiveTranslations/nn/static_check_endpoint === RUN TestComprehensiveTranslations/nn/time === RUN TestComprehensiveTranslations/nn/time_a === RUN TestComprehensiveTranslations/nn/time_b === RUN TestComprehensiveTranslations/nn/try_again === RUN TestComprehensiveTranslations/nn/version_info === RUN TestComprehensiveTranslations/nn/why_am_i_seeing === RUN TestComprehensiveTranslations/nn/you_are_not_a_bot === RUN TestComprehensiveTranslations/pl === RUN TestComprehensiveTranslations/pl/access_denied === RUN TestComprehensiveTranslations/pl/algorithm === RUN TestComprehensiveTranslations/pl/authorization_required === RUN TestComprehensiveTranslations/pl/benchmark_requires_js === RUN TestComprehensiveTranslations/pl/benchmarking_anubis === RUN TestComprehensiveTranslations/pl/celphase === RUN TestComprehensiveTranslations/pl/client_error_browser === RUN TestComprehensiveTranslations/pl/compare === RUN TestComprehensiveTranslations/pl/connection_security === RUN TestComprehensiveTranslations/pl/contact_webmaster === RUN TestComprehensiveTranslations/pl/cookies_disabled === RUN TestComprehensiveTranslations/pl/difficulty === RUN TestComprehensiveTranslations/pl/dronebl_entry === RUN TestComprehensiveTranslations/pl/failed_to_sign_jwt === RUN TestComprehensiveTranslations/pl/go_home === RUN TestComprehensiveTranslations/pl/internal_server_error === RUN TestComprehensiveTranslations/pl/invalid_invocation === RUN TestComprehensiveTranslations/pl/invalid_redirect === RUN TestComprehensiveTranslations/pl/iters === RUN TestComprehensiveTranslations/pl/iters_a === RUN TestComprehensiveTranslations/pl/iters_b === RUN TestComprehensiveTranslations/pl/javascript_required === RUN TestComprehensiveTranslations/pl/js_calculating === RUN TestComprehensiveTranslations/pl/js_calculating_difficulty === RUN TestComprehensiveTranslations/pl/js_calculation_error === RUN TestComprehensiveTranslations/pl/js_calculation_error_msg === RUN TestComprehensiveTranslations/pl/js_challenge_error === RUN TestComprehensiveTranslations/pl/js_challenge_error_msg === RUN TestComprehensiveTranslations/pl/js_context_not_secure === RUN TestComprehensiveTranslations/pl/js_context_not_secure_msg === RUN TestComprehensiveTranslations/pl/js_cookies_error === RUN TestComprehensiveTranslations/pl/js_done_took === RUN TestComprehensiveTranslations/pl/js_finished_reading === RUN TestComprehensiveTranslations/pl/js_iterations === RUN TestComprehensiveTranslations/pl/js_missing_feature === RUN TestComprehensiveTranslations/pl/js_speed === RUN TestComprehensiveTranslations/pl/js_success === RUN TestComprehensiveTranslations/pl/js_verification_longer === RUN TestComprehensiveTranslations/pl/js_web_crypto_error === RUN TestComprehensiveTranslations/pl/js_web_workers_error === RUN TestComprehensiveTranslations/pl/jshelter_note === RUN TestComprehensiveTranslations/pl/loading === RUN TestComprehensiveTranslations/pl/made_with === RUN TestComprehensiveTranslations/pl/making_sure_not_bot === RUN TestComprehensiveTranslations/pl/mascot_design === RUN TestComprehensiveTranslations/pl/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/pl/oh_noes === RUN TestComprehensiveTranslations/pl/protected_by === RUN TestComprehensiveTranslations/pl/protected_from === RUN TestComprehensiveTranslations/pl/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/pl/redirect_not_parseable === RUN TestComprehensiveTranslations/pl/script_load_error === RUN TestComprehensiveTranslations/pl/see_dronebl_lookup === RUN TestComprehensiveTranslations/pl/simplified_explanation === RUN TestComprehensiveTranslations/pl/static_check_endpoint === RUN TestComprehensiveTranslations/pl/time === RUN TestComprehensiveTranslations/pl/time_a === RUN TestComprehensiveTranslations/pl/time_b === RUN TestComprehensiveTranslations/pl/try_again === RUN TestComprehensiveTranslations/pl/version_info === RUN TestComprehensiveTranslations/pl/why_am_i_seeing === RUN TestComprehensiveTranslations/pl/you_are_not_a_bot === RUN TestComprehensiveTranslations/pt-BR === RUN TestComprehensiveTranslations/pt-BR/access_denied === RUN TestComprehensiveTranslations/pt-BR/algorithm === RUN TestComprehensiveTranslations/pt-BR/authorization_required === RUN TestComprehensiveTranslations/pt-BR/benchmark_requires_js === RUN TestComprehensiveTranslations/pt-BR/benchmarking_anubis === RUN TestComprehensiveTranslations/pt-BR/celphase === RUN TestComprehensiveTranslations/pt-BR/client_error_browser === RUN TestComprehensiveTranslations/pt-BR/compare === RUN TestComprehensiveTranslations/pt-BR/connection_security === RUN TestComprehensiveTranslations/pt-BR/contact_webmaster === RUN TestComprehensiveTranslations/pt-BR/cookies_disabled === RUN TestComprehensiveTranslations/pt-BR/difficulty === RUN TestComprehensiveTranslations/pt-BR/dronebl_entry === RUN TestComprehensiveTranslations/pt-BR/failed_to_sign_jwt === RUN TestComprehensiveTranslations/pt-BR/go_home === RUN TestComprehensiveTranslations/pt-BR/internal_server_error === RUN TestComprehensiveTranslations/pt-BR/invalid_invocation === RUN TestComprehensiveTranslations/pt-BR/invalid_redirect === RUN TestComprehensiveTranslations/pt-BR/iters === RUN TestComprehensiveTranslations/pt-BR/iters_a === RUN TestComprehensiveTranslations/pt-BR/iters_b === RUN TestComprehensiveTranslations/pt-BR/javascript_required === RUN TestComprehensiveTranslations/pt-BR/js_calculating === RUN TestComprehensiveTranslations/pt-BR/js_calculating_difficulty === RUN TestComprehensiveTranslations/pt-BR/js_calculation_error === RUN TestComprehensiveTranslations/pt-BR/js_calculation_error_msg === RUN TestComprehensiveTranslations/pt-BR/js_challenge_error === RUN TestComprehensiveTranslations/pt-BR/js_challenge_error_msg === RUN TestComprehensiveTranslations/pt-BR/js_context_not_secure === RUN TestComprehensiveTranslations/pt-BR/js_context_not_secure_msg === RUN TestComprehensiveTranslations/pt-BR/js_cookies_error === RUN TestComprehensiveTranslations/pt-BR/js_done_took === RUN TestComprehensiveTranslations/pt-BR/js_finished_reading === RUN TestComprehensiveTranslations/pt-BR/js_iterations === RUN TestComprehensiveTranslations/pt-BR/js_missing_feature === RUN TestComprehensiveTranslations/pt-BR/js_speed === RUN TestComprehensiveTranslations/pt-BR/js_success === RUN TestComprehensiveTranslations/pt-BR/js_verification_longer === RUN TestComprehensiveTranslations/pt-BR/js_web_crypto_error === RUN TestComprehensiveTranslations/pt-BR/js_web_workers_error === RUN TestComprehensiveTranslations/pt-BR/jshelter_note === RUN TestComprehensiveTranslations/pt-BR/loading === RUN TestComprehensiveTranslations/pt-BR/made_with === RUN TestComprehensiveTranslations/pt-BR/making_sure_not_bot === RUN TestComprehensiveTranslations/pt-BR/mascot_design === RUN TestComprehensiveTranslations/pt-BR/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/pt-BR/oh_noes === RUN TestComprehensiveTranslations/pt-BR/protected_by === RUN TestComprehensiveTranslations/pt-BR/protected_from === RUN TestComprehensiveTranslations/pt-BR/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/pt-BR/redirect_not_parseable === RUN TestComprehensiveTranslations/pt-BR/script_load_error === RUN TestComprehensiveTranslations/pt-BR/see_dronebl_lookup === RUN TestComprehensiveTranslations/pt-BR/simplified_explanation === RUN TestComprehensiveTranslations/pt-BR/static_check_endpoint === RUN TestComprehensiveTranslations/pt-BR/time === RUN TestComprehensiveTranslations/pt-BR/time_a === RUN TestComprehensiveTranslations/pt-BR/time_b === RUN TestComprehensiveTranslations/pt-BR/try_again === RUN TestComprehensiveTranslations/pt-BR/version_info === RUN TestComprehensiveTranslations/pt-BR/why_am_i_seeing === RUN TestComprehensiveTranslations/pt-BR/you_are_not_a_bot === RUN TestComprehensiveTranslations/pt-PT === RUN TestComprehensiveTranslations/pt-PT/access_denied === RUN TestComprehensiveTranslations/pt-PT/algorithm === RUN TestComprehensiveTranslations/pt-PT/authorization_required === RUN TestComprehensiveTranslations/pt-PT/benchmark_requires_js === RUN TestComprehensiveTranslations/pt-PT/benchmarking_anubis === RUN TestComprehensiveTranslations/pt-PT/celphase === RUN TestComprehensiveTranslations/pt-PT/client_error_browser === RUN TestComprehensiveTranslations/pt-PT/compare === RUN TestComprehensiveTranslations/pt-PT/connection_security === RUN TestComprehensiveTranslations/pt-PT/contact_webmaster === RUN TestComprehensiveTranslations/pt-PT/cookies_disabled === RUN TestComprehensiveTranslations/pt-PT/difficulty === RUN TestComprehensiveTranslations/pt-PT/dronebl_entry === RUN TestComprehensiveTranslations/pt-PT/failed_to_sign_jwt === RUN TestComprehensiveTranslations/pt-PT/go_home === RUN TestComprehensiveTranslations/pt-PT/internal_server_error === RUN TestComprehensiveTranslations/pt-PT/invalid_invocation === RUN TestComprehensiveTranslations/pt-PT/invalid_redirect === RUN TestComprehensiveTranslations/pt-PT/iters === RUN TestComprehensiveTranslations/pt-PT/iters_a === RUN TestComprehensiveTranslations/pt-PT/iters_b === RUN TestComprehensiveTranslations/pt-PT/javascript_required === RUN TestComprehensiveTranslations/pt-PT/js_calculating === RUN TestComprehensiveTranslations/pt-PT/js_calculating_difficulty === RUN TestComprehensiveTranslations/pt-PT/js_calculation_error === RUN TestComprehensiveTranslations/pt-PT/js_calculation_error_msg === RUN TestComprehensiveTranslations/pt-PT/js_challenge_error === RUN TestComprehensiveTranslations/pt-PT/js_challenge_error_msg === RUN TestComprehensiveTranslations/pt-PT/js_context_not_secure === RUN TestComprehensiveTranslations/pt-PT/js_context_not_secure_msg === RUN TestComprehensiveTranslations/pt-PT/js_cookies_error === RUN TestComprehensiveTranslations/pt-PT/js_done_took === RUN TestComprehensiveTranslations/pt-PT/js_finished_reading === RUN TestComprehensiveTranslations/pt-PT/js_iterations === RUN TestComprehensiveTranslations/pt-PT/js_missing_feature === RUN TestComprehensiveTranslations/pt-PT/js_speed === RUN TestComprehensiveTranslations/pt-PT/js_success === RUN TestComprehensiveTranslations/pt-PT/js_verification_longer === RUN TestComprehensiveTranslations/pt-PT/js_web_crypto_error === RUN TestComprehensiveTranslations/pt-PT/js_web_workers_error === RUN TestComprehensiveTranslations/pt-PT/jshelter_note === RUN TestComprehensiveTranslations/pt-PT/loading === RUN TestComprehensiveTranslations/pt-PT/made_with === RUN TestComprehensiveTranslations/pt-PT/making_sure_not_bot === RUN TestComprehensiveTranslations/pt-PT/mascot_design === RUN TestComprehensiveTranslations/pt-PT/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/pt-PT/oh_noes === RUN TestComprehensiveTranslations/pt-PT/protected_by === RUN TestComprehensiveTranslations/pt-PT/protected_from === RUN TestComprehensiveTranslations/pt-PT/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/pt-PT/redirect_not_parseable === RUN TestComprehensiveTranslations/pt-PT/script_load_error === RUN TestComprehensiveTranslations/pt-PT/see_dronebl_lookup === RUN TestComprehensiveTranslations/pt-PT/simplified_explanation === RUN TestComprehensiveTranslations/pt-PT/static_check_endpoint === RUN TestComprehensiveTranslations/pt-PT/time === RUN TestComprehensiveTranslations/pt-PT/time_a === RUN TestComprehensiveTranslations/pt-PT/time_b === RUN TestComprehensiveTranslations/pt-PT/try_again === RUN TestComprehensiveTranslations/pt-PT/version_info === RUN TestComprehensiveTranslations/pt-PT/why_am_i_seeing === RUN TestComprehensiveTranslations/pt-PT/you_are_not_a_bot === RUN TestComprehensiveTranslations/ru === RUN TestComprehensiveTranslations/ru/access_denied === RUN TestComprehensiveTranslations/ru/algorithm === RUN TestComprehensiveTranslations/ru/authorization_required === RUN TestComprehensiveTranslations/ru/benchmark_requires_js === RUN TestComprehensiveTranslations/ru/benchmarking_anubis === RUN TestComprehensiveTranslations/ru/celphase === RUN TestComprehensiveTranslations/ru/client_error_browser === RUN TestComprehensiveTranslations/ru/compare === RUN TestComprehensiveTranslations/ru/connection_security === RUN TestComprehensiveTranslations/ru/contact_webmaster === RUN TestComprehensiveTranslations/ru/cookies_disabled === RUN TestComprehensiveTranslations/ru/difficulty === RUN TestComprehensiveTranslations/ru/dronebl_entry === RUN TestComprehensiveTranslations/ru/failed_to_sign_jwt === RUN TestComprehensiveTranslations/ru/go_home === RUN TestComprehensiveTranslations/ru/internal_server_error === RUN TestComprehensiveTranslations/ru/invalid_invocation === RUN TestComprehensiveTranslations/ru/invalid_redirect === RUN TestComprehensiveTranslations/ru/iters === RUN TestComprehensiveTranslations/ru/iters_a === RUN TestComprehensiveTranslations/ru/iters_b === RUN TestComprehensiveTranslations/ru/javascript_required === RUN TestComprehensiveTranslations/ru/js_calculating === RUN TestComprehensiveTranslations/ru/js_calculating_difficulty === RUN TestComprehensiveTranslations/ru/js_calculation_error === RUN TestComprehensiveTranslations/ru/js_calculation_error_msg === RUN TestComprehensiveTranslations/ru/js_challenge_error === RUN TestComprehensiveTranslations/ru/js_challenge_error_msg === RUN TestComprehensiveTranslations/ru/js_context_not_secure === RUN TestComprehensiveTranslations/ru/js_context_not_secure_msg === RUN TestComprehensiveTranslations/ru/js_cookies_error === RUN TestComprehensiveTranslations/ru/js_done_took === RUN TestComprehensiveTranslations/ru/js_finished_reading === RUN TestComprehensiveTranslations/ru/js_iterations === RUN TestComprehensiveTranslations/ru/js_missing_feature === RUN TestComprehensiveTranslations/ru/js_speed === RUN TestComprehensiveTranslations/ru/js_success === RUN TestComprehensiveTranslations/ru/js_verification_longer === RUN TestComprehensiveTranslations/ru/js_web_crypto_error === RUN TestComprehensiveTranslations/ru/js_web_workers_error === RUN TestComprehensiveTranslations/ru/jshelter_note === RUN TestComprehensiveTranslations/ru/loading === RUN TestComprehensiveTranslations/ru/made_with === RUN TestComprehensiveTranslations/ru/making_sure_not_bot === RUN TestComprehensiveTranslations/ru/mascot_design === RUN TestComprehensiveTranslations/ru/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/ru/oh_noes === RUN TestComprehensiveTranslations/ru/protected_by === RUN TestComprehensiveTranslations/ru/protected_from === RUN TestComprehensiveTranslations/ru/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/ru/redirect_not_parseable === RUN TestComprehensiveTranslations/ru/script_load_error === RUN TestComprehensiveTranslations/ru/see_dronebl_lookup === RUN TestComprehensiveTranslations/ru/simplified_explanation === RUN TestComprehensiveTranslations/ru/static_check_endpoint === RUN TestComprehensiveTranslations/ru/time === RUN TestComprehensiveTranslations/ru/time_a === RUN TestComprehensiveTranslations/ru/time_b === RUN TestComprehensiveTranslations/ru/try_again === RUN TestComprehensiveTranslations/ru/version_info === RUN TestComprehensiveTranslations/ru/why_am_i_seeing === RUN TestComprehensiveTranslations/ru/you_are_not_a_bot === RUN TestComprehensiveTranslations/tr === RUN TestComprehensiveTranslations/tr/access_denied === RUN TestComprehensiveTranslations/tr/algorithm === RUN TestComprehensiveTranslations/tr/authorization_required === RUN TestComprehensiveTranslations/tr/benchmark_requires_js === RUN TestComprehensiveTranslations/tr/benchmarking_anubis === RUN TestComprehensiveTranslations/tr/celphase === RUN TestComprehensiveTranslations/tr/client_error_browser === RUN TestComprehensiveTranslations/tr/compare === RUN TestComprehensiveTranslations/tr/connection_security === RUN TestComprehensiveTranslations/tr/contact_webmaster === RUN TestComprehensiveTranslations/tr/cookies_disabled === RUN TestComprehensiveTranslations/tr/difficulty === RUN TestComprehensiveTranslations/tr/dronebl_entry === RUN TestComprehensiveTranslations/tr/failed_to_sign_jwt === RUN TestComprehensiveTranslations/tr/go_home === RUN TestComprehensiveTranslations/tr/internal_server_error === RUN TestComprehensiveTranslations/tr/invalid_invocation === RUN TestComprehensiveTranslations/tr/invalid_redirect === RUN TestComprehensiveTranslations/tr/iters === RUN TestComprehensiveTranslations/tr/iters_a === RUN TestComprehensiveTranslations/tr/iters_b === RUN TestComprehensiveTranslations/tr/javascript_required === RUN TestComprehensiveTranslations/tr/js_calculating === RUN TestComprehensiveTranslations/tr/js_calculating_difficulty === RUN TestComprehensiveTranslations/tr/js_calculation_error === RUN TestComprehensiveTranslations/tr/js_calculation_error_msg === RUN TestComprehensiveTranslations/tr/js_challenge_error === RUN TestComprehensiveTranslations/tr/js_challenge_error_msg === RUN TestComprehensiveTranslations/tr/js_context_not_secure === RUN TestComprehensiveTranslations/tr/js_context_not_secure_msg === RUN TestComprehensiveTranslations/tr/js_cookies_error === RUN TestComprehensiveTranslations/tr/js_done_took === RUN TestComprehensiveTranslations/tr/js_finished_reading === RUN TestComprehensiveTranslations/tr/js_iterations === RUN TestComprehensiveTranslations/tr/js_missing_feature === RUN TestComprehensiveTranslations/tr/js_speed === RUN TestComprehensiveTranslations/tr/js_success === RUN TestComprehensiveTranslations/tr/js_verification_longer === RUN TestComprehensiveTranslations/tr/js_web_crypto_error === RUN TestComprehensiveTranslations/tr/js_web_workers_error === RUN TestComprehensiveTranslations/tr/jshelter_note === RUN TestComprehensiveTranslations/tr/loading === RUN TestComprehensiveTranslations/tr/made_with === RUN TestComprehensiveTranslations/tr/making_sure_not_bot === RUN TestComprehensiveTranslations/tr/mascot_design === RUN TestComprehensiveTranslations/tr/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/tr/oh_noes === RUN TestComprehensiveTranslations/tr/protected_by === RUN TestComprehensiveTranslations/tr/protected_from === RUN TestComprehensiveTranslations/tr/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/tr/redirect_not_parseable === RUN TestComprehensiveTranslations/tr/script_load_error === RUN TestComprehensiveTranslations/tr/see_dronebl_lookup === RUN TestComprehensiveTranslations/tr/simplified_explanation === RUN TestComprehensiveTranslations/tr/static_check_endpoint === RUN TestComprehensiveTranslations/tr/time === RUN TestComprehensiveTranslations/tr/time_a === RUN TestComprehensiveTranslations/tr/time_b === RUN TestComprehensiveTranslations/tr/try_again === RUN TestComprehensiveTranslations/tr/version_info === RUN TestComprehensiveTranslations/tr/why_am_i_seeing === RUN TestComprehensiveTranslations/tr/you_are_not_a_bot === RUN TestComprehensiveTranslations/uk === RUN TestComprehensiveTranslations/uk/access_denied === RUN TestComprehensiveTranslations/uk/algorithm === RUN TestComprehensiveTranslations/uk/authorization_required === RUN TestComprehensiveTranslations/uk/benchmark_requires_js === RUN TestComprehensiveTranslations/uk/benchmarking_anubis === RUN TestComprehensiveTranslations/uk/celphase === RUN TestComprehensiveTranslations/uk/client_error_browser === RUN TestComprehensiveTranslations/uk/compare === RUN TestComprehensiveTranslations/uk/connection_security === RUN TestComprehensiveTranslations/uk/contact_webmaster === RUN TestComprehensiveTranslations/uk/cookies_disabled === RUN TestComprehensiveTranslations/uk/difficulty === RUN TestComprehensiveTranslations/uk/dronebl_entry === RUN TestComprehensiveTranslations/uk/failed_to_sign_jwt === RUN TestComprehensiveTranslations/uk/go_home === RUN TestComprehensiveTranslations/uk/internal_server_error === RUN TestComprehensiveTranslations/uk/invalid_invocation === RUN TestComprehensiveTranslations/uk/invalid_redirect === RUN TestComprehensiveTranslations/uk/iters === RUN TestComprehensiveTranslations/uk/iters_a === RUN TestComprehensiveTranslations/uk/iters_b === RUN TestComprehensiveTranslations/uk/javascript_required === RUN TestComprehensiveTranslations/uk/js_calculating === RUN TestComprehensiveTranslations/uk/js_calculating_difficulty === RUN TestComprehensiveTranslations/uk/js_calculation_error === RUN TestComprehensiveTranslations/uk/js_calculation_error_msg === RUN TestComprehensiveTranslations/uk/js_challenge_error === RUN TestComprehensiveTranslations/uk/js_challenge_error_msg === RUN TestComprehensiveTranslations/uk/js_context_not_secure === RUN TestComprehensiveTranslations/uk/js_context_not_secure_msg === RUN TestComprehensiveTranslations/uk/js_cookies_error === RUN TestComprehensiveTranslations/uk/js_done_took === RUN TestComprehensiveTranslations/uk/js_finished_reading === RUN TestComprehensiveTranslations/uk/js_iterations === RUN TestComprehensiveTranslations/uk/js_missing_feature === RUN TestComprehensiveTranslations/uk/js_speed === RUN TestComprehensiveTranslations/uk/js_success === RUN TestComprehensiveTranslations/uk/js_verification_longer === RUN TestComprehensiveTranslations/uk/js_web_crypto_error === RUN TestComprehensiveTranslations/uk/js_web_workers_error === RUN TestComprehensiveTranslations/uk/jshelter_note === RUN TestComprehensiveTranslations/uk/loading === RUN TestComprehensiveTranslations/uk/made_with === RUN TestComprehensiveTranslations/uk/making_sure_not_bot === RUN TestComprehensiveTranslations/uk/mascot_design === RUN TestComprehensiveTranslations/uk/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/uk/oh_noes === RUN TestComprehensiveTranslations/uk/protected_by === RUN TestComprehensiveTranslations/uk/protected_from === RUN TestComprehensiveTranslations/uk/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/uk/redirect_not_parseable === RUN TestComprehensiveTranslations/uk/script_load_error === RUN TestComprehensiveTranslations/uk/see_dronebl_lookup === RUN TestComprehensiveTranslations/uk/simplified_explanation === RUN TestComprehensiveTranslations/uk/static_check_endpoint === RUN TestComprehensiveTranslations/uk/time === RUN TestComprehensiveTranslations/uk/time_a === RUN TestComprehensiveTranslations/uk/time_b === RUN TestComprehensiveTranslations/uk/try_again === RUN TestComprehensiveTranslations/uk/version_info === RUN TestComprehensiveTranslations/uk/why_am_i_seeing === RUN TestComprehensiveTranslations/uk/you_are_not_a_bot === RUN TestComprehensiveTranslations/vi === RUN TestComprehensiveTranslations/vi/access_denied === RUN TestComprehensiveTranslations/vi/algorithm === RUN TestComprehensiveTranslations/vi/authorization_required === RUN TestComprehensiveTranslations/vi/benchmark_requires_js === RUN TestComprehensiveTranslations/vi/benchmarking_anubis === RUN TestComprehensiveTranslations/vi/celphase === RUN TestComprehensiveTranslations/vi/client_error_browser === RUN TestComprehensiveTranslations/vi/compare === RUN TestComprehensiveTranslations/vi/connection_security === RUN TestComprehensiveTranslations/vi/contact_webmaster === RUN TestComprehensiveTranslations/vi/cookies_disabled === RUN TestComprehensiveTranslations/vi/difficulty === RUN TestComprehensiveTranslations/vi/dronebl_entry === RUN TestComprehensiveTranslations/vi/failed_to_sign_jwt === RUN TestComprehensiveTranslations/vi/go_home === RUN TestComprehensiveTranslations/vi/internal_server_error === RUN TestComprehensiveTranslations/vi/invalid_invocation === RUN TestComprehensiveTranslations/vi/invalid_redirect === RUN TestComprehensiveTranslations/vi/iters === RUN TestComprehensiveTranslations/vi/iters_a === RUN TestComprehensiveTranslations/vi/iters_b === RUN TestComprehensiveTranslations/vi/javascript_required === RUN TestComprehensiveTranslations/vi/js_calculating === RUN TestComprehensiveTranslations/vi/js_calculating_difficulty === RUN TestComprehensiveTranslations/vi/js_calculation_error === RUN TestComprehensiveTranslations/vi/js_calculation_error_msg === RUN TestComprehensiveTranslations/vi/js_challenge_error === RUN TestComprehensiveTranslations/vi/js_challenge_error_msg === RUN TestComprehensiveTranslations/vi/js_context_not_secure === RUN TestComprehensiveTranslations/vi/js_context_not_secure_msg === RUN TestComprehensiveTranslations/vi/js_cookies_error === RUN TestComprehensiveTranslations/vi/js_done_took === RUN TestComprehensiveTranslations/vi/js_finished_reading === RUN TestComprehensiveTranslations/vi/js_iterations === RUN TestComprehensiveTranslations/vi/js_missing_feature === RUN TestComprehensiveTranslations/vi/js_speed === RUN TestComprehensiveTranslations/vi/js_success === RUN TestComprehensiveTranslations/vi/js_verification_longer === RUN TestComprehensiveTranslations/vi/js_web_crypto_error === RUN TestComprehensiveTranslations/vi/js_web_workers_error === RUN TestComprehensiveTranslations/vi/jshelter_note === RUN TestComprehensiveTranslations/vi/loading === RUN TestComprehensiveTranslations/vi/made_with === RUN TestComprehensiveTranslations/vi/making_sure_not_bot === RUN TestComprehensiveTranslations/vi/mascot_design === RUN TestComprehensiveTranslations/vi/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/vi/oh_noes === RUN TestComprehensiveTranslations/vi/protected_by === RUN TestComprehensiveTranslations/vi/protected_from === RUN TestComprehensiveTranslations/vi/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/vi/redirect_not_parseable === RUN TestComprehensiveTranslations/vi/script_load_error === RUN TestComprehensiveTranslations/vi/see_dronebl_lookup === RUN TestComprehensiveTranslations/vi/simplified_explanation === RUN TestComprehensiveTranslations/vi/static_check_endpoint === RUN TestComprehensiveTranslations/vi/time === RUN TestComprehensiveTranslations/vi/time_a === RUN TestComprehensiveTranslations/vi/time_b === RUN TestComprehensiveTranslations/vi/try_again === RUN TestComprehensiveTranslations/vi/version_info === RUN TestComprehensiveTranslations/vi/why_am_i_seeing === RUN TestComprehensiveTranslations/vi/you_are_not_a_bot === RUN TestComprehensiveTranslations/zh-CN === RUN TestComprehensiveTranslations/zh-CN/access_denied === RUN TestComprehensiveTranslations/zh-CN/algorithm === RUN TestComprehensiveTranslations/zh-CN/authorization_required === RUN TestComprehensiveTranslations/zh-CN/benchmark_requires_js === RUN TestComprehensiveTranslations/zh-CN/benchmarking_anubis === RUN TestComprehensiveTranslations/zh-CN/celphase === RUN TestComprehensiveTranslations/zh-CN/client_error_browser === RUN TestComprehensiveTranslations/zh-CN/compare === RUN TestComprehensiveTranslations/zh-CN/connection_security === RUN TestComprehensiveTranslations/zh-CN/contact_webmaster === RUN TestComprehensiveTranslations/zh-CN/cookies_disabled === RUN TestComprehensiveTranslations/zh-CN/difficulty === RUN TestComprehensiveTranslations/zh-CN/dronebl_entry === RUN TestComprehensiveTranslations/zh-CN/failed_to_sign_jwt === RUN TestComprehensiveTranslations/zh-CN/go_home === RUN TestComprehensiveTranslations/zh-CN/internal_server_error === RUN TestComprehensiveTranslations/zh-CN/invalid_invocation === RUN TestComprehensiveTranslations/zh-CN/invalid_redirect === RUN TestComprehensiveTranslations/zh-CN/iters === RUN TestComprehensiveTranslations/zh-CN/iters_a === RUN TestComprehensiveTranslations/zh-CN/iters_b === RUN TestComprehensiveTranslations/zh-CN/javascript_required === RUN TestComprehensiveTranslations/zh-CN/js_calculating === RUN TestComprehensiveTranslations/zh-CN/js_calculating_difficulty === RUN TestComprehensiveTranslations/zh-CN/js_calculation_error === RUN TestComprehensiveTranslations/zh-CN/js_calculation_error_msg === RUN TestComprehensiveTranslations/zh-CN/js_challenge_error === RUN TestComprehensiveTranslations/zh-CN/js_challenge_error_msg === RUN TestComprehensiveTranslations/zh-CN/js_context_not_secure === RUN TestComprehensiveTranslations/zh-CN/js_context_not_secure_msg === RUN TestComprehensiveTranslations/zh-CN/js_cookies_error === RUN TestComprehensiveTranslations/zh-CN/js_done_took === RUN TestComprehensiveTranslations/zh-CN/js_finished_reading === RUN TestComprehensiveTranslations/zh-CN/js_iterations === RUN TestComprehensiveTranslations/zh-CN/js_missing_feature === RUN TestComprehensiveTranslations/zh-CN/js_speed === RUN TestComprehensiveTranslations/zh-CN/js_success === RUN TestComprehensiveTranslations/zh-CN/js_verification_longer === RUN TestComprehensiveTranslations/zh-CN/js_web_crypto_error === RUN TestComprehensiveTranslations/zh-CN/js_web_workers_error === RUN TestComprehensiveTranslations/zh-CN/jshelter_note === RUN TestComprehensiveTranslations/zh-CN/loading === RUN TestComprehensiveTranslations/zh-CN/made_with === RUN TestComprehensiveTranslations/zh-CN/making_sure_not_bot === RUN TestComprehensiveTranslations/zh-CN/mascot_design === RUN TestComprehensiveTranslations/zh-CN/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/zh-CN/oh_noes === RUN TestComprehensiveTranslations/zh-CN/protected_by === RUN TestComprehensiveTranslations/zh-CN/protected_from === RUN TestComprehensiveTranslations/zh-CN/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/zh-CN/redirect_not_parseable === RUN TestComprehensiveTranslations/zh-CN/script_load_error === RUN TestComprehensiveTranslations/zh-CN/see_dronebl_lookup === RUN TestComprehensiveTranslations/zh-CN/simplified_explanation === RUN TestComprehensiveTranslations/zh-CN/static_check_endpoint === RUN TestComprehensiveTranslations/zh-CN/time === RUN TestComprehensiveTranslations/zh-CN/time_a === RUN TestComprehensiveTranslations/zh-CN/time_b === RUN TestComprehensiveTranslations/zh-CN/try_again === RUN TestComprehensiveTranslations/zh-CN/version_info === RUN TestComprehensiveTranslations/zh-CN/why_am_i_seeing === RUN TestComprehensiveTranslations/zh-CN/you_are_not_a_bot === RUN TestComprehensiveTranslations/zh-TW === RUN TestComprehensiveTranslations/zh-TW/access_denied === RUN TestComprehensiveTranslations/zh-TW/algorithm === RUN TestComprehensiveTranslations/zh-TW/authorization_required === RUN TestComprehensiveTranslations/zh-TW/benchmark_requires_js === RUN TestComprehensiveTranslations/zh-TW/benchmarking_anubis === RUN TestComprehensiveTranslations/zh-TW/celphase === RUN TestComprehensiveTranslations/zh-TW/client_error_browser === RUN TestComprehensiveTranslations/zh-TW/compare === RUN TestComprehensiveTranslations/zh-TW/connection_security === RUN TestComprehensiveTranslations/zh-TW/contact_webmaster === RUN TestComprehensiveTranslations/zh-TW/cookies_disabled === RUN TestComprehensiveTranslations/zh-TW/difficulty === RUN TestComprehensiveTranslations/zh-TW/dronebl_entry === RUN TestComprehensiveTranslations/zh-TW/failed_to_sign_jwt === RUN TestComprehensiveTranslations/zh-TW/go_home === RUN TestComprehensiveTranslations/zh-TW/internal_server_error === RUN TestComprehensiveTranslations/zh-TW/invalid_invocation === RUN TestComprehensiveTranslations/zh-TW/invalid_redirect === RUN TestComprehensiveTranslations/zh-TW/iters === RUN TestComprehensiveTranslations/zh-TW/iters_a === RUN TestComprehensiveTranslations/zh-TW/iters_b === RUN TestComprehensiveTranslations/zh-TW/javascript_required === RUN TestComprehensiveTranslations/zh-TW/js_calculating === RUN TestComprehensiveTranslations/zh-TW/js_calculating_difficulty === RUN TestComprehensiveTranslations/zh-TW/js_calculation_error === RUN TestComprehensiveTranslations/zh-TW/js_calculation_error_msg === RUN TestComprehensiveTranslations/zh-TW/js_challenge_error === RUN TestComprehensiveTranslations/zh-TW/js_challenge_error_msg === RUN TestComprehensiveTranslations/zh-TW/js_context_not_secure === RUN TestComprehensiveTranslations/zh-TW/js_context_not_secure_msg === RUN TestComprehensiveTranslations/zh-TW/js_cookies_error === RUN TestComprehensiveTranslations/zh-TW/js_done_took === RUN TestComprehensiveTranslations/zh-TW/js_finished_reading === RUN TestComprehensiveTranslations/zh-TW/js_iterations === RUN TestComprehensiveTranslations/zh-TW/js_missing_feature === RUN TestComprehensiveTranslations/zh-TW/js_speed === RUN TestComprehensiveTranslations/zh-TW/js_success === RUN TestComprehensiveTranslations/zh-TW/js_verification_longer === RUN TestComprehensiveTranslations/zh-TW/js_web_crypto_error === RUN TestComprehensiveTranslations/zh-TW/js_web_workers_error === RUN TestComprehensiveTranslations/zh-TW/jshelter_note === RUN TestComprehensiveTranslations/zh-TW/loading === RUN TestComprehensiveTranslations/zh-TW/made_with === RUN TestComprehensiveTranslations/zh-TW/making_sure_not_bot === RUN TestComprehensiveTranslations/zh-TW/mascot_design === RUN TestComprehensiveTranslations/zh-TW/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/zh-TW/oh_noes === RUN TestComprehensiveTranslations/zh-TW/protected_by === RUN TestComprehensiveTranslations/zh-TW/protected_from === RUN TestComprehensiveTranslations/zh-TW/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/zh-TW/redirect_not_parseable === RUN TestComprehensiveTranslations/zh-TW/script_load_error === RUN TestComprehensiveTranslations/zh-TW/see_dronebl_lookup === RUN TestComprehensiveTranslations/zh-TW/simplified_explanation === RUN TestComprehensiveTranslations/zh-TW/static_check_endpoint === RUN TestComprehensiveTranslations/zh-TW/time === RUN TestComprehensiveTranslations/zh-TW/time_a === RUN TestComprehensiveTranslations/zh-TW/time_b === RUN TestComprehensiveTranslations/zh-TW/try_again === RUN TestComprehensiveTranslations/zh-TW/version_info === RUN TestComprehensiveTranslations/zh-TW/why_am_i_seeing === RUN TestComprehensiveTranslations/zh-TW/you_are_not_a_bot === RUN TestComprehensiveTranslations/sv === RUN TestComprehensiveTranslations/sv/access_denied === RUN TestComprehensiveTranslations/sv/algorithm === RUN TestComprehensiveTranslations/sv/authorization_required === RUN TestComprehensiveTranslations/sv/benchmark_requires_js === RUN TestComprehensiveTranslations/sv/benchmarking_anubis === RUN TestComprehensiveTranslations/sv/celphase === RUN TestComprehensiveTranslations/sv/client_error_browser === RUN TestComprehensiveTranslations/sv/compare === RUN TestComprehensiveTranslations/sv/connection_security === RUN TestComprehensiveTranslations/sv/contact_webmaster === RUN TestComprehensiveTranslations/sv/cookies_disabled === RUN TestComprehensiveTranslations/sv/difficulty === RUN TestComprehensiveTranslations/sv/dronebl_entry === RUN TestComprehensiveTranslations/sv/failed_to_sign_jwt === RUN TestComprehensiveTranslations/sv/go_home === RUN TestComprehensiveTranslations/sv/internal_server_error === RUN TestComprehensiveTranslations/sv/invalid_invocation === RUN TestComprehensiveTranslations/sv/invalid_redirect === RUN TestComprehensiveTranslations/sv/iters === RUN TestComprehensiveTranslations/sv/iters_a === RUN TestComprehensiveTranslations/sv/iters_b === RUN TestComprehensiveTranslations/sv/javascript_required === RUN TestComprehensiveTranslations/sv/js_calculating === RUN TestComprehensiveTranslations/sv/js_calculating_difficulty === RUN TestComprehensiveTranslations/sv/js_calculation_error === RUN TestComprehensiveTranslations/sv/js_calculation_error_msg === RUN TestComprehensiveTranslations/sv/js_challenge_error === RUN TestComprehensiveTranslations/sv/js_challenge_error_msg === RUN TestComprehensiveTranslations/sv/js_context_not_secure === RUN TestComprehensiveTranslations/sv/js_context_not_secure_msg === RUN TestComprehensiveTranslations/sv/js_cookies_error === RUN TestComprehensiveTranslations/sv/js_done_took === RUN TestComprehensiveTranslations/sv/js_finished_reading === RUN TestComprehensiveTranslations/sv/js_iterations === RUN TestComprehensiveTranslations/sv/js_missing_feature === RUN TestComprehensiveTranslations/sv/js_speed === RUN TestComprehensiveTranslations/sv/js_success === RUN TestComprehensiveTranslations/sv/js_verification_longer === RUN TestComprehensiveTranslations/sv/js_web_crypto_error === RUN TestComprehensiveTranslations/sv/js_web_workers_error === RUN TestComprehensiveTranslations/sv/jshelter_note === RUN TestComprehensiveTranslations/sv/loading === RUN TestComprehensiveTranslations/sv/made_with === RUN TestComprehensiveTranslations/sv/making_sure_not_bot === RUN TestComprehensiveTranslations/sv/mascot_design === RUN TestComprehensiveTranslations/sv/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/sv/oh_noes === RUN TestComprehensiveTranslations/sv/protected_by === RUN TestComprehensiveTranslations/sv/protected_from === RUN TestComprehensiveTranslations/sv/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/sv/redirect_not_parseable === RUN TestComprehensiveTranslations/sv/script_load_error === RUN TestComprehensiveTranslations/sv/see_dronebl_lookup === RUN TestComprehensiveTranslations/sv/simplified_explanation === RUN TestComprehensiveTranslations/sv/static_check_endpoint === RUN TestComprehensiveTranslations/sv/time === RUN TestComprehensiveTranslations/sv/time_a === RUN TestComprehensiveTranslations/sv/time_b === RUN TestComprehensiveTranslations/sv/try_again === RUN TestComprehensiveTranslations/sv/version_info === RUN TestComprehensiveTranslations/sv/why_am_i_seeing === RUN TestComprehensiveTranslations/sv/you_are_not_a_bot === RUN TestComprehensiveTranslations/bg === RUN TestComprehensiveTranslations/bg/access_denied === RUN TestComprehensiveTranslations/bg/algorithm === RUN TestComprehensiveTranslations/bg/authorization_required === RUN TestComprehensiveTranslations/bg/benchmark_requires_js === RUN TestComprehensiveTranslations/bg/benchmarking_anubis === RUN TestComprehensiveTranslations/bg/celphase === RUN TestComprehensiveTranslations/bg/client_error_browser === RUN TestComprehensiveTranslations/bg/compare === RUN TestComprehensiveTranslations/bg/connection_security === RUN TestComprehensiveTranslations/bg/contact_webmaster === RUN TestComprehensiveTranslations/bg/cookies_disabled === RUN TestComprehensiveTranslations/bg/difficulty === RUN TestComprehensiveTranslations/bg/dronebl_entry === RUN TestComprehensiveTranslations/bg/failed_to_sign_jwt === RUN TestComprehensiveTranslations/bg/go_home === RUN TestComprehensiveTranslations/bg/internal_server_error === RUN TestComprehensiveTranslations/bg/invalid_invocation === RUN TestComprehensiveTranslations/bg/invalid_redirect === RUN TestComprehensiveTranslations/bg/iters === RUN TestComprehensiveTranslations/bg/iters_a === RUN TestComprehensiveTranslations/bg/iters_b === RUN TestComprehensiveTranslations/bg/javascript_required === RUN TestComprehensiveTranslations/bg/js_calculating === RUN TestComprehensiveTranslations/bg/js_calculating_difficulty === RUN TestComprehensiveTranslations/bg/js_calculation_error === RUN TestComprehensiveTranslations/bg/js_calculation_error_msg === RUN TestComprehensiveTranslations/bg/js_challenge_error === RUN TestComprehensiveTranslations/bg/js_challenge_error_msg === RUN TestComprehensiveTranslations/bg/js_context_not_secure === RUN TestComprehensiveTranslations/bg/js_context_not_secure_msg === RUN TestComprehensiveTranslations/bg/js_cookies_error === RUN TestComprehensiveTranslations/bg/js_done_took === RUN TestComprehensiveTranslations/bg/js_finished_reading === RUN TestComprehensiveTranslations/bg/js_iterations === RUN TestComprehensiveTranslations/bg/js_missing_feature === RUN TestComprehensiveTranslations/bg/js_speed === RUN TestComprehensiveTranslations/bg/js_success === RUN TestComprehensiveTranslations/bg/js_verification_longer === RUN TestComprehensiveTranslations/bg/js_web_crypto_error === RUN TestComprehensiveTranslations/bg/js_web_workers_error === RUN TestComprehensiveTranslations/bg/jshelter_note === RUN TestComprehensiveTranslations/bg/loading === RUN TestComprehensiveTranslations/bg/made_with === RUN TestComprehensiveTranslations/bg/making_sure_not_bot === RUN TestComprehensiveTranslations/bg/mascot_design === RUN TestComprehensiveTranslations/bg/missing_required_forwarded_headers === RUN TestComprehensiveTranslations/bg/oh_noes === RUN TestComprehensiveTranslations/bg/protected_by === RUN TestComprehensiveTranslations/bg/protected_from === RUN TestComprehensiveTranslations/bg/redirect_domain_not_allowed === RUN TestComprehensiveTranslations/bg/redirect_not_parseable === RUN TestComprehensiveTranslations/bg/script_load_error === RUN TestComprehensiveTranslations/bg/see_dronebl_lookup === RUN TestComprehensiveTranslations/bg/simplified_explanation === RUN TestComprehensiveTranslations/bg/static_check_endpoint === RUN TestComprehensiveTranslations/bg/time === RUN TestComprehensiveTranslations/bg/time_a === RUN TestComprehensiveTranslations/bg/time_b === RUN TestComprehensiveTranslations/bg/try_again === RUN TestComprehensiveTranslations/bg/version_info === RUN TestComprehensiveTranslations/bg/why_am_i_seeing === RUN TestComprehensiveTranslations/bg/you_are_not_a_bot --- PASS: TestComprehensiveTranslations (0.04s) --- PASS: TestComprehensiveTranslations/ca (0.00s) --- PASS: TestComprehensiveTranslations/ca/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/ca/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/ca/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/ca/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/ca/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/ca/celphase (0.00s) --- PASS: TestComprehensiveTranslations/ca/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/ca/compare (0.00s) --- PASS: TestComprehensiveTranslations/ca/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/ca/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/ca/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/ca/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ca/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/ca/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/ca/go_home (0.00s) --- PASS: TestComprehensiveTranslations/ca/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/ca/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/ca/iters (0.00s) --- PASS: TestComprehensiveTranslations/ca/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/ca/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/ca/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_success (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/ca/loading (0.00s) --- PASS: TestComprehensiveTranslations/ca/made_with (0.00s) --- PASS: TestComprehensiveTranslations/ca/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/ca/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/ca/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/ca/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/ca/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/ca/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/ca/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/ca/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/ca/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/ca/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/ca/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/ca/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/ca/time (0.00s) --- PASS: TestComprehensiveTranslations/ca/time_a (0.00s) --- PASS: TestComprehensiveTranslations/ca/time_b (0.00s) --- PASS: TestComprehensiveTranslations/ca/try_again (0.00s) --- PASS: TestComprehensiveTranslations/ca/version_info (0.00s) --- PASS: TestComprehensiveTranslations/ca/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/ca/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/cs (0.00s) --- PASS: TestComprehensiveTranslations/cs/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/cs/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/cs/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/cs/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/cs/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/cs/celphase (0.00s) --- PASS: TestComprehensiveTranslations/cs/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/cs/compare (0.00s) --- PASS: TestComprehensiveTranslations/cs/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/cs/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/cs/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/cs/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/cs/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/cs/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/cs/go_home (0.00s) --- PASS: TestComprehensiveTranslations/cs/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/cs/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/cs/iters (0.00s) --- PASS: TestComprehensiveTranslations/cs/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/cs/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/cs/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_success (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/cs/loading (0.00s) --- PASS: TestComprehensiveTranslations/cs/made_with (0.00s) --- PASS: TestComprehensiveTranslations/cs/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/cs/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/cs/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/cs/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/cs/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/cs/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/cs/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/cs/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/cs/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/cs/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/cs/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/cs/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/cs/time (0.00s) --- PASS: TestComprehensiveTranslations/cs/time_a (0.00s) --- PASS: TestComprehensiveTranslations/cs/time_b (0.00s) --- PASS: TestComprehensiveTranslations/cs/try_again (0.00s) --- PASS: TestComprehensiveTranslations/cs/version_info (0.00s) --- PASS: TestComprehensiveTranslations/cs/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/cs/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/de (0.00s) --- PASS: TestComprehensiveTranslations/de/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/de/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/de/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/de/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/de/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/de/celphase (0.00s) --- PASS: TestComprehensiveTranslations/de/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/de/compare (0.00s) --- PASS: TestComprehensiveTranslations/de/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/de/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/de/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/de/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/de/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/de/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/de/go_home (0.00s) --- PASS: TestComprehensiveTranslations/de/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/de/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/de/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/de/iters (0.00s) --- PASS: TestComprehensiveTranslations/de/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/de/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/de/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/de/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/de/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/de/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/de/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/de/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/de/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/de/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/de/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/de/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/de/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/de/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/de/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/de/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/de/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/de/js_success (0.00s) --- PASS: TestComprehensiveTranslations/de/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/de/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/de/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/de/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/de/loading (0.00s) --- PASS: TestComprehensiveTranslations/de/made_with (0.00s) --- PASS: TestComprehensiveTranslations/de/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/de/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/de/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/de/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/de/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/de/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/de/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/de/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/de/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/de/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/de/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/de/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/de/time (0.00s) --- PASS: TestComprehensiveTranslations/de/time_a (0.00s) --- PASS: TestComprehensiveTranslations/de/time_b (0.00s) --- PASS: TestComprehensiveTranslations/de/try_again (0.00s) --- PASS: TestComprehensiveTranslations/de/version_info (0.00s) --- PASS: TestComprehensiveTranslations/de/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/de/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/en (0.00s) --- PASS: TestComprehensiveTranslations/en/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/en/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/en/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/en/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/en/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/en/celphase (0.00s) --- PASS: TestComprehensiveTranslations/en/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/en/compare (0.00s) --- PASS: TestComprehensiveTranslations/en/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/en/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/en/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/en/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/en/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/en/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/en/go_home (0.00s) --- PASS: TestComprehensiveTranslations/en/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/en/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/en/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/en/iters (0.00s) --- PASS: TestComprehensiveTranslations/en/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/en/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/en/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/en/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/en/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/en/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/en/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/en/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/en/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/en/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/en/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/en/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/en/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/en/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/en/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/en/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/en/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/en/js_success (0.00s) --- PASS: TestComprehensiveTranslations/en/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/en/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/en/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/en/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/en/loading (0.00s) --- PASS: TestComprehensiveTranslations/en/made_with (0.00s) --- PASS: TestComprehensiveTranslations/en/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/en/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/en/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/en/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/en/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/en/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/en/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/en/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/en/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/en/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/en/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/en/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/en/time (0.00s) --- PASS: TestComprehensiveTranslations/en/time_a (0.00s) --- PASS: TestComprehensiveTranslations/en/time_b (0.00s) --- PASS: TestComprehensiveTranslations/en/try_again (0.00s) --- PASS: TestComprehensiveTranslations/en/version_info (0.00s) --- PASS: TestComprehensiveTranslations/en/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/en/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/es (0.00s) --- PASS: TestComprehensiveTranslations/es/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/es/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/es/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/es/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/es/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/es/celphase (0.00s) --- PASS: TestComprehensiveTranslations/es/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/es/compare (0.00s) --- PASS: TestComprehensiveTranslations/es/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/es/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/es/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/es/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/es/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/es/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/es/go_home (0.00s) --- PASS: TestComprehensiveTranslations/es/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/es/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/es/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/es/iters (0.00s) --- PASS: TestComprehensiveTranslations/es/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/es/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/es/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/es/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/es/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/es/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/es/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/es/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/es/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/es/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/es/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/es/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/es/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/es/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/es/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/es/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/es/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/es/js_success (0.00s) --- PASS: TestComprehensiveTranslations/es/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/es/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/es/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/es/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/es/loading (0.00s) --- PASS: TestComprehensiveTranslations/es/made_with (0.00s) --- PASS: TestComprehensiveTranslations/es/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/es/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/es/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/es/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/es/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/es/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/es/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/es/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/es/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/es/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/es/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/es/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/es/time (0.00s) --- PASS: TestComprehensiveTranslations/es/time_a (0.00s) --- PASS: TestComprehensiveTranslations/es/time_b (0.00s) --- PASS: TestComprehensiveTranslations/es/try_again (0.00s) --- PASS: TestComprehensiveTranslations/es/version_info (0.00s) --- PASS: TestComprehensiveTranslations/es/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/es/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/et (0.00s) --- PASS: TestComprehensiveTranslations/et/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/et/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/et/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/et/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/et/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/et/celphase (0.00s) --- PASS: TestComprehensiveTranslations/et/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/et/compare (0.00s) --- PASS: TestComprehensiveTranslations/et/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/et/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/et/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/et/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/et/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/et/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/et/go_home (0.00s) --- PASS: TestComprehensiveTranslations/et/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/et/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/et/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/et/iters (0.00s) --- PASS: TestComprehensiveTranslations/et/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/et/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/et/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/et/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/et/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/et/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/et/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/et/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/et/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/et/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/et/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/et/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/et/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/et/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/et/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/et/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/et/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/et/js_success (0.00s) --- PASS: TestComprehensiveTranslations/et/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/et/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/et/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/et/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/et/loading (0.00s) --- PASS: TestComprehensiveTranslations/et/made_with (0.00s) --- PASS: TestComprehensiveTranslations/et/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/et/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/et/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/et/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/et/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/et/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/et/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/et/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/et/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/et/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/et/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/et/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/et/time (0.00s) --- PASS: TestComprehensiveTranslations/et/time_a (0.00s) --- PASS: TestComprehensiveTranslations/et/time_b (0.00s) --- PASS: TestComprehensiveTranslations/et/try_again (0.00s) --- PASS: TestComprehensiveTranslations/et/version_info (0.00s) --- PASS: TestComprehensiveTranslations/et/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/et/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/fi (0.00s) --- PASS: TestComprehensiveTranslations/fi/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/fi/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/fi/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/fi/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/fi/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/fi/celphase (0.00s) --- PASS: TestComprehensiveTranslations/fi/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/fi/compare (0.00s) --- PASS: TestComprehensiveTranslations/fi/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/fi/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/fi/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/fi/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fi/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/fi/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/fi/go_home (0.00s) --- PASS: TestComprehensiveTranslations/fi/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/fi/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/fi/iters (0.00s) --- PASS: TestComprehensiveTranslations/fi/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/fi/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/fi/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_success (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/fi/loading (0.00s) --- PASS: TestComprehensiveTranslations/fi/made_with (0.00s) --- PASS: TestComprehensiveTranslations/fi/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/fi/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/fi/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/fi/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/fi/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/fi/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/fi/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/fi/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/fi/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/fi/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/fi/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/fi/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/fi/time (0.00s) --- PASS: TestComprehensiveTranslations/fi/time_a (0.00s) --- PASS: TestComprehensiveTranslations/fi/time_b (0.00s) --- PASS: TestComprehensiveTranslations/fi/try_again (0.00s) --- PASS: TestComprehensiveTranslations/fi/version_info (0.00s) --- PASS: TestComprehensiveTranslations/fi/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/fi/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/fil (0.00s) --- PASS: TestComprehensiveTranslations/fil/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/fil/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/fil/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/fil/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/fil/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/fil/celphase (0.00s) --- PASS: TestComprehensiveTranslations/fil/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/fil/compare (0.00s) --- PASS: TestComprehensiveTranslations/fil/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/fil/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/fil/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/fil/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fil/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/fil/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/fil/go_home (0.00s) --- PASS: TestComprehensiveTranslations/fil/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/fil/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/fil/iters (0.00s) --- PASS: TestComprehensiveTranslations/fil/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/fil/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/fil/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_success (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/fil/loading (0.00s) --- PASS: TestComprehensiveTranslations/fil/made_with (0.00s) --- PASS: TestComprehensiveTranslations/fil/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/fil/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/fil/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/fil/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/fil/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/fil/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/fil/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/fil/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/fil/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/fil/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/fil/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/fil/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/fil/time (0.00s) --- PASS: TestComprehensiveTranslations/fil/time_a (0.00s) --- PASS: TestComprehensiveTranslations/fil/time_b (0.00s) --- PASS: TestComprehensiveTranslations/fil/try_again (0.00s) --- PASS: TestComprehensiveTranslations/fil/version_info (0.00s) --- PASS: TestComprehensiveTranslations/fil/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/fil/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/fr (0.00s) --- PASS: TestComprehensiveTranslations/fr/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/fr/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/fr/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/fr/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/fr/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/fr/celphase (0.00s) --- PASS: TestComprehensiveTranslations/fr/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/fr/compare (0.00s) --- PASS: TestComprehensiveTranslations/fr/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/fr/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/fr/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/fr/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fr/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/fr/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/fr/go_home (0.00s) --- PASS: TestComprehensiveTranslations/fr/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/fr/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/fr/iters (0.00s) --- PASS: TestComprehensiveTranslations/fr/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/fr/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/fr/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_success (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/fr/loading (0.00s) --- PASS: TestComprehensiveTranslations/fr/made_with (0.00s) --- PASS: TestComprehensiveTranslations/fr/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/fr/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/fr/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/fr/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/fr/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/fr/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/fr/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/fr/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/fr/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/fr/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/fr/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/fr/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/fr/time (0.00s) --- PASS: TestComprehensiveTranslations/fr/time_a (0.00s) --- PASS: TestComprehensiveTranslations/fr/time_b (0.00s) --- PASS: TestComprehensiveTranslations/fr/try_again (0.00s) --- PASS: TestComprehensiveTranslations/fr/version_info (0.00s) --- PASS: TestComprehensiveTranslations/fr/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/fr/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/hr (0.00s) --- PASS: TestComprehensiveTranslations/hr/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/hr/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/hr/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/hr/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/hr/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/hr/celphase (0.00s) --- PASS: TestComprehensiveTranslations/hr/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/hr/compare (0.00s) --- PASS: TestComprehensiveTranslations/hr/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/hr/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/hr/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/hr/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/hr/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/hr/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/hr/go_home (0.00s) --- PASS: TestComprehensiveTranslations/hr/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/hr/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/hr/iters (0.00s) --- PASS: TestComprehensiveTranslations/hr/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/hr/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/hr/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_success (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/hr/loading (0.00s) --- PASS: TestComprehensiveTranslations/hr/made_with (0.00s) --- PASS: TestComprehensiveTranslations/hr/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/hr/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/hr/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/hr/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/hr/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/hr/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/hr/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/hr/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/hr/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/hr/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/hr/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/hr/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/hr/time (0.00s) --- PASS: TestComprehensiveTranslations/hr/time_a (0.00s) --- PASS: TestComprehensiveTranslations/hr/time_b (0.00s) --- PASS: TestComprehensiveTranslations/hr/try_again (0.00s) --- PASS: TestComprehensiveTranslations/hr/version_info (0.00s) --- PASS: TestComprehensiveTranslations/hr/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/hr/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/is (0.00s) --- PASS: TestComprehensiveTranslations/is/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/is/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/is/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/is/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/is/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/is/celphase (0.00s) --- PASS: TestComprehensiveTranslations/is/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/is/compare (0.00s) --- PASS: TestComprehensiveTranslations/is/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/is/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/is/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/is/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/is/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/is/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/is/go_home (0.00s) --- PASS: TestComprehensiveTranslations/is/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/is/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/is/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/is/iters (0.00s) --- PASS: TestComprehensiveTranslations/is/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/is/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/is/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/is/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/is/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/is/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/is/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/is/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/is/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/is/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/is/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/is/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/is/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/is/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/is/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/is/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/is/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/is/js_success (0.00s) --- PASS: TestComprehensiveTranslations/is/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/is/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/is/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/is/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/is/loading (0.00s) --- PASS: TestComprehensiveTranslations/is/made_with (0.00s) --- PASS: TestComprehensiveTranslations/is/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/is/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/is/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/is/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/is/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/is/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/is/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/is/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/is/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/is/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/is/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/is/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/is/time (0.00s) --- PASS: TestComprehensiveTranslations/is/time_a (0.00s) --- PASS: TestComprehensiveTranslations/is/time_b (0.00s) --- PASS: TestComprehensiveTranslations/is/try_again (0.00s) --- PASS: TestComprehensiveTranslations/is/version_info (0.00s) --- PASS: TestComprehensiveTranslations/is/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/is/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/it (0.00s) --- PASS: TestComprehensiveTranslations/it/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/it/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/it/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/it/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/it/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/it/celphase (0.00s) --- PASS: TestComprehensiveTranslations/it/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/it/compare (0.00s) --- PASS: TestComprehensiveTranslations/it/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/it/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/it/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/it/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/it/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/it/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/it/go_home (0.00s) --- PASS: TestComprehensiveTranslations/it/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/it/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/it/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/it/iters (0.00s) --- PASS: TestComprehensiveTranslations/it/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/it/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/it/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/it/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/it/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/it/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/it/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/it/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/it/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/it/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/it/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/it/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/it/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/it/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/it/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/it/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/it/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/it/js_success (0.00s) --- PASS: TestComprehensiveTranslations/it/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/it/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/it/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/it/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/it/loading (0.00s) --- PASS: TestComprehensiveTranslations/it/made_with (0.00s) --- PASS: TestComprehensiveTranslations/it/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/it/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/it/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/it/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/it/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/it/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/it/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/it/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/it/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/it/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/it/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/it/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/it/time (0.00s) --- PASS: TestComprehensiveTranslations/it/time_a (0.00s) --- PASS: TestComprehensiveTranslations/it/time_b (0.00s) --- PASS: TestComprehensiveTranslations/it/try_again (0.00s) --- PASS: TestComprehensiveTranslations/it/version_info (0.00s) --- PASS: TestComprehensiveTranslations/it/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/it/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/ja (0.00s) --- PASS: TestComprehensiveTranslations/ja/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/ja/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/ja/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/ja/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/ja/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/ja/celphase (0.00s) --- PASS: TestComprehensiveTranslations/ja/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/ja/compare (0.00s) --- PASS: TestComprehensiveTranslations/ja/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/ja/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/ja/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/ja/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ja/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/ja/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/ja/go_home (0.00s) --- PASS: TestComprehensiveTranslations/ja/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/ja/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/ja/iters (0.00s) --- PASS: TestComprehensiveTranslations/ja/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/ja/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/ja/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_success (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/ja/loading (0.00s) --- PASS: TestComprehensiveTranslations/ja/made_with (0.00s) --- PASS: TestComprehensiveTranslations/ja/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/ja/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/ja/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/ja/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/ja/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/ja/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/ja/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/ja/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/ja/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/ja/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/ja/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/ja/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/ja/time (0.00s) --- PASS: TestComprehensiveTranslations/ja/time_a (0.00s) --- PASS: TestComprehensiveTranslations/ja/time_b (0.00s) --- PASS: TestComprehensiveTranslations/ja/try_again (0.00s) --- PASS: TestComprehensiveTranslations/ja/version_info (0.00s) --- PASS: TestComprehensiveTranslations/ja/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/ja/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/lt (0.00s) --- PASS: TestComprehensiveTranslations/lt/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/lt/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/lt/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/lt/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/lt/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/lt/celphase (0.00s) --- PASS: TestComprehensiveTranslations/lt/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/lt/compare (0.00s) --- PASS: TestComprehensiveTranslations/lt/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/lt/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/lt/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/lt/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/lt/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/lt/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/lt/go_home (0.00s) --- PASS: TestComprehensiveTranslations/lt/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/lt/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/lt/iters (0.00s) --- PASS: TestComprehensiveTranslations/lt/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/lt/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/lt/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_success (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/lt/loading (0.00s) --- PASS: TestComprehensiveTranslations/lt/made_with (0.00s) --- PASS: TestComprehensiveTranslations/lt/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/lt/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/lt/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/lt/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/lt/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/lt/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/lt/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/lt/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/lt/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/lt/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/lt/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/lt/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/lt/time (0.00s) --- PASS: TestComprehensiveTranslations/lt/time_a (0.00s) --- PASS: TestComprehensiveTranslations/lt/time_b (0.00s) --- PASS: TestComprehensiveTranslations/lt/try_again (0.00s) --- PASS: TestComprehensiveTranslations/lt/version_info (0.00s) --- PASS: TestComprehensiveTranslations/lt/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/lt/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/nb (0.00s) --- PASS: TestComprehensiveTranslations/nb/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/nb/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/nb/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/nb/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/nb/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/nb/celphase (0.00s) --- PASS: TestComprehensiveTranslations/nb/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/nb/compare (0.00s) --- PASS: TestComprehensiveTranslations/nb/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/nb/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/nb/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/nb/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nb/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/nb/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/nb/go_home (0.00s) --- PASS: TestComprehensiveTranslations/nb/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/nb/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/nb/iters (0.00s) --- PASS: TestComprehensiveTranslations/nb/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/nb/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/nb/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_success (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/nb/loading (0.00s) --- PASS: TestComprehensiveTranslations/nb/made_with (0.00s) --- PASS: TestComprehensiveTranslations/nb/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/nb/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/nb/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/nb/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/nb/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/nb/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/nb/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/nb/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/nb/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/nb/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/nb/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/nb/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/nb/time (0.00s) --- PASS: TestComprehensiveTranslations/nb/time_a (0.00s) --- PASS: TestComprehensiveTranslations/nb/time_b (0.00s) --- PASS: TestComprehensiveTranslations/nb/try_again (0.00s) --- PASS: TestComprehensiveTranslations/nb/version_info (0.00s) --- PASS: TestComprehensiveTranslations/nb/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/nb/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/nl (0.00s) --- PASS: TestComprehensiveTranslations/nl/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/nl/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/nl/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/nl/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/nl/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/nl/celphase (0.00s) --- PASS: TestComprehensiveTranslations/nl/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/nl/compare (0.00s) --- PASS: TestComprehensiveTranslations/nl/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/nl/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/nl/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/nl/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nl/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/nl/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/nl/go_home (0.00s) --- PASS: TestComprehensiveTranslations/nl/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/nl/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/nl/iters (0.00s) --- PASS: TestComprehensiveTranslations/nl/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/nl/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/nl/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_success (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/nl/loading (0.00s) --- PASS: TestComprehensiveTranslations/nl/made_with (0.00s) --- PASS: TestComprehensiveTranslations/nl/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/nl/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/nl/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/nl/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/nl/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/nl/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/nl/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/nl/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/nl/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/nl/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/nl/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/nl/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/nl/time (0.00s) --- PASS: TestComprehensiveTranslations/nl/time_a (0.00s) --- PASS: TestComprehensiveTranslations/nl/time_b (0.00s) --- PASS: TestComprehensiveTranslations/nl/try_again (0.00s) --- PASS: TestComprehensiveTranslations/nl/version_info (0.00s) --- PASS: TestComprehensiveTranslations/nl/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/nl/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/nn (0.00s) --- PASS: TestComprehensiveTranslations/nn/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/nn/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/nn/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/nn/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/nn/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/nn/celphase (0.00s) --- PASS: TestComprehensiveTranslations/nn/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/nn/compare (0.00s) --- PASS: TestComprehensiveTranslations/nn/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/nn/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/nn/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/nn/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nn/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/nn/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/nn/go_home (0.00s) --- PASS: TestComprehensiveTranslations/nn/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/nn/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/nn/iters (0.00s) --- PASS: TestComprehensiveTranslations/nn/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/nn/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/nn/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_success (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/nn/loading (0.00s) --- PASS: TestComprehensiveTranslations/nn/made_with (0.00s) --- PASS: TestComprehensiveTranslations/nn/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/nn/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/nn/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/nn/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/nn/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/nn/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/nn/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/nn/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/nn/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/nn/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/nn/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/nn/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/nn/time (0.00s) --- PASS: TestComprehensiveTranslations/nn/time_a (0.00s) --- PASS: TestComprehensiveTranslations/nn/time_b (0.00s) --- PASS: TestComprehensiveTranslations/nn/try_again (0.00s) --- PASS: TestComprehensiveTranslations/nn/version_info (0.00s) --- PASS: TestComprehensiveTranslations/nn/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/nn/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/pl (0.00s) --- PASS: TestComprehensiveTranslations/pl/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/pl/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/pl/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/pl/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/pl/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/pl/celphase (0.00s) --- PASS: TestComprehensiveTranslations/pl/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/pl/compare (0.00s) --- PASS: TestComprehensiveTranslations/pl/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/pl/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/pl/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/pl/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pl/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/pl/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/pl/go_home (0.00s) --- PASS: TestComprehensiveTranslations/pl/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/pl/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/pl/iters (0.00s) --- PASS: TestComprehensiveTranslations/pl/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/pl/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/pl/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_success (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/pl/loading (0.00s) --- PASS: TestComprehensiveTranslations/pl/made_with (0.00s) --- PASS: TestComprehensiveTranslations/pl/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/pl/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/pl/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/pl/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/pl/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/pl/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/pl/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/pl/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/pl/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/pl/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/pl/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/pl/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/pl/time (0.00s) --- PASS: TestComprehensiveTranslations/pl/time_a (0.00s) --- PASS: TestComprehensiveTranslations/pl/time_b (0.00s) --- PASS: TestComprehensiveTranslations/pl/try_again (0.00s) --- PASS: TestComprehensiveTranslations/pl/version_info (0.00s) --- PASS: TestComprehensiveTranslations/pl/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/pl/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/celphase (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/compare (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/go_home (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/iters (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_success (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/loading (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/made_with (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/time (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/time_a (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/time_b (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/try_again (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/version_info (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/pt-BR/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/celphase (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/compare (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/go_home (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/iters (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_success (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/loading (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/made_with (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/time (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/time_a (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/time_b (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/try_again (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/version_info (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/pt-PT/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/ru (0.00s) --- PASS: TestComprehensiveTranslations/ru/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/ru/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/ru/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/ru/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/ru/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/ru/celphase (0.00s) --- PASS: TestComprehensiveTranslations/ru/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/ru/compare (0.00s) --- PASS: TestComprehensiveTranslations/ru/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/ru/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/ru/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/ru/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ru/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/ru/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/ru/go_home (0.00s) --- PASS: TestComprehensiveTranslations/ru/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/ru/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/ru/iters (0.00s) --- PASS: TestComprehensiveTranslations/ru/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/ru/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/ru/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_success (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/ru/loading (0.00s) --- PASS: TestComprehensiveTranslations/ru/made_with (0.00s) --- PASS: TestComprehensiveTranslations/ru/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/ru/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/ru/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/ru/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/ru/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/ru/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/ru/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/ru/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/ru/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/ru/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/ru/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/ru/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/ru/time (0.00s) --- PASS: TestComprehensiveTranslations/ru/time_a (0.00s) --- PASS: TestComprehensiveTranslations/ru/time_b (0.00s) --- PASS: TestComprehensiveTranslations/ru/try_again (0.00s) --- PASS: TestComprehensiveTranslations/ru/version_info (0.00s) --- PASS: TestComprehensiveTranslations/ru/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/ru/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/tr (0.00s) --- PASS: TestComprehensiveTranslations/tr/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/tr/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/tr/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/tr/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/tr/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/tr/celphase (0.00s) --- PASS: TestComprehensiveTranslations/tr/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/tr/compare (0.00s) --- PASS: TestComprehensiveTranslations/tr/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/tr/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/tr/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/tr/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/tr/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/tr/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/tr/go_home (0.00s) --- PASS: TestComprehensiveTranslations/tr/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/tr/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/tr/iters (0.00s) --- PASS: TestComprehensiveTranslations/tr/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/tr/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/tr/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_success (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/tr/loading (0.00s) --- PASS: TestComprehensiveTranslations/tr/made_with (0.00s) --- PASS: TestComprehensiveTranslations/tr/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/tr/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/tr/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/tr/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/tr/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/tr/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/tr/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/tr/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/tr/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/tr/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/tr/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/tr/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/tr/time (0.00s) --- PASS: TestComprehensiveTranslations/tr/time_a (0.00s) --- PASS: TestComprehensiveTranslations/tr/time_b (0.00s) --- PASS: TestComprehensiveTranslations/tr/try_again (0.00s) --- PASS: TestComprehensiveTranslations/tr/version_info (0.00s) --- PASS: TestComprehensiveTranslations/tr/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/tr/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/uk (0.00s) --- PASS: TestComprehensiveTranslations/uk/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/uk/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/uk/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/uk/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/uk/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/uk/celphase (0.00s) --- PASS: TestComprehensiveTranslations/uk/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/uk/compare (0.00s) --- PASS: TestComprehensiveTranslations/uk/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/uk/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/uk/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/uk/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/uk/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/uk/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/uk/go_home (0.00s) --- PASS: TestComprehensiveTranslations/uk/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/uk/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/uk/iters (0.00s) --- PASS: TestComprehensiveTranslations/uk/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/uk/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/uk/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_success (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/uk/loading (0.00s) --- PASS: TestComprehensiveTranslations/uk/made_with (0.00s) --- PASS: TestComprehensiveTranslations/uk/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/uk/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/uk/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/uk/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/uk/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/uk/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/uk/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/uk/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/uk/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/uk/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/uk/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/uk/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/uk/time (0.00s) --- PASS: TestComprehensiveTranslations/uk/time_a (0.00s) --- PASS: TestComprehensiveTranslations/uk/time_b (0.00s) --- PASS: TestComprehensiveTranslations/uk/try_again (0.00s) --- PASS: TestComprehensiveTranslations/uk/version_info (0.00s) --- PASS: TestComprehensiveTranslations/uk/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/uk/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/vi (0.00s) --- PASS: TestComprehensiveTranslations/vi/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/vi/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/vi/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/vi/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/vi/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/vi/celphase (0.00s) --- PASS: TestComprehensiveTranslations/vi/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/vi/compare (0.00s) --- PASS: TestComprehensiveTranslations/vi/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/vi/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/vi/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/vi/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/vi/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/vi/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/vi/go_home (0.00s) --- PASS: TestComprehensiveTranslations/vi/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/vi/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/vi/iters (0.00s) --- PASS: TestComprehensiveTranslations/vi/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/vi/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/vi/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_success (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/vi/loading (0.00s) --- PASS: TestComprehensiveTranslations/vi/made_with (0.00s) --- PASS: TestComprehensiveTranslations/vi/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/vi/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/vi/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/vi/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/vi/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/vi/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/vi/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/vi/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/vi/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/vi/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/vi/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/vi/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/vi/time (0.00s) --- PASS: TestComprehensiveTranslations/vi/time_a (0.00s) --- PASS: TestComprehensiveTranslations/vi/time_b (0.00s) --- PASS: TestComprehensiveTranslations/vi/try_again (0.00s) --- PASS: TestComprehensiveTranslations/vi/version_info (0.00s) --- PASS: TestComprehensiveTranslations/vi/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/vi/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/celphase (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/compare (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/go_home (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/iters (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_success (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/loading (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/made_with (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/time (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/time_a (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/time_b (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/try_again (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/version_info (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/zh-CN/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/celphase (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/compare (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/go_home (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/iters (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_success (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/loading (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/made_with (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/time (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/time_a (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/time_b (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/try_again (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/version_info (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/zh-TW/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/sv (0.00s) --- PASS: TestComprehensiveTranslations/sv/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/sv/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/sv/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/sv/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/sv/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/sv/celphase (0.00s) --- PASS: TestComprehensiveTranslations/sv/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/sv/compare (0.00s) --- PASS: TestComprehensiveTranslations/sv/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/sv/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/sv/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/sv/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/sv/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/sv/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/sv/go_home (0.00s) --- PASS: TestComprehensiveTranslations/sv/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/sv/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/sv/iters (0.00s) --- PASS: TestComprehensiveTranslations/sv/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/sv/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/sv/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_success (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/sv/loading (0.00s) --- PASS: TestComprehensiveTranslations/sv/made_with (0.00s) --- PASS: TestComprehensiveTranslations/sv/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/sv/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/sv/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/sv/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/sv/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/sv/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/sv/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/sv/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/sv/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/sv/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/sv/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/sv/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/sv/time (0.00s) --- PASS: TestComprehensiveTranslations/sv/time_a (0.00s) --- PASS: TestComprehensiveTranslations/sv/time_b (0.00s) --- PASS: TestComprehensiveTranslations/sv/try_again (0.00s) --- PASS: TestComprehensiveTranslations/sv/version_info (0.00s) --- PASS: TestComprehensiveTranslations/sv/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/sv/you_are_not_a_bot (0.00s) --- PASS: TestComprehensiveTranslations/bg (0.00s) --- PASS: TestComprehensiveTranslations/bg/access_denied (0.00s) --- PASS: TestComprehensiveTranslations/bg/algorithm (0.00s) --- PASS: TestComprehensiveTranslations/bg/authorization_required (0.00s) --- PASS: TestComprehensiveTranslations/bg/benchmark_requires_js (0.00s) --- PASS: TestComprehensiveTranslations/bg/benchmarking_anubis (0.00s) --- PASS: TestComprehensiveTranslations/bg/celphase (0.00s) --- PASS: TestComprehensiveTranslations/bg/client_error_browser (0.00s) --- PASS: TestComprehensiveTranslations/bg/compare (0.00s) --- PASS: TestComprehensiveTranslations/bg/connection_security (0.00s) --- PASS: TestComprehensiveTranslations/bg/contact_webmaster (0.00s) --- PASS: TestComprehensiveTranslations/bg/cookies_disabled (0.00s) --- PASS: TestComprehensiveTranslations/bg/difficulty (0.00s) --- PASS: TestComprehensiveTranslations/bg/dronebl_entry (0.00s) --- PASS: TestComprehensiveTranslations/bg/failed_to_sign_jwt (0.00s) --- PASS: TestComprehensiveTranslations/bg/go_home (0.00s) --- PASS: TestComprehensiveTranslations/bg/internal_server_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/invalid_invocation (0.00s) --- PASS: TestComprehensiveTranslations/bg/invalid_redirect (0.00s) --- PASS: TestComprehensiveTranslations/bg/iters (0.00s) --- PASS: TestComprehensiveTranslations/bg/iters_a (0.00s) --- PASS: TestComprehensiveTranslations/bg/iters_b (0.00s) --- PASS: TestComprehensiveTranslations/bg/javascript_required (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_calculating (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_calculating_difficulty (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_calculation_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_calculation_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_challenge_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_challenge_error_msg (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_context_not_secure (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_context_not_secure_msg (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_cookies_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_done_took (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_finished_reading (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_iterations (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_missing_feature (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_speed (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_success (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_verification_longer (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_web_crypto_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/js_web_workers_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/jshelter_note (0.00s) --- PASS: TestComprehensiveTranslations/bg/loading (0.00s) --- PASS: TestComprehensiveTranslations/bg/made_with (0.00s) --- PASS: TestComprehensiveTranslations/bg/making_sure_not_bot (0.00s) --- PASS: TestComprehensiveTranslations/bg/mascot_design (0.00s) --- PASS: TestComprehensiveTranslations/bg/missing_required_forwarded_headers (0.00s) --- PASS: TestComprehensiveTranslations/bg/oh_noes (0.00s) --- PASS: TestComprehensiveTranslations/bg/protected_by (0.00s) --- PASS: TestComprehensiveTranslations/bg/protected_from (0.00s) --- PASS: TestComprehensiveTranslations/bg/redirect_domain_not_allowed (0.00s) --- PASS: TestComprehensiveTranslations/bg/redirect_not_parseable (0.00s) --- PASS: TestComprehensiveTranslations/bg/script_load_error (0.00s) --- PASS: TestComprehensiveTranslations/bg/see_dronebl_lookup (0.00s) --- PASS: TestComprehensiveTranslations/bg/simplified_explanation (0.00s) --- PASS: TestComprehensiveTranslations/bg/static_check_endpoint (0.00s) --- PASS: TestComprehensiveTranslations/bg/time (0.00s) --- PASS: TestComprehensiveTranslations/bg/time_a (0.00s) --- PASS: TestComprehensiveTranslations/bg/time_b (0.00s) --- PASS: TestComprehensiveTranslations/bg/try_again (0.00s) --- PASS: TestComprehensiveTranslations/bg/version_info (0.00s) --- PASS: TestComprehensiveTranslations/bg/why_am_i_seeing (0.00s) --- PASS: TestComprehensiveTranslations/bg/you_are_not_a_bot (0.00s) === RUN TestAcceptLanguageQualityFactors === RUN TestAcceptLanguageQualityFactors/simple_en === RUN TestAcceptLanguageQualityFactors/simple_de === RUN TestAcceptLanguageQualityFactors/en_GB_with_lower_priority_de === RUN TestAcceptLanguageQualityFactors/en_GB_only === RUN TestAcceptLanguageQualityFactors/de_with_lower_priority_en === RUN TestAcceptLanguageQualityFactors/de_DE_with_lower_priority_en === RUN TestAcceptLanguageQualityFactors/fr_with_lower_priority_de === RUN TestAcceptLanguageQualityFactors/zh_CN_regional === RUN TestAcceptLanguageQualityFactors/zh_TW_regional === RUN TestAcceptLanguageQualityFactors/pt_BR_regional === RUN TestAcceptLanguageQualityFactors/pt_PT_regional === RUN TestAcceptLanguageQualityFactors/complex_header --- PASS: TestAcceptLanguageQualityFactors (0.00s) --- PASS: TestAcceptLanguageQualityFactors/simple_en (0.00s) --- PASS: TestAcceptLanguageQualityFactors/simple_de (0.00s) --- PASS: TestAcceptLanguageQualityFactors/en_GB_with_lower_priority_de (0.00s) --- PASS: TestAcceptLanguageQualityFactors/en_GB_only (0.00s) --- PASS: TestAcceptLanguageQualityFactors/de_with_lower_priority_en (0.00s) --- PASS: TestAcceptLanguageQualityFactors/de_DE_with_lower_priority_en (0.00s) --- PASS: TestAcceptLanguageQualityFactors/fr_with_lower_priority_de (0.00s) --- PASS: TestAcceptLanguageQualityFactors/zh_CN_regional (0.00s) --- PASS: TestAcceptLanguageQualityFactors/zh_TW_regional (0.00s) --- PASS: TestAcceptLanguageQualityFactors/pt_BR_regional (0.00s) --- PASS: TestAcceptLanguageQualityFactors/pt_PT_regional (0.00s) --- PASS: TestAcceptLanguageQualityFactors/complex_header (0.00s) === RUN TestAcceptLanguageUndetermined === RUN TestAcceptLanguageUndetermined/undetermined === RUN TestAcceptLanguageUndetermined/undetermined_with_quality === RUN TestAcceptLanguageUndetermined/undetermined_below_german === RUN TestAcceptLanguageUndetermined/unknown_subtag --- PASS: TestAcceptLanguageUndetermined (0.00s) --- PASS: TestAcceptLanguageUndetermined/undetermined (0.00s) --- PASS: TestAcceptLanguageUndetermined/undetermined_with_quality (0.00s) --- PASS: TestAcceptLanguageUndetermined/undetermined_below_german (0.00s) --- PASS: TestAcceptLanguageUndetermined/unknown_subtag (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/localization 0.068s === RUN TestNewKeypairReloader === RUN TestNewKeypairReloader/valid_cert_and_key === RUN TestNewKeypairReloader/missing_cert_file === RUN TestNewKeypairReloader/missing_key_file === RUN TestNewKeypairReloader/cert_file_is_garbage --- PASS: TestNewKeypairReloader (0.06s) --- PASS: TestNewKeypairReloader/valid_cert_and_key (0.00s) --- PASS: TestNewKeypairReloader/missing_cert_file (0.00s) --- PASS: TestNewKeypairReloader/missing_key_file (0.00s) --- PASS: TestNewKeypairReloader/cert_file_is_garbage (0.00s) === RUN TestKeypairReloader_GetCertificate === RUN TestKeypairReloader_GetCertificate/returns_loaded_cert === RUN TestKeypairReloader_GetCertificate/reloads_when_mtime_advances === RUN TestKeypairReloader_GetCertificate/does_not_reload_when_mtime_unchanged === RUN TestKeypairReloader_GetCertificate/does_not_panic_when_reload_fails_after_mtime_bump --- PASS: TestKeypairReloader_GetCertificate (0.66s) --- PASS: TestKeypairReloader_GetCertificate/returns_loaded_cert (0.06s) --- PASS: TestKeypairReloader_GetCertificate/reloads_when_mtime_advances (0.31s) --- PASS: TestKeypairReloader_GetCertificate/does_not_reload_when_mtime_unchanged (0.07s) --- PASS: TestKeypairReloader_GetCertificate/does_not_panic_when_reload_fails_after_mtime_bump (0.21s) === RUN TestMetricsPprofCmdlineExposedWithoutAuthentication --- PASS: TestMetricsPprofCmdlineExposedWithoutAuthentication (0.05s) PASS ok github.com/TecharoHQ/anubis/lib/metrics 0.781s === RUN TestCELChecker_MapIterationWrappers --- PASS: TestCELChecker_MapIterationWrappers (0.01s) === RUN TestCELChecker_PathWithForwardedUri === RUN TestCELChecker_PathWithForwardedUri/path_matches_X-Forwarded-Uri_in_subrequest_mode === RUN TestCELChecker_PathWithForwardedUri/path_with_query_string === RUN TestCELChecker_PathWithForwardedUri/path_falls_back_to_url_path_when_no_header === RUN TestCELChecker_PathWithForwardedUri/non-subrequest_mode_ignores_X-Forwarded-Uri --- PASS: TestCELChecker_PathWithForwardedUri (0.00s) --- PASS: TestCELChecker_PathWithForwardedUri/path_matches_X-Forwarded-Uri_in_subrequest_mode (0.00s) --- PASS: TestCELChecker_PathWithForwardedUri/path_with_query_string (0.00s) --- PASS: TestCELChecker_PathWithForwardedUri/path_falls_back_to_url_path_when_no_header (0.00s) --- PASS: TestCELChecker_PathWithForwardedUri/non-subrequest_mode_ignores_X-Forwarded-Uri (0.00s) === RUN TestCELOriginalURIPathExcludesQuery --- PASS: TestCELOriginalURIPathExcludesQuery (0.00s) === RUN TestCELMalformedOriginalURI --- PASS: TestCELMalformedOriginalURI (0.00s) === RUN TestRemoteAddrChecker === RUN TestRemoteAddrChecker/match_ipv4 === RUN TestRemoteAddrChecker/match_ipv4_in_ipv6 === RUN TestRemoteAddrChecker/match_ipv4_in_ipv6_hex === RUN TestRemoteAddrChecker/match_ipv6 === RUN TestRemoteAddrChecker/not_match_ipv4 === RUN TestRemoteAddrChecker/not_match_ipv6 === RUN TestRemoteAddrChecker/no_ip_set === RUN TestRemoteAddrChecker/invalid_ip --- PASS: TestRemoteAddrChecker (0.00s) --- PASS: TestRemoteAddrChecker/match_ipv4 (0.00s) --- PASS: TestRemoteAddrChecker/match_ipv4_in_ipv6 (0.00s) --- PASS: TestRemoteAddrChecker/match_ipv4_in_ipv6_hex (0.00s) --- PASS: TestRemoteAddrChecker/match_ipv6 (0.00s) --- PASS: TestRemoteAddrChecker/not_match_ipv4 (0.00s) --- PASS: TestRemoteAddrChecker/not_match_ipv6 (0.00s) --- PASS: TestRemoteAddrChecker/no_ip_set (0.00s) --- PASS: TestRemoteAddrChecker/invalid_ip (0.00s) === RUN TestHeaderMatchesChecker === RUN TestHeaderMatchesChecker/match === RUN TestHeaderMatchesChecker/not_match === RUN TestHeaderMatchesChecker/not_present === RUN TestHeaderMatchesChecker/invalid_regex --- PASS: TestHeaderMatchesChecker (0.00s) --- PASS: TestHeaderMatchesChecker/match (0.00s) --- PASS: TestHeaderMatchesChecker/not_match (0.00s) --- PASS: TestHeaderMatchesChecker/not_present (0.00s) --- PASS: TestHeaderMatchesChecker/invalid_regex (0.00s) === RUN TestHeaderExistsChecker === RUN TestHeaderExistsChecker/match === RUN TestHeaderExistsChecker/not_match --- PASS: TestHeaderExistsChecker (0.00s) --- PASS: TestHeaderExistsChecker/match (0.00s) --- PASS: TestHeaderExistsChecker/not_match (0.00s) === RUN TestPathChecker_XOriginalURI === RUN TestPathChecker_XOriginalURI/X-Original-URI_matches_regex_(with_trailing_space_-_current_typo) === RUN TestPathChecker_XOriginalURI/X-Original-URI_doesn't_match,_falls_back_to_URL.Path === RUN TestPathChecker_XOriginalURI/Neither_X-Original-URI_nor_URL.Path_match === RUN TestPathChecker_XOriginalURI/Empty_X-Original-URI,_URL.Path_matches === RUN TestPathChecker_XOriginalURI/Complex_regex_matching_X-Original-URI --- PASS: TestPathChecker_XOriginalURI (0.00s) --- PASS: TestPathChecker_XOriginalURI/X-Original-URI_matches_regex_(with_trailing_space_-_current_typo) (0.00s) --- PASS: TestPathChecker_XOriginalURI/X-Original-URI_doesn't_match,_falls_back_to_URL.Path (0.00s) --- PASS: TestPathChecker_XOriginalURI/Neither_X-Original-URI_nor_URL.Path_match (0.00s) --- PASS: TestPathChecker_XOriginalURI/Empty_X-Original-URI,_URL.Path_matches (0.00s) --- PASS: TestPathChecker_XOriginalURI/Complex_regex_matching_X-Original-URI (0.00s) === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_ignores_spoofed_X-Original-URI_when_real_path_matches === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_ignores_spoofed_X-Original-URI_when_real_path_does_not_match === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_without_X-Original-URI_matches_real_path === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_honors_X-Original-URI === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_falls_back_to_URL.Path_when_X-Original-URI_does_not_match === RUN TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_with_empty_X-Original-URI_uses_URL.Path --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_ignores_spoofed_X-Original-URI_when_real_path_matches (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_ignores_spoofed_X-Original-URI_when_real_path_does_not_match (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/default_mode_without_X-Original-URI_matches_real_path (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_honors_X-Original-URI (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_falls_back_to_URL.Path_when_X-Original-URI_does_not_match (0.00s) --- PASS: TestPathChecker_GHSA_6wcg_mqvh_fcvg/subrequest_mode_with_empty_X-Original-URI_uses_URL.Path (0.00s) === RUN TestPathChecker_XForwardedUri === RUN TestPathChecker_XForwardedUri/X-Forwarded-Uri_matches_regex_in_subrequest_mode === RUN TestPathChecker_XForwardedUri/X-Forwarded-Uri_with_query_string === RUN TestPathChecker_XForwardedUri/X-Original-URI_takes_priority_over_X-Forwarded-Uri === RUN TestPathChecker_XForwardedUri/falls_back_to_X-Forwarded-Uri_when_no_X-Original-URI === RUN TestPathChecker_XForwardedUri/neither_header_matches,_url_path_matches === RUN TestPathChecker_XForwardedUri/nothing_matches === RUN TestPathChecker_XForwardedUri/non-subrequest_mode_ignores_X-Forwarded-Uri === RUN TestPathChecker_XForwardedUri/non-subrequest_mode_uses_url_path === RUN TestPathChecker_XForwardedUri/empty_X-Forwarded-Uri_falls_back_to_url_path --- PASS: TestPathChecker_XForwardedUri (0.00s) --- PASS: TestPathChecker_XForwardedUri/X-Forwarded-Uri_matches_regex_in_subrequest_mode (0.00s) --- PASS: TestPathChecker_XForwardedUri/X-Forwarded-Uri_with_query_string (0.00s) --- PASS: TestPathChecker_XForwardedUri/X-Original-URI_takes_priority_over_X-Forwarded-Uri (0.00s) --- PASS: TestPathChecker_XForwardedUri/falls_back_to_X-Forwarded-Uri_when_no_X-Original-URI (0.00s) --- PASS: TestPathChecker_XForwardedUri/neither_header_matches,_url_path_matches (0.00s) --- PASS: TestPathChecker_XForwardedUri/nothing_matches (0.00s) --- PASS: TestPathChecker_XForwardedUri/non-subrequest_mode_ignores_X-Forwarded-Uri (0.00s) --- PASS: TestPathChecker_XForwardedUri/non-subrequest_mode_uses_url_path (0.00s) --- PASS: TestPathChecker_XForwardedUri/empty_X-Forwarded-Uri_falls_back_to_url_path (0.00s) === RUN TestHeaderRulesReadAllValues --- PASS: TestHeaderRulesReadAllValues (0.00s) === RUN TestAnchoredHeaderRulesReadEachValue --- PASS: TestAnchoredHeaderRulesReadEachValue (0.00s) === RUN TestPolicyRejectsAmbiguousPaths --- PASS: TestPolicyRejectsAmbiguousPaths (0.00s) === RUN TestRepeatedSlashesInPathRules === RUN TestRepeatedSlashesInPathRules///admin/secret === RUN TestRepeatedSlashesInPathRules///admin/secretX-Original-Uri === RUN TestRepeatedSlashesInPathRules///admin/secretX-Forwarded-Uri === RUN TestRepeatedSlashesInPathRules//admin//secret === RUN TestRepeatedSlashesInPathRules//admin//secretX-Original-Uri === RUN TestRepeatedSlashesInPathRules//admin//secretX-Forwarded-Uri === RUN TestRepeatedSlashesInPathRules//admin%2F%2F/secret === RUN TestRepeatedSlashesInPathRules//admin%2F%2F/secretX-Original-Uri === RUN TestRepeatedSlashesInPathRules//admin%2F%2F/secretX-Forwarded-Uri --- PASS: TestRepeatedSlashesInPathRules (0.01s) --- PASS: TestRepeatedSlashesInPathRules///admin/secret (0.00s) --- PASS: TestRepeatedSlashesInPathRules///admin/secretX-Original-Uri (0.00s) --- PASS: TestRepeatedSlashesInPathRules///admin/secretX-Forwarded-Uri (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin//secret (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin//secretX-Original-Uri (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin//secretX-Forwarded-Uri (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin%2F%2F/secret (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin%2F%2F/secretX-Original-Uri (0.00s) --- PASS: TestRepeatedSlashesInPathRules//admin%2F%2F/secretX-Forwarded-Uri (0.00s) === RUN TestDefaultPolicyMustParse --- PASS: TestDefaultPolicyMustParse (0.04s) === RUN TestGoodConfigs === RUN TestGoodConfigs/allow_everyone.json === RUN TestGoodConfigs/allow_everyone.json/with-geoip === RUN TestGoodConfigs/allow_everyone.json/without-geoip === RUN TestGoodConfigs/allow_everyone.yaml === RUN TestGoodConfigs/allow_everyone.yaml/with-geoip === RUN TestGoodConfigs/allow_everyone.yaml/without-geoip === RUN TestGoodConfigs/block_cf_workers.json === RUN TestGoodConfigs/block_cf_workers.json/with-geoip === RUN TestGoodConfigs/block_cf_workers.json/without-geoip === RUN TestGoodConfigs/block_cf_workers.yaml === RUN TestGoodConfigs/block_cf_workers.yaml/with-geoip === RUN TestGoodConfigs/block_cf_workers.yaml/without-geoip === RUN TestGoodConfigs/challenge-extensions.yaml === RUN TestGoodConfigs/challenge-extensions.yaml/with-geoip === RUN TestGoodConfigs/challenge-extensions.yaml/without-geoip === RUN TestGoodConfigs/challenge_cloudflare.yaml === RUN TestGoodConfigs/challenge_cloudflare.yaml/with-geoip === RUN TestGoodConfigs/challenge_cloudflare.yaml/without-geoip {"time":"2026-11-05T03:07:00.469267758Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335]}} === RUN TestGoodConfigs/challengemozilla.json === RUN TestGoodConfigs/challengemozilla.json/with-geoip === RUN TestGoodConfigs/challengemozilla.json/without-geoip === RUN TestGoodConfigs/challengemozilla.yaml === RUN TestGoodConfigs/challengemozilla.yaml/with-geoip === RUN TestGoodConfigs/challengemozilla.yaml/without-geoip === RUN TestGoodConfigs/dns-ttl-custom.yaml === RUN TestGoodConfigs/dns-ttl-custom.yaml/with-geoip === RUN TestGoodConfigs/dns-ttl-custom.yaml/without-geoip === RUN TestGoodConfigs/entropy.yaml === RUN TestGoodConfigs/entropy.yaml/with-geoip === RUN TestGoodConfigs/entropy.yaml/without-geoip === RUN TestGoodConfigs/everything_blocked.json === RUN TestGoodConfigs/everything_blocked.json/with-geoip === RUN TestGoodConfigs/everything_blocked.json/without-geoip === RUN TestGoodConfigs/everything_blocked.yaml === RUN TestGoodConfigs/everything_blocked.yaml/with-geoip === RUN TestGoodConfigs/everything_blocked.yaml/without-geoip === RUN TestGoodConfigs/geoip_us.yaml === RUN TestGoodConfigs/geoip_us.yaml/with-geoip === RUN TestGoodConfigs/geoip_us.yaml/without-geoip {"time":"2026-11-05T03:07:00.48150239Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["US"]}} === RUN TestGoodConfigs/git_client.json === RUN TestGoodConfigs/git_client.json/with-geoip === RUN TestGoodConfigs/git_client.json/without-geoip === RUN TestGoodConfigs/git_client.yaml === RUN TestGoodConfigs/git_client.yaml/with-geoip === RUN TestGoodConfigs/git_client.yaml/without-geoip === RUN TestGoodConfigs/honeypot-disabled.yaml === RUN TestGoodConfigs/honeypot-disabled.yaml/with-geoip === RUN TestGoodConfigs/honeypot-disabled.yaml/without-geoip === RUN TestGoodConfigs/honeypot.json === RUN TestGoodConfigs/honeypot.json/with-geoip === RUN TestGoodConfigs/honeypot.json/without-geoip === RUN TestGoodConfigs/honeypot.yaml === RUN TestGoodConfigs/honeypot.yaml/with-geoip === RUN TestGoodConfigs/honeypot.yaml/without-geoip === RUN TestGoodConfigs/import-all-bots.yaml === RUN TestGoodConfigs/import-all-bots.yaml/with-geoip === RUN TestGoodConfigs/import-all-bots.yaml/without-geoip === RUN TestGoodConfigs/import_filesystem.json === RUN TestGoodConfigs/import_filesystem.json/with-geoip === RUN TestGoodConfigs/import_filesystem.json/without-geoip === RUN TestGoodConfigs/import_filesystem.yaml === RUN TestGoodConfigs/import_filesystem.yaml/with-geoip === RUN TestGoodConfigs/import_filesystem.yaml/without-geoip === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml/with-geoip === RUN TestGoodConfigs/import_google_user_triggered_fetchers.yaml/without-geoip === RUN TestGoodConfigs/import_keep_internet_working.json === RUN TestGoodConfigs/import_keep_internet_working.json/with-geoip === RUN TestGoodConfigs/import_keep_internet_working.json/without-geoip === RUN TestGoodConfigs/import_keep_internet_working.yaml === RUN TestGoodConfigs/import_keep_internet_working.yaml/with-geoip === RUN TestGoodConfigs/import_keep_internet_working.yaml/without-geoip === RUN TestGoodConfigs/impressum.yaml === RUN TestGoodConfigs/impressum.yaml/with-geoip === RUN TestGoodConfigs/impressum.yaml/without-geoip === RUN TestGoodConfigs/logging-file.yaml === RUN TestGoodConfigs/logging-file.yaml/with-geoip === RUN TestGoodConfigs/logging-file.yaml/without-geoip === RUN TestGoodConfigs/logging-stdio.yaml === RUN TestGoodConfigs/logging-stdio.yaml/with-geoip === RUN TestGoodConfigs/logging-stdio.yaml/without-geoip === RUN TestGoodConfigs/no-thresholds.yaml === RUN TestGoodConfigs/no-thresholds.yaml/with-geoip === RUN TestGoodConfigs/no-thresholds.yaml/without-geoip === RUN TestGoodConfigs/old_xesite.json === RUN TestGoodConfigs/old_xesite.json/with-geoip === RUN TestGoodConfigs/old_xesite.json/without-geoip === RUN TestGoodConfigs/opengraph_all_good.yaml === RUN TestGoodConfigs/opengraph_all_good.yaml/with-geoip === RUN TestGoodConfigs/opengraph_all_good.yaml/without-geoip === RUN TestGoodConfigs/simple-weight.yaml === RUN TestGoodConfigs/simple-weight.yaml/with-geoip === RUN TestGoodConfigs/simple-weight.yaml/without-geoip === RUN TestGoodConfigs/status-codes-paranoid.json === RUN TestGoodConfigs/status-codes-paranoid.json/with-geoip === RUN TestGoodConfigs/status-codes-paranoid.json/without-geoip === RUN TestGoodConfigs/status-codes-paranoid.yaml === RUN TestGoodConfigs/status-codes-paranoid.yaml/with-geoip === RUN TestGoodConfigs/status-codes-paranoid.yaml/without-geoip === RUN TestGoodConfigs/status-codes-rfc.json === RUN TestGoodConfigs/status-codes-rfc.json/with-geoip === RUN TestGoodConfigs/status-codes-rfc.json/without-geoip === RUN TestGoodConfigs/status-codes-rfc.yaml === RUN TestGoodConfigs/status-codes-rfc.yaml/with-geoip === RUN TestGoodConfigs/status-codes-rfc.yaml/without-geoip === RUN TestGoodConfigs/thresholds.yaml === RUN TestGoodConfigs/thresholds.yaml/with-geoip === RUN TestGoodConfigs/thresholds.yaml/without-geoip === RUN TestGoodConfigs/weight-no-weight.yaml === RUN TestGoodConfigs/weight-no-weight.yaml/with-geoip === RUN TestGoodConfigs/weight-no-weight.yaml/without-geoip --- PASS: TestGoodConfigs (0.21s) --- PASS: TestGoodConfigs/allow_everyone.json (0.00s) --- PASS: TestGoodConfigs/allow_everyone.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challenge-extensions.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challenge_cloudflare.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/dns-ttl-custom.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/entropy.yaml (0.00s) --- PASS: TestGoodConfigs/entropy.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/entropy.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/geoip_us.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.json (0.01s) --- PASS: TestGoodConfigs/git_client.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.yaml (0.00s) --- PASS: TestGoodConfigs/git_client.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/git_client.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot-disabled.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.json (0.00s) --- PASS: TestGoodConfigs/honeypot.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/honeypot.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/import-all-bots.yaml (0.11s) --- PASS: TestGoodConfigs/import-all-bots.yaml/with-geoip (0.07s) --- PASS: TestGoodConfigs/import-all-bots.yaml/without-geoip (0.04s) --- PASS: TestGoodConfigs/import_filesystem.json (0.00s) --- PASS: TestGoodConfigs/import_filesystem.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml (0.01s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml/with-geoip (0.01s) --- PASS: TestGoodConfigs/import_google_user_triggered_fetchers.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/impressum.yaml (0.00s) --- PASS: TestGoodConfigs/impressum.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/impressum.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/logging-file.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/logging-stdio.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/no-thresholds.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/old_xesite.json (0.00s) --- PASS: TestGoodConfigs/old_xesite.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/old_xesite.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/opengraph_all_good.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/simple-weight.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json/without-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/thresholds.yaml (0.00s) --- PASS: TestGoodConfigs/thresholds.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/thresholds.yaml/without-geoip (0.00s) --- PASS: TestGoodConfigs/weight-no-weight.yaml (0.00s) --- PASS: TestGoodConfigs/weight-no-weight.yaml/with-geoip (0.00s) --- PASS: TestGoodConfigs/weight-no-weight.yaml/without-geoip (0.00s) === RUN TestBadConfigs === RUN TestBadConfigs/badregexes.json policy_test.go:92: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` bot 2: config: bot entry for "headers-bad" is not valid: config.Bot: must set one of user_agent_regex, path_regex, headers_regex, remote_addresses, remote_addresses_url, expression, asns, or geoip === RUN TestBadConfigs/badregexes.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` bot 1: config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` === RUN TestBadConfigs/challenge-extension-empty.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name must not be empty === RUN TestBadConfigs/challenge-extension-repeated.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "everyone" is not valid: config: challenge rules entry is not valid: config.ChallengeRules: extension name was repeated: "test-extension" === RUN TestBadConfigs/dns-ttl-custom.yaml policy_test.go:92: can't parse policy config YAML ../config/testdata/bad/dns-ttl-custom.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field .dns_ttl.reverse of type int === RUN TestBadConfigs/geoip-auto-update-no-account.yaml policy_test.go:92: config is not valid: config.GeoIPDatabases: invalid geoip settings: auto_update: config.GeoIPAutoUpdate: must define account_id config.GeoIPAutoUpdate: environment variable named by license_key_env is not set: ANUBIS_TEST_MAXMIND_LICENSE_KEY_THAT_IS_NOT_SET config.GeoIPAutoUpdate: interval is too short: 5m0s is less than 1h0m0s === RUN TestBadConfigs/geoip-invalid-country-field.yaml policy_test.go:92: config is not valid: config.GeoIPDatabases: invalid geoip settings: country: config.GeoIPDatabase: invalid country_field: "continent", must be one of "country" or "registered_country" === RUN TestBadConfigs/geoip-no-path.yaml policy_test.go:92: config is not valid: config.GeoIPDatabases: invalid geoip settings: asn: config.GeoIPDatabase: must define path === RUN TestBadConfigs/honeypot-empty-implementation.yaml policy_test.go:92: config is not valid: config.Honeypot: missing field "implementation": config: missing value config.Honeypot: invalid implementation selected (try: "naive"): got: "" === RUN TestBadConfigs/honeypot-invalid-implementation.json policy_test.go:92: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestBadConfigs/honeypot-invalid-implementation.yaml policy_test.go:92: config is not valid: config.Honeypot: invalid implementation selected (try: "naive"): got: "sophisticated" === RUN TestBadConfigs/import-invalid-pattern.yaml policy_test.go:92: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*[abc]abc]\.yaml: config.ImportStatement: glob pattern matched no files === RUN TestBadConfigs/import-no-match.yaml policy_test.go:92: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/bots/never-matches/*.yaml: config.ImportStatement: glob pattern matched no files === RUN TestBadConfigs/import_and_bot.json policy_test.go:92: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_and_bot.yaml policy_test.go:92: config is not valid: bot 0: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_invalid_file.json policy_test.go:92: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestBadConfigs/import_invalid_file.yaml policy_test.go:92: config is not valid: bot 0: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist === RUN TestBadConfigs/impressum-no-footer.yaml policy_test.go:92: errors validating policy config ../config/testdata/bad/impressum-no-footer.yaml: config: missing value: impressum footer must be defined === RUN TestBadConfigs/impressum-no-page-contents.yaml policy_test.go:92: errors validating policy config ../config/testdata/bad/impressum-no-page-contents.yaml: config: missing value: impressum page title must be defined config: missing value: impressum body title must be defined === RUN TestBadConfigs/invalid.json policy_test.go:92: config is not valid: bot 0: config.BotOrImport: rule definition is invalid, you must set either bot rules or an import statement, not both === RUN TestBadConfigs/invalid.yaml policy_test.go:92: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/logging-invalid-sink.yaml policy_test.go:92: config is not valid: config: must define at least one (1) bot rule config.Logging: invalid sink: sink nope is unknown to me === RUN TestBadConfigs/logging-no-parameters.yaml policy_test.go:92: config is not valid: config: must define at least one (1) bot rule config.Logging: missing value parameters in logging block logging file config is nil, why are you calling this? === RUN TestBadConfigs/metrics-invalid-net.yaml policy_test.go:92: config is not valid: config: must define at least one (1) bot rule config: invalid metrics configuration config.Metrics: invalid metrics network === RUN TestBadConfigs/multiple_expression_types.json policy_test.go:92: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestBadConfigs/multiple_expression_types.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types === RUN TestBadConfigs/nobots.json policy_test.go:92: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/nobots.yaml policy_test.go:92: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/opengraph_bad_ttl.yaml policy_test.go:92: config is not valid: config.OpenGraph: invalid OpenGraph configuration config.OpenGraph: ttl does not parse as a Duration, see https://pkg.go.dev/time#ParseDuration (formatted like 5m -> 5 minutes, 2h -> 2 hours, etc): ParseDuration("taco") returned: time: invalid duration "taco" === RUN TestBadConfigs/regex_ends_newline.json policy_test.go:92: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestBadConfigs/regex_ends_newline.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "user-agent-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): user agent regex: "Mozilla\n" bot 1: config: bot entry for "path-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): path regex: "^/evil/.*$\n" bot 2: config: bot entry for "headers-ends-newline" is not valid: config.Bot: regular expression ends with newline (try >- instead of > in yaml): header CF-Worker regex: ".*\n" === RUN TestBadConfigs/remote-and-url.yaml policy_test.go:92: config is not valid: bot 0: config: bot entry for "both-addr-kinds" is not valid: config.Bot: must set either remote_addresses or remote_addresses_url, and not both === RUN TestBadConfigs/status-codes-0.json policy_test.go:92: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestBadConfigs/status-codes-0.yaml policy_test.go:92: config is not valid: status codes not valid: config.StatusCode: status code not valid, must be between 100 and 599: challenge is 0 config.StatusCode: status code not valid, must be between 100 and 599: deny is 0 === RUN TestBadConfigs/threshold-challenge-without-challenge.yaml policy_test.go:92: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestBadConfigs/thresholds.yaml policy_test.go:92: config is not valid: threshold 0: config: threshold entry for "extreme-suspicion" is not valid: config.Threshold: a threshold cannot have the WEIGH action === RUN TestBadConfigs/unparseable.json policy_test.go:92: can't parse policy config YAML ../config/testdata/bad/unparseable.json: error converting YAML to JSON: yaml: did not find expected node content === RUN TestBadConfigs/unparseable.yaml policy_test.go:92: can't parse policy config YAML ../config/testdata/bad/unparseable.yaml: error converting YAML to JSON: yaml: did not find expected node content --- PASS: TestBadConfigs (0.01s) --- PASS: TestBadConfigs/badregexes.json (0.00s) --- PASS: TestBadConfigs/badregexes.yaml (0.00s) --- PASS: TestBadConfigs/challenge-extension-empty.yaml (0.00s) --- PASS: TestBadConfigs/challenge-extension-repeated.yaml (0.00s) --- PASS: TestBadConfigs/dns-ttl-custom.yaml (0.00s) --- PASS: TestBadConfigs/geoip-auto-update-no-account.yaml (0.00s) --- PASS: TestBadConfigs/geoip-invalid-country-field.yaml (0.00s) --- PASS: TestBadConfigs/geoip-no-path.yaml (0.00s) --- PASS: TestBadConfigs/honeypot-empty-implementation.yaml (0.00s) --- PASS: TestBadConfigs/honeypot-invalid-implementation.json (0.00s) --- PASS: TestBadConfigs/honeypot-invalid-implementation.yaml (0.00s) --- PASS: TestBadConfigs/import-invalid-pattern.yaml (0.00s) --- PASS: TestBadConfigs/import-no-match.yaml (0.00s) --- PASS: TestBadConfigs/import_and_bot.json (0.00s) --- PASS: TestBadConfigs/import_and_bot.yaml (0.00s) --- PASS: TestBadConfigs/import_invalid_file.json (0.00s) --- PASS: TestBadConfigs/import_invalid_file.yaml (0.00s) --- PASS: TestBadConfigs/impressum-no-footer.yaml (0.00s) --- PASS: TestBadConfigs/impressum-no-page-contents.yaml (0.00s) --- PASS: TestBadConfigs/invalid.json (0.00s) --- PASS: TestBadConfigs/invalid.yaml (0.00s) --- PASS: TestBadConfigs/logging-invalid-sink.yaml (0.00s) --- PASS: TestBadConfigs/logging-no-parameters.yaml (0.00s) --- PASS: TestBadConfigs/metrics-invalid-net.yaml (0.00s) --- PASS: TestBadConfigs/multiple_expression_types.json (0.00s) --- PASS: TestBadConfigs/multiple_expression_types.yaml (0.00s) --- PASS: TestBadConfigs/nobots.json (0.00s) --- PASS: TestBadConfigs/nobots.yaml (0.00s) --- PASS: TestBadConfigs/opengraph_bad_ttl.yaml (0.00s) --- PASS: TestBadConfigs/regex_ends_newline.json (0.00s) --- PASS: TestBadConfigs/regex_ends_newline.yaml (0.00s) --- PASS: TestBadConfigs/remote-and-url.yaml (0.00s) --- PASS: TestBadConfigs/status-codes-0.json (0.00s) --- PASS: TestBadConfigs/status-codes-0.yaml (0.00s) --- PASS: TestBadConfigs/threshold-challenge-without-challenge.yaml (0.00s) --- PASS: TestBadConfigs/thresholds.yaml (0.00s) --- PASS: TestBadConfigs/unparseable.json (0.00s) --- PASS: TestBadConfigs/unparseable.yaml (0.00s) === RUN TestPathCheckerStripsForwardedURIQuery --- PASS: TestPathCheckerStripsForwardedURIQuery (0.00s) === RUN TestConfigReferencesJA4H === RUN TestConfigReferencesJA4H/no_bots === RUN TestConfigReferencesJA4H/unrelated_rules === RUN TestConfigReferencesJA4H/headers_regex_exact_match === RUN TestConfigReferencesJA4H/headers_regex_case-insensitive_match === RUN TestConfigReferencesJA4H/expression_references_header === RUN TestConfigReferencesJA4H/expression_list_references_header === RUN TestConfigReferencesJA4H/expression_missingHeader_references_header --- PASS: TestConfigReferencesJA4H (0.00s) --- PASS: TestConfigReferencesJA4H/no_bots (0.00s) --- PASS: TestConfigReferencesJA4H/unrelated_rules (0.00s) --- PASS: TestConfigReferencesJA4H/headers_regex_exact_match (0.00s) --- PASS: TestConfigReferencesJA4H/headers_regex_case-insensitive_match (0.00s) --- PASS: TestConfigReferencesJA4H/expression_references_header (0.00s) --- PASS: TestConfigReferencesJA4H/expression_list_references_header (0.00s) --- PASS: TestConfigReferencesJA4H/expression_missingHeader_references_header (0.00s) === RUN TestGeoIPDatabasesBlock === RUN TestGeoIPDatabasesBlock/both_databases === RUN TestGeoIPDatabasesBlock/asn_only_skips_geoip_rules {"time":"2026-11-05T03:07:00.669623824Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["CA"]}} === RUN TestGeoIPDatabasesBlock/policy_block_wins_over_context {"time":"2026-11-05T03:07:00.671046784Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335]}} === RUN TestGeoIPDatabasesBlock/context_only === RUN TestGeoIPDatabasesBlock/nothing_configured_skips_both {"time":"2026-11-05T03:07:00.672517272Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335]}} {"time":"2026-11-05T03:07:00.67253835Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["CA"]}} === RUN TestGeoIPDatabasesBlock/missing_database_file {"time":"2026-11-05T03:07:00.673100065Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":219},"msg":"You have specified an asns check but you have no geoip ASN database configured. Please configure geoip.asn in your policy file","at":"config-validate","check":"asn","settings":{"match":[13335]}} {"time":"2026-11-05T03:07:00.673120934Z","level":"WARN","source":{"function":"github.com/TecharoHQ/anubis/lib/policy.ParseConfig","file":"github.com/TecharoHQ/anubis/lib/policy/policy.go","line":228},"msg":"You have specified a geoip check but you have no geoip country database configured. Please configure geoip.country in your policy file","at":"config-validate","check":"geoip","settings":{"countries":["CA"]}} --- PASS: TestGeoIPDatabasesBlock (0.01s) --- PASS: TestGeoIPDatabasesBlock/both_databases (0.00s) --- PASS: TestGeoIPDatabasesBlock/asn_only_skips_geoip_rules (0.00s) --- PASS: TestGeoIPDatabasesBlock/policy_block_wins_over_context (0.00s) --- PASS: TestGeoIPDatabasesBlock/context_only (0.00s) --- PASS: TestGeoIPDatabasesBlock/nothing_configured_skips_both (0.00s) --- PASS: TestGeoIPDatabasesBlock/missing_database_file (0.00s) === RUN TestParseConfigRemoteAddressesURL --- PASS: TestParseConfigRemoteAddressesURL (0.01s) === RUN TestRemoteAddressesURLChecker_emptyBeforeFetch --- PASS: TestRemoteAddressesURLChecker_emptyBeforeFetch (0.00s) === RUN TestRemoteAddressesURLChecker_successfulFetch --- PASS: TestRemoteAddressesURLChecker_successfulFetch (0.00s) === RUN TestRemoteAddressesURLChecker_http5xx --- PASS: TestRemoteAddressesURLChecker_http5xx (0.00s) === RUN TestRemoteAddressesURLChecker_http5xxGivesUpAfterMaxRetries --- PASS: TestRemoteAddressesURLChecker_http5xxGivesUpAfterMaxRetries (0.00s) === RUN TestRemoteAddressesURLChecker_http5xxKeepsExistingList --- PASS: TestRemoteAddressesURLChecker_http5xxKeepsExistingList (0.00s) === RUN TestRemoteAddressesURLChecker_http4xx --- PASS: TestRemoteAddressesURLChecker_http4xx (0.00s) === RUN TestRemoteAddressesURLChecker_invalidJSON --- PASS: TestRemoteAddressesURLChecker_invalidJSON (0.00s) === RUN TestRemoteAddressesURLChecker_invalidCIDR --- PASS: TestRemoteAddressesURLChecker_invalidCIDR (0.00s) === RUN TestRemoteAddressesURLChecker_unchangedCreationTime --- PASS: TestRemoteAddressesURLChecker_unchangedCreationTime (0.00s) === RUN TestRemoteAddressesURLChecker_creationTimeChangeRebuilds --- PASS: TestRemoteAddressesURLChecker_creationTimeChangeRebuilds (0.00s) === RUN TestNewRemoteAddressesURLChecker_invalidURL --- PASS: TestNewRemoteAddressesURLChecker_invalidURL (0.00s) === RUN TestNewRemoteAddressesURLChecker_runStopsOnCancel --- PASS: TestNewRemoteAddressesURLChecker_runStopsOnCancel (0.00s) === RUN TestRemoteAddressesURLRejectsEmptyReplacement --- PASS: TestRemoteAddressesURLRejectsEmptyReplacement (0.00s) === RUN TestRemoteAddressesURLRedirectOrigin --- PASS: TestRemoteAddressesURLRedirectOrigin (0.00s) === RUN TestWeighDefaultSurvivesParsing === RUN TestWeighDefaultSurvivesParsing/default === RUN TestWeighDefaultSurvivesParsing/explicit --- PASS: TestWeighDefaultSurvivesParsing (0.00s) --- PASS: TestWeighDefaultSurvivesParsing/default (0.00s) --- PASS: TestWeighDefaultSurvivesParsing/explicit (0.00s) === RUN TestImportedWeighDefaultSurvivesParsing --- PASS: TestImportedWeighDefaultSurvivesParsing (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/policy 0.315s === RUN TestListCheck_AndSemantics === RUN TestListCheck_AndSemantics/all_true === RUN TestListCheck_AndSemantics/one_false === RUN TestListCheck_AndSemantics/error_propagates --- PASS: TestListCheck_AndSemantics (0.00s) --- PASS: TestListCheck_AndSemantics/all_true (0.00s) --- PASS: TestListCheck_AndSemantics/one_false (0.00s) --- PASS: TestListCheck_AndSemantics/error_propagates (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/policy/checker 0.015s === RUN TestBotEnvironment === RUN TestBotEnvironment/missingHeader === RUN TestBotEnvironment/missingHeader/missing-header === RUN TestBotEnvironment/missingHeader/existing-header === RUN TestBotEnvironment/missingHeader/case-sensitive === RUN TestBotEnvironment/missingHeader/empty-headers === RUN TestBotEnvironment/missingHeader/real-world-sec-ch-ua === RUN TestBotEnvironment/missingHeader/browser-with-sec-ch-ua === RUN TestBotEnvironment/missingHeader/function-compilation === RUN TestBotEnvironment/segments === RUN TestBotEnvironment/segments/simple === RUN TestBotEnvironment/segments/two_segments_without_trailing_slash === RUN TestBotEnvironment/segments/at_least_two_segments === RUN TestBotEnvironment/segments/at_most_two_segments === RUN TestBotEnvironment/segments/invalid === RUN TestBotEnvironment/segments/invalid/segments_of_headers === RUN TestBotEnvironment/segments/invalid/invalid_path_type environment_test.go:243: no such overload: segments(int) === RUN TestBotEnvironment/segments/invalid/invalid_path environment_test.go:243: path does not start with / === RUN TestBotEnvironment/segments/function-compilation === RUN TestBotEnvironment/regexSafe === RUN TestBotEnvironment/regexSafe/complex-test === RUN TestBotEnvironment/regexSafe/backslash-test === RUN TestBotEnvironment/regexSafe/function-compilation === RUN TestBotEnvironment/dnsFunctions === RUN TestBotEnvironment/dnsFunctions/reverseDNS === RUN TestBotEnvironment/dnsFunctions/reverseDNS/success === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: reverse lookup successful" addr=8.8.8.8 names=[dns.google.] === RUN TestBotEnvironment/dnsFunctions/reverseDNS/not-found === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing reverse lookup" addr=127.0.0.1 time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: no PTR record found" addr=127.0.0.1 === RUN TestBotEnvironment/dnsFunctions/reverseDNS/error === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing reverse lookup" addr=error-addr time=2026-11-05T03:07:00.406Z level=ERROR msg="DNS: reverse lookup failed" addr=error-addr err="some dns error" === RUN TestBotEnvironment/dnsFunctions/lookupHost === RUN TestBotEnvironment/dnsFunctions/lookupHost/success === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: forward lookup successful" host=dns.google addrs="[8.8.8.8 8.8.4.4]" === RUN TestBotEnvironment/dnsFunctions/lookupHost/not-found === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing forward lookup" host=nonexistent.domain.example.com time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: no A/AAAA record found" host=nonexistent.domain.example.com === RUN TestBotEnvironment/dnsFunctions/lookupHost/error === NAME TestBotEnvironment time=2026-11-05T03:07:00.406Z level=DEBUG msg="DNS: performing forward lookup" host=error-host time=2026-11-05T03:07:00.406Z level=ERROR msg="DNS: forward lookup failed" host=error-host err="some dns error" === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS/success === NAME TestBotEnvironment time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern="" time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:00.407Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS/failure === NAME TestBotEnvironment time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=1.2.3.4 pattern="" time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing reverse lookup" addr=1.2.3.4 time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: reverse lookup successful" addr=1.2.3.4 names=[spoofed.example.com.] time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing forward lookup" host=spoofed.example.com time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: forward lookup successful" host=spoofed.example.com addrs=[5.6.7.8] time=2026-11-05T03:07:00.407Z level=INFO msg="DNS: could not confirm original IP in forward lookups" addr=1.2.3.4 === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS/reverse-lookup-fails === NAME TestBotEnvironment time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=1.1.1.1 pattern="" time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing reverse lookup" addr=1.1.1.1 time=2026-11-05T03:07:00.407Z level=ERROR msg="DNS: reverse lookup failed" addr=1.1.1.1 err="reverse lookup failed" === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS/success-with-pattern === NAME TestBotEnvironment time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern=dns.google time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing forward lookup" host=dns.google time=2026-11-05T03:07:00.407Z level=INFO msg="DNS: forward lookup confirmed original IP" name=dns.google addr=8.8.8.8 === RUN TestBotEnvironment/dnsFunctions/verifyFCrDNS/failure-with-pattern === NAME TestBotEnvironment time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing FCrDNS lookup" addr=8.8.8.8 pattern=wrong.pattern time=2026-11-05T03:07:00.407Z level=DEBUG msg="DNS: performing reverse lookup" addr=8.8.8.8 === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv4 === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6 === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6-full === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6-loopback === RUN TestBotEnvironment/dnsFunctions/arpaReverseIP/invalid-ip --- PASS: TestBotEnvironment (0.01s) --- PASS: TestBotEnvironment/missingHeader (0.01s) --- PASS: TestBotEnvironment/missingHeader/missing-header (0.01s) --- PASS: TestBotEnvironment/missingHeader/existing-header (0.00s) --- PASS: TestBotEnvironment/missingHeader/case-sensitive (0.00s) --- PASS: TestBotEnvironment/missingHeader/empty-headers (0.00s) --- PASS: TestBotEnvironment/missingHeader/real-world-sec-ch-ua (0.00s) --- PASS: TestBotEnvironment/missingHeader/browser-with-sec-ch-ua (0.00s) --- PASS: TestBotEnvironment/missingHeader/function-compilation (0.00s) --- PASS: TestBotEnvironment/segments (0.00s) --- PASS: TestBotEnvironment/segments/simple (0.00s) --- PASS: TestBotEnvironment/segments/two_segments_without_trailing_slash (0.00s) --- PASS: TestBotEnvironment/segments/at_least_two_segments (0.00s) --- PASS: TestBotEnvironment/segments/at_most_two_segments (0.00s) --- PASS: TestBotEnvironment/segments/invalid (0.00s) --- PASS: TestBotEnvironment/segments/invalid/segments_of_headers (0.00s) --- PASS: TestBotEnvironment/segments/invalid/invalid_path_type (0.00s) --- PASS: TestBotEnvironment/segments/invalid/invalid_path (0.00s) --- PASS: TestBotEnvironment/segments/function-compilation (0.00s) --- PASS: TestBotEnvironment/regexSafe (0.00s) --- PASS: TestBotEnvironment/regexSafe/complex-test (0.00s) --- PASS: TestBotEnvironment/regexSafe/backslash-test (0.00s) --- PASS: TestBotEnvironment/regexSafe/function-compilation (0.00s) --- PASS: TestBotEnvironment/dnsFunctions (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/reverseDNS (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/reverseDNS/success (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/reverseDNS/not-found (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/reverseDNS/error (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/lookupHost (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/lookupHost/success (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/lookupHost/not-found (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/lookupHost/error (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS/success (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS/failure (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS/reverse-lookup-fails (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS/success-with-pattern (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/verifyFCrDNS/failure-with-pattern (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv4 (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6 (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6-full (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP/ipv6-loopback (0.00s) --- PASS: TestBotEnvironment/dnsFunctions/arpaReverseIP/invalid-ip (0.00s) === RUN TestThresholdEnvironment === RUN TestThresholdEnvironment/weight-variable-available === RUN TestThresholdEnvironment/weight-variable-false-case === RUN TestThresholdEnvironment/missingHeader-not-available --- PASS: TestThresholdEnvironment (0.00s) --- PASS: TestThresholdEnvironment/weight-variable-available (0.00s) --- PASS: TestThresholdEnvironment/weight-variable-false-case (0.00s) --- PASS: TestThresholdEnvironment/missingHeader-not-available (0.00s) === RUN TestNewEnvironment === RUN TestNewEnvironment/randInt-function-compilation === RUN TestNewEnvironment/randInt-range-validation === RUN TestNewEnvironment/randInt-large-bound === RUN TestNewEnvironment/strings-extension-size === RUN TestNewEnvironment/strings-extension-contains === RUN TestNewEnvironment/strings-extension-startsWith --- PASS: TestNewEnvironment (0.00s) --- PASS: TestNewEnvironment/randInt-function-compilation (0.00s) --- PASS: TestNewEnvironment/randInt-range-validation (0.00s) --- PASS: TestNewEnvironment/randInt-large-bound (0.00s) --- PASS: TestNewEnvironment/strings-extension-size (0.00s) --- PASS: TestNewEnvironment/strings-extension-contains (0.00s) --- PASS: TestNewEnvironment/strings-extension-startsWith (0.00s) === RUN TestRandIntInvalidBounds === RUN TestRandIntInvalidBounds/zero-bound-literal === RUN TestRandIntInvalidBounds/negative-bound-literal === RUN TestRandIntInvalidBounds/zero-bound-from-variable === RUN TestRandIntInvalidBounds/negative-bound-from-variable --- PASS: TestRandIntInvalidBounds (0.00s) --- PASS: TestRandIntInvalidBounds/zero-bound-literal (0.00s) --- PASS: TestRandIntInvalidBounds/negative-bound-literal (0.00s) --- PASS: TestRandIntInvalidBounds/zero-bound-from-variable (0.00s) --- PASS: TestRandIntInvalidBounds/negative-bound-from-variable (0.00s) === RUN TestHTTPHeaders === RUN TestHTTPHeaders/contains-existing-header === RUN TestHTTPHeaders/not-contains-missing-header === RUN TestHTTPHeaders/get-existing-header === RUN TestHTTPHeaders/not-get-missing-header --- PASS: TestHTTPHeaders (0.00s) --- PASS: TestHTTPHeaders/contains-existing-header (0.00s) --- PASS: TestHTTPHeaders/not-contains-missing-header (0.00s) --- PASS: TestHTTPHeaders/get-existing-header (0.00s) --- PASS: TestHTTPHeaders/not-get-missing-header (0.00s) === RUN TestRegisterBotVariable === RUN TestRegisterBotVariable/variable_exists_in_compile === RUN TestRegisterBotVariable/variable_is_not_a_string === RUN TestRegisterBotVariable/case/matches === RUN TestRegisterBotVariable/case/does_not_match === RUN TestRegisterBotVariable/case/no_value === RUN TestRegisterBotVariable/duplicate_reg_panics 2026/11/05 03:07:00 cannot register bot variable "registryTestScore", it's already registered === RUN TestRegisterBotVariable/unknown_variable_does_not_resolve --- PASS: TestRegisterBotVariable (0.00s) --- PASS: TestRegisterBotVariable/variable_exists_in_compile (0.00s) --- PASS: TestRegisterBotVariable/variable_is_not_a_string (0.00s) --- PASS: TestRegisterBotVariable/case/matches (0.00s) --- PASS: TestRegisterBotVariable/case/does_not_match (0.00s) --- PASS: TestRegisterBotVariable/case/no_value (0.00s) --- PASS: TestRegisterBotVariable/duplicate_reg_panics (0.00s) --- PASS: TestRegisterBotVariable/unknown_variable_does_not_resolve (0.00s) === RUN TestURLValues === RUN TestURLValues/contains-existing-key === RUN TestURLValues/not-contains-missing-key === RUN TestURLValues/get-existing-key === RUN TestURLValues/not-get-missing-key --- PASS: TestURLValues (0.00s) --- PASS: TestURLValues/contains-existing-key (0.00s) --- PASS: TestURLValues/not-contains-missing-key (0.00s) --- PASS: TestURLValues/get-existing-key (0.00s) --- PASS: TestURLValues/not-get-missing-key (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/policy/expressions 0.035s === RUN TestJSON --- PASS: TestJSON (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/store 0.005s ? github.com/TecharoHQ/anubis/lib/store/all [no test files] === RUN TestImpl bbolt_test.go:15: /home/buildozer/aports/community/anubis/tmp/TestImpl2623751871/001/db === RUN TestImpl/basic_get_set_delete === PAUSE TestImpl/basic_get_set_delete === RUN TestImpl/expires === PAUSE TestImpl/expires === CONT TestImpl/basic_get_set_delete === CONT TestImpl/expires --- PASS: TestImpl (0.01s) --- PASS: TestImpl/basic_get_set_delete (0.00s) --- PASS: TestImpl/expires (0.16s) === RUN TestDeleteIfExpired === RUN TestDeleteIfExpired/deletes_the_observed_expired_generation === RUN TestDeleteIfExpired/preserves_a_refreshed_generation === RUN TestDeleteIfExpired/skips_on_generation_mismatch === RUN TestDeleteIfExpired/skips_a_non-expired_observation === RUN TestDeleteIfExpired/no-op_when_bucket_is_absent --- PASS: TestDeleteIfExpired (0.01s) --- PASS: TestDeleteIfExpired/deletes_the_observed_expired_generation (0.01s) --- PASS: TestDeleteIfExpired/preserves_a_refreshed_generation (0.00s) --- PASS: TestDeleteIfExpired/skips_on_generation_mismatch (0.00s) --- PASS: TestDeleteIfExpired/skips_a_non-expired_observation (0.00s) --- PASS: TestDeleteIfExpired/no-op_when_bucket_is_absent (0.00s) === RUN TestFactoryValid === RUN TestFactoryValid/bad_config === RUN TestFactoryValid/invalid_config === RUN TestFactoryValid/invalid_config/missing_path --- PASS: TestFactoryValid (0.00s) --- PASS: TestFactoryValid/bad_config (0.00s) --- PASS: TestFactoryValid/invalid_config (0.00s) --- PASS: TestFactoryValid/invalid_config/missing_path (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/store/bbolt 0.183s === RUN TestStoreCapacity --- PASS: TestStoreCapacity (0.01s) === RUN TestStoreCapacityPreservesUpdates --- PASS: TestStoreCapacityPreservesUpdates (0.00s) === RUN TestCapacityWithConcurrentWrites --- PASS: TestCapacityWithConcurrentWrites (0.02s) === RUN TestImpl === RUN TestImpl/basic_get_set_delete === PAUSE TestImpl/basic_get_set_delete === RUN TestImpl/expires === PAUSE TestImpl/expires === CONT TestImpl/basic_get_set_delete === CONT TestImpl/expires --- PASS: TestImpl (0.00s) --- PASS: TestImpl/basic_get_set_delete (0.00s) --- PASS: TestImpl/expires (0.16s) PASS ok github.com/TecharoHQ/anubis/lib/store/memory 0.193s === RUN TestImpl === RUN TestImpl/basic_get_set_delete === PAUSE TestImpl/basic_get_set_delete === RUN TestImpl/expires === PAUSE TestImpl/expires === CONT TestImpl/basic_get_set_delete === CONT TestImpl/expires --- PASS: TestImpl (0.00s) --- PASS: TestImpl/basic_get_set_delete (0.00s) --- PASS: TestImpl/expires (0.16s) === RUN TestKeyNormalization --- PASS: TestKeyNormalization (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/store/s3api 0.173s ? github.com/TecharoHQ/anubis/lib/store/storetest [no test files] === RUN TestImpl valkey_test.go:20: Docker is not running. Testcontainers can't perform is work without it: rootless Docker not found, failed to create Docker provider --- SKIP: TestImpl (0.00s) === RUN TestFactoryValid === RUN TestFactoryValid/empty_config === RUN TestFactoryValid/valid_URL_only === RUN TestFactoryValid/invalid_URL === RUN TestFactoryValid/valid_sentinel_config === RUN TestFactoryValid/sentinel_missing_masterName === RUN TestFactoryValid/sentinel_missing_addr === RUN TestFactoryValid/sentinel_empty_addr === RUN TestFactoryValid/sentinel_missing_password === RUN TestFactoryValid/sentinel_with_optional_fields === RUN TestFactoryValid/sentinel_single_address_(not_array) === RUN TestFactoryValid/sentinel_mixed_empty_and_valid_addresses --- PASS: TestFactoryValid (0.00s) --- PASS: TestFactoryValid/empty_config (0.00s) --- PASS: TestFactoryValid/valid_URL_only (0.00s) --- PASS: TestFactoryValid/invalid_URL (0.00s) --- PASS: TestFactoryValid/valid_sentinel_config (0.00s) --- PASS: TestFactoryValid/sentinel_missing_masterName (0.00s) --- PASS: TestFactoryValid/sentinel_missing_addr (0.00s) --- PASS: TestFactoryValid/sentinel_empty_addr (0.00s) --- PASS: TestFactoryValid/sentinel_missing_password (0.00s) --- PASS: TestFactoryValid/sentinel_with_optional_fields (0.00s) --- PASS: TestFactoryValid/sentinel_single_address_(not_array) (0.00s) --- PASS: TestFactoryValid/sentinel_mixed_empty_and_valid_addresses (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/store/valkey 0.017s ? github.com/TecharoHQ/anubis/utils/cmd/backoff-retry [no test files] === RUN TestParsePrefixes === PAUSE TestParsePrefixes === RUN TestSetRemoteAddresses === PAUSE TestSetRemoteAddresses === RUN TestSetRemoteAddressesKeepsComments === PAUSE TestSetRemoteAddressesKeepsComments === RUN TestSetRemoteAddressesKeepsStyle === PAUSE TestSetRemoteAddressesKeepsStyle === RUN TestSelectSources === PAUSE TestSelectSources === RUN TestSourcesMatchDataFiles === PAUSE TestSourcesMatchDataFiles === RUN TestUpdate === PAUSE TestUpdate === RUN TestUpdateRejectsBadFeed === PAUSE TestUpdateRejectsBadFeed === RUN TestDiff === PAUSE TestDiff === CONT TestParsePrefixes === RUN TestParsePrefixes/ipv4_and_ipv6 === PAUSE TestParsePrefixes/ipv4_and_ipv6 === RUN TestParsePrefixes/ignores_unrelated_fields === PAUSE TestParsePrefixes/ignores_unrelated_fields === RUN TestParsePrefixes/no_prefixes === PAUSE TestParsePrefixes/no_prefixes === RUN TestParsePrefixes/empty_prefix_entry === PAUSE TestParsePrefixes/empty_prefix_entry === RUN TestParsePrefixes/bare_address_is_not_a_prefix === PAUSE TestParsePrefixes/bare_address_is_not_a_prefix === RUN TestParsePrefixes/garbage_prefix === PAUSE TestParsePrefixes/garbage_prefix === RUN TestParsePrefixes/not_json === PAUSE TestParsePrefixes/not_json === CONT TestParsePrefixes/ipv4_and_ipv6 === CONT TestSetRemoteAddressesKeepsStyle === RUN TestSetRemoteAddressesKeepsStyle/flow_style_quotes_every_prefix === PAUSE TestSetRemoteAddressesKeepsStyle/flow_style_quotes_every_prefix === RUN TestSetRemoteAddressesKeepsStyle/block_style_leaves_prefixes_bare === PAUSE TestSetRemoteAddressesKeepsStyle/block_style_leaves_prefixes_bare === CONT TestSetRemoteAddressesKeepsStyle/flow_style_quotes_every_prefix === CONT TestSetRemoteAddressesKeepsComments --- PASS: TestSetRemoteAddressesKeepsComments (0.00s) === CONT TestSetRemoteAddresses === CONT TestSelectSources === RUN TestSetRemoteAddresses/block_style_rule === PAUSE TestSetRemoteAddresses/block_style_rule === RUN TestSelectSources/no_arguments_selects_everything === CONT TestParsePrefixes/bare_address_is_not_a_prefix === PAUSE TestSelectSources/no_arguments_selects_everything === CONT TestParsePrefixes/empty_prefix_entry === RUN TestSelectSources/by_name === CONT TestParsePrefixes/no_prefixes === PAUSE TestSelectSources/by_name === CONT TestSetRemoteAddressesKeepsStyle/block_style_leaves_prefixes_bare === RUN TestSelectSources/unknown_crawler === PAUSE TestSelectSources/unknown_crawler === CONT TestSelectSources/no_arguments_selects_everything === RUN TestSetRemoteAddresses/picks_the_right_rule_in_a_multi_rule_file === PAUSE TestSetRemoteAddresses/picks_the_right_rule_in_a_multi_rule_file === RUN TestSetRemoteAddresses/rule_is_missing === CONT TestDiff === PAUSE TestSetRemoteAddresses/rule_is_missing === RUN TestSetRemoteAddresses/rule_has_no_remote_addresses === PAUSE TestSetRemoteAddresses/rule_has_no_remote_addresses === RUN TestDiff/no_change === CONT TestSetRemoteAddresses/rule_has_no_remote_addresses === PAUSE TestDiff/no_change === RUN TestDiff/reordering_is_not_a_change === PAUSE TestDiff/reordering_is_not_a_change === RUN TestDiff/added_and_removed === CONT TestUpdateRejectsBadFeed === RUN TestUpdateRejectsBadFeed/server_error === PAUSE TestUpdateRejectsBadFeed/server_error === RUN TestUpdateRejectsBadFeed/empty_feed === PAUSE TestUpdateRejectsBadFeed/empty_feed === CONT TestUpdateRejectsBadFeed/server_error === CONT TestSourcesMatchDataFiles === RUN TestSourcesMatchDataFiles/applebot === PAUSE TestSourcesMatchDataFiles/applebot === RUN TestSourcesMatchDataFiles/bingbot === PAUSE TestSourcesMatchDataFiles/bingbot === RUN TestSourcesMatchDataFiles/commoncrawl === PAUSE TestSourcesMatchDataFiles/commoncrawl === CONT TestUpdateRejectsBadFeed/empty_feed === CONT TestParsePrefixes/ignores_unrelated_fields === CONT TestSetRemoteAddresses/rule_is_missing === CONT TestSetRemoteAddresses/block_style_rule === CONT TestParsePrefixes/garbage_prefix === CONT TestUpdate --- PASS: TestSetRemoteAddressesKeepsStyle (0.00s) --- PASS: TestSetRemoteAddressesKeepsStyle/flow_style_quotes_every_prefix (0.00s) --- PASS: TestSetRemoteAddressesKeepsStyle/block_style_leaves_prefixes_bare (0.00s) === CONT TestSelectSources/unknown_crawler === CONT TestSelectSources/by_name --- PASS: TestSelectSources (0.00s) --- PASS: TestSelectSources/no_arguments_selects_everything (0.00s) --- PASS: TestSelectSources/unknown_crawler (0.00s) --- PASS: TestSelectSources/by_name (0.00s) === CONT TestParsePrefixes/not_json --- PASS: TestParsePrefixes (0.00s) --- PASS: TestParsePrefixes/ipv4_and_ipv6 (0.00s) --- PASS: TestParsePrefixes/bare_address_is_not_a_prefix (0.00s) --- PASS: TestParsePrefixes/empty_prefix_entry (0.00s) --- PASS: TestParsePrefixes/no_prefixes (0.00s) --- PASS: TestParsePrefixes/ignores_unrelated_fields (0.00s) --- PASS: TestParsePrefixes/garbage_prefix (0.00s) --- PASS: TestParsePrefixes/not_json (0.00s) === CONT TestSetRemoteAddresses/picks_the_right_rule_in_a_multi_rule_file --- PASS: TestSetRemoteAddresses (0.00s) --- PASS: TestSetRemoteAddresses/rule_has_no_remote_addresses (0.00s) --- PASS: TestSetRemoteAddresses/rule_is_missing (0.00s) --- PASS: TestSetRemoteAddresses/block_style_rule (0.00s) --- PASS: TestSetRemoteAddresses/picks_the_right_rule_in_a_multi_rule_file (0.00s) === RUN TestUpdate/dry_run_leaves_the_file_alone === PAUSE TestDiff/added_and_removed === RUN TestDiff/first_run === PAUSE TestDiff/first_run === CONT TestDiff/no_change === CONT TestDiff/added_and_removed === RUN TestSourcesMatchDataFiles/duckduckbot === PAUSE TestSourcesMatchDataFiles/duckduckbot === CONT TestDiff/first_run === CONT TestDiff/reordering_is_not_a_change --- PASS: TestDiff (0.00s) --- PASS: TestDiff/no_change (0.00s) --- PASS: TestDiff/added_and_removed (0.00s) --- PASS: TestDiff/first_run (0.00s) --- PASS: TestDiff/reordering_is_not_a_change (0.00s) === RUN TestSourcesMatchDataFiles/googlebot === PAUSE TestSourcesMatchDataFiles/googlebot === RUN TestSourcesMatchDataFiles/mojeekbot === PAUSE TestSourcesMatchDataFiles/mojeekbot === RUN TestSourcesMatchDataFiles/openai-gptbot === PAUSE TestSourcesMatchDataFiles/openai-gptbot === RUN TestSourcesMatchDataFiles/openai-searchbot === PAUSE TestSourcesMatchDataFiles/openai-searchbot === RUN TestSourcesMatchDataFiles/perplexitybot === PAUSE TestSourcesMatchDataFiles/perplexitybot === RUN TestSourcesMatchDataFiles/qwantbot === PAUSE TestSourcesMatchDataFiles/qwantbot === CONT TestSourcesMatchDataFiles/applebot === CONT TestSourcesMatchDataFiles/mojeekbot === CONT TestSourcesMatchDataFiles/openai-searchbot === CONT TestSourcesMatchDataFiles/openai-gptbot === CONT TestSourcesMatchDataFiles/commoncrawl === CONT TestSourcesMatchDataFiles/duckduckbot === CONT TestSourcesMatchDataFiles/googlebot === CONT TestSourcesMatchDataFiles/bingbot === CONT TestSourcesMatchDataFiles/qwantbot === CONT TestSourcesMatchDataFiles/perplexitybot 2026/11/05 03:07:00 INFO IP ranges changed crawler=googlebot added=2 removed=1 total=2 === RUN TestUpdate/writes_the_new_prefixes --- PASS: TestUpdateRejectsBadFeed (0.00s) --- PASS: TestUpdateRejectsBadFeed/empty_feed (0.00s) --- PASS: TestUpdateRejectsBadFeed/server_error (0.00s) 2026/11/05 03:07:00 INFO IP ranges changed crawler=googlebot added=2 removed=1 total=2 2026/11/05 03:07:00 INFO wrote policy file crawler=googlebot file=/home/buildozer/aports/community/anubis/tmp/TestUpdate2203622759/001/googlebot.yaml --- PASS: TestUpdate (0.01s) --- PASS: TestUpdate/dry_run_leaves_the_file_alone (0.00s) --- PASS: TestUpdate/writes_the_new_prefixes (0.00s) --- PASS: TestSourcesMatchDataFiles (0.00s) --- PASS: TestSourcesMatchDataFiles/mojeekbot (0.00s) --- PASS: TestSourcesMatchDataFiles/commoncrawl (0.00s) --- PASS: TestSourcesMatchDataFiles/perplexitybot (0.00s) --- PASS: TestSourcesMatchDataFiles/applebot (0.00s) --- PASS: TestSourcesMatchDataFiles/qwantbot (0.00s) --- PASS: TestSourcesMatchDataFiles/openai-gptbot (0.00s) --- PASS: TestSourcesMatchDataFiles/openai-searchbot (0.00s) --- PASS: TestSourcesMatchDataFiles/bingbot (0.00s) --- PASS: TestSourcesMatchDataFiles/duckduckbot (0.00s) --- PASS: TestSourcesMatchDataFiles/googlebot (0.01s) PASS ok github.com/TecharoHQ/anubis/utils/cmd/botgenerate 0.013s ? github.com/TecharoHQ/anubis/utils/cmd/iplist2rule [no test files] ? github.com/TecharoHQ/anubis/utils/cmd/wazero-exec [no test files] === RUN TestVerificationLimit --- PASS: TestVerificationLimit (0.02s) === RUN TestAlgos === RUN TestAlgos/baseline/argon2id.wasm wasm_test.go:53: used 322 pages of wasm memory (21102592 bytes) === RUN TestAlgos/baseline/hashx.wasm wasm_test.go:53: used 18 pages of wasm memory (1179648 bytes) === RUN TestAlgos/baseline/sha256.wasm wasm_test.go:53: used 17 pages of wasm memory (1114112 bytes) === RUN TestAlgos/simd128/argon2id.wasm wasm_test.go:53: used 322 pages of wasm memory (21102592 bytes) === RUN TestAlgos/simd128/hashx.wasm wasm_test.go:53: used 18 pages of wasm memory (1179648 bytes) === RUN TestAlgos/simd128/sha256.wasm wasm_test.go:53: used 17 pages of wasm memory (1114112 bytes) --- PASS: TestAlgos (2.06s) --- PASS: TestAlgos/baseline/argon2id.wasm (0.37s) --- PASS: TestAlgos/baseline/hashx.wasm (0.03s) --- PASS: TestAlgos/baseline/sha256.wasm (0.01s) --- PASS: TestAlgos/simd128/argon2id.wasm (1.58s) --- PASS: TestAlgos/simd128/hashx.wasm (0.06s) --- PASS: TestAlgos/simd128/sha256.wasm (0.01s) === RUN TestRunnerConcurrentVerify --- PASS: TestRunnerConcurrentVerify (0.05s) === RUN TestRunnerDataHardening === RUN TestRunnerDataHardening/argon2id.wasm === RUN TestRunnerDataHardening/argon2id.wasm/simple_okay === RUN TestRunnerDataHardening/argon2id.wasm/not_enough === RUN TestRunnerDataHardening/argon2id.wasm/too_much === RUN TestRunnerDataHardening/hashx.wasm === RUN TestRunnerDataHardening/hashx.wasm/simple_okay === RUN TestRunnerDataHardening/hashx.wasm/not_enough === RUN TestRunnerDataHardening/hashx.wasm/too_much === RUN TestRunnerDataHardening/sha256.wasm === RUN TestRunnerDataHardening/sha256.wasm/simple_okay === RUN TestRunnerDataHardening/sha256.wasm/not_enough === RUN TestRunnerDataHardening/sha256.wasm/too_much --- PASS: TestRunnerDataHardening (0.41s) --- PASS: TestRunnerDataHardening/argon2id.wasm (0.14s) --- PASS: TestRunnerDataHardening/argon2id.wasm/simple_okay (0.05s) --- PASS: TestRunnerDataHardening/argon2id.wasm/not_enough (0.05s) --- PASS: TestRunnerDataHardening/argon2id.wasm/too_much (0.05s) --- PASS: TestRunnerDataHardening/hashx.wasm (0.20s) --- PASS: TestRunnerDataHardening/hashx.wasm/simple_okay (0.07s) --- PASS: TestRunnerDataHardening/hashx.wasm/not_enough (0.06s) --- PASS: TestRunnerDataHardening/hashx.wasm/too_much (0.07s) --- PASS: TestRunnerDataHardening/sha256.wasm (0.07s) --- PASS: TestRunnerDataHardening/sha256.wasm/simple_okay (0.02s) --- PASS: TestRunnerDataHardening/sha256.wasm/not_enough (0.02s) --- PASS: TestRunnerDataHardening/sha256.wasm/too_much (0.02s) PASS ok github.com/TecharoHQ/anubis/wasm 2.566s === RUN TestBasePrefixInLinks === RUN TestBasePrefixInLinks/no_prefix === RUN TestBasePrefixInLinks/with_rififi_prefix === RUN TestBasePrefixInLinks/with_myapp_prefix --- PASS: TestBasePrefixInLinks (0.01s) --- PASS: TestBasePrefixInLinks/no_prefix (0.01s) --- PASS: TestBasePrefixInLinks/with_rififi_prefix (0.00s) --- PASS: TestBasePrefixInLinks/with_myapp_prefix (0.00s) === RUN TestHoneypotLinkEscapesHref --- PASS: TestHoneypotLinkEscapesHref (0.00s) PASS ok github.com/TecharoHQ/anubis/web 0.025s ? github.com/TecharoHQ/anubis/xess [no test files] >>> anubis: Entering fakeroot... >>> anubis-doc*: Running split function doc... 'usr/share/licenses' -> '/home/buildozer/aports/community/anubis/pkg/anubis-doc/usr/share/licenses' >>> anubis-doc*: Preparing subpackage anubis-doc... >>> anubis-doc*: Running postcheck for anubis-doc >>> anubis-openrc*: Running split function openrc... 'etc/conf.d' -> '/home/buildozer/aports/community/anubis/pkg/anubis-openrc/etc/conf.d' 'etc/init.d' -> '/home/buildozer/aports/community/anubis/pkg/anubis-openrc/etc/init.d' >>> anubis-openrc*: Preparing subpackage anubis-openrc... >>> anubis-openrc*: Running postcheck for anubis-openrc >>> WARNING: anubis-openrc*: /etc/conf.d/anubis should not have executable bit set >>> anubis*: Running postcheck for anubis >>> anubis*: Preparing package anubis... >>> anubis*: Stripping binaries >>> anubis*: Scanning shared objects >>> anubis*: Tracing dependencies... so:libc.musl-x86_64.so.1 >>> anubis*: Package size: 49.0 MB >>> anubis*: Compressing data... >>> anubis*: Create checksum... >>> anubis*: Create anubis-1.28.2-r0.apk >>> anubis-doc*: Tracing dependencies... >>> anubis-doc*: Package size: 1.0 KB >>> anubis-doc*: Compressing data... >>> anubis-doc*: Create checksum... >>> anubis-doc*: Create anubis-doc-1.28.2-r0.apk >>> anubis-openrc*: Tracing dependencies... >>> anubis-openrc*: Package size: 294.0 B >>> anubis-openrc*: Compressing data... >>> anubis-openrc*: Create checksum... >>> anubis-openrc*: Create anubis-openrc-1.28.2-r0.apk >>> anubis: Build complete at Thu, 05 Nov 2026 03:07:16 +0000 elapsed time 0h 0m 45s >>> anubis: Cleaning up srcdir >>> anubis: Cleaning up pkgdir >>> anubis: Cleaning up tmpdir >>> anubis: Uninstalling dependencies... (1/2) Purging .makedepends-anubis (20261105.030632) (2/2) Purging go (1.27.3-r0) Executing busybox-1.38.0-r8.trigger OK: 441.7 MiB in 105 packages >>> anubis: Updating the community/x86_64 repository index... >>> anubis: Signing the index...