>>> anubis: Building testing/anubis 1.19.1-r0 (using abuild 3.15.0-r0) started Mon, 02 Jun 2025 10:37:07 +0000 >>> anubis: Validating /home/buildozer/aports/testing/anubis/APKBUILD... >>> anubis: Analyzing dependencies... >>> anubis: Installing for build: build-base go (1/2) Installing go (1.24.3-r1) (2/2) Installing .makedepends-anubis (20250602.103708) Executing busybox-1.37.0-r18.trigger OK: 562 MiB in 110 packages >>> anubis: Cleaning up srcdir >>> anubis: Cleaning up pkgdir >>> anubis: Cleaning up tmpdir >>> anubis: Fetching https://distfiles.alpinelinux.org/distfiles/edge//anubis-src-vendor-npm-1.19.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 >>> anubis: Fetching https://github.com/TecharoHQ/anubis/releases/download/v1.19.1/anubis-src-vendor-npm-1.19.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 80 9.9M 80 8202k 0 0 7462k 0 0:00:01 0:00:01 --:--:-- 7462k 100 9.9M 100 9.9M 0 0 9100k 0 0:00:01 0:00:01 --:--:-- 112M >>> anubis: Fetching https://distfiles.alpinelinux.org/distfiles/edge//anubis-src-vendor-npm-1.19.1.tar.gz >>> anubis: Checking sha512sums... anubis-src-vendor-npm-1.19.1.tar.gz: OK anubis.initd: OK anubis.confd: OK >>> anubis: Unpacking /var/cache/distfiles/edge/anubis-src-vendor-npm-1.19.1.tar.gz... ? github.com/TecharoHQ/anubis [no test files] ? github.com/TecharoHQ/anubis/cmd/anubis [no test files] ? github.com/TecharoHQ/anubis/cmd/containerbuild [no test files] ? github.com/TecharoHQ/anubis/data [no test files] === RUN TestImpl --- PASS: TestImpl (0.00s) === RUN TestCleanup --- PASS: TestCleanup (0.00s) PASS ok github.com/TecharoHQ/anubis/decaymap 0.009s === RUN TestErrorLogFilter --- PASS: TestErrorLogFilter (0.00s) === RUN TestXForwardedForUpdateIgnoreUnix --- PASS: TestXForwardedForUpdateIgnoreUnix (0.00s) === RUN TestXForwardedForUpdateAddToChain --- PASS: TestXForwardedForUpdateAddToChain (0.00s) === RUN TestComputeXFFHeader === RUN TestComputeXFFHeader/StripPrivate === 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/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) PASS ok github.com/TecharoHQ/anubis/internal 0.011s === 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.41s) PASS ok github.com/TecharoHQ/anubis/internal/dnsbl 0.420s === RUN TestCheckCache --- PASS: TestCheckCache (0.00s) === RUN TestGetOGTags --- PASS: TestGetOGTags (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.08s) === 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 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 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) PASS ok github.com/TecharoHQ/anubis/internal/ogtags 0.195s === RUN TestPlaywrightBrowser playwright_test.go:222: 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:302: NOTE(Xe)\ these tests require HTTPS support in #364 --- SKIP: TestPlaywrightWithBasePrefix (0.00s) PASS ok github.com/TecharoHQ/anubis/internal/test 0.006s === RUN TestLoadPolicies === RUN TestLoadPolicies/botPolicies.json === RUN TestLoadPolicies/botPolicies.yaml --- PASS: TestLoadPolicies (0.02s) --- PASS: TestLoadPolicies/botPolicies.json (0.01s) --- PASS: TestLoadPolicies/botPolicies.yaml (0.01s) === RUN TestCVE2025_24369 {"time":"2025-06-02T10:37:20.906096453Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:20.910079065Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"c614443fe7175e5639d9c287cb948ad1b0b811f0d46933b809e6623edd6df4e5","rules":{"algorithm":"fast","difficulty":4,"report_as":4},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:36001/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c614443fe7175e5639d9c287cb948ad1b0b811f0d46933b809e6623edd6df4e5; Path=/; Expires=Mon, 02 Jun 2025 10:37:20 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:36001/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=3530cad9fc7cf0773ef3cd2d2f9564b1a28bd16eb3bf8e1d21c248c257ccbe4a anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c614443fe7175e5639d9c287cb948ad1b0b811f0d46933b809e6623edd6df4e5; Path=/; Expires=Mon, 02 Jun 2025 10:37:20 GMT; SameSite=Lax {"time":"2025-06-02T10:37:20.910426253Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:20.910461409Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":413},"msg":"difficulty check failed","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"response":"3530cad9fc7cf0773ef3cd2d2f9564b1a28bd16eb3bf8e1d21c248c257ccbe4a","difficulty":4} anubis_test.go:138: set cookie: http://127.0.0.1:36001/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=3530cad9fc7cf0773ef3cd2d2f9564b1a28bd16eb3bf8e1d21c248c257ccbe4a -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:36001/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=3530cad9fc7cf0773ef3cd2d2f9564b1a28bd16eb3bf8e1d21c248c257ccbe4a -> techaro.lol-anubis-auth=; Path=/; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax --- PASS: TestCVE2025_24369 (0.01s) === RUN TestCookieCustomExpiration {"time":"2025-06-02T10:37:20.920613834Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:20.922165253Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"dfc107d180f053d9e93913d850c01097ef88250ab359aca6e753ccea193981b4","rules":{"algorithm":"fast","difficulty":0,"report_as":0},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:37663/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=dfc107d180f053d9e93913d850c01097ef88250ab359aca6e753ccea193981b4; Path=/; Expires=Mon, 02 Jun 2025 10:47:20 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:37663/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=cb74441edf2e45868b21c25d063694f507568da4fefb4726463d5e8732d3e9ae anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=dfc107d180f053d9e93913d850c01097ef88250ab359aca6e753ccea193981b4; Path=/; Expires=Mon, 02 Jun 2025 10:47:20 GMT; SameSite=Lax {"time":"2025-06-02T10:37:20.922385402Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:20.922501962Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:37663/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=cb74441edf2e45868b21c25d063694f507568da4fefb4726463d5e8732d3e9ae -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:37663/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=cb74441edf2e45868b21c25d063694f507568da4fefb4726463d5e8732d3e9ae -> techaro.lol-anubis-auth=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImRmYzEwN2QxODBmMDUzZDllOTM5MTNkODUwYzAxMDk3ZWY4ODI1MGFiMzU5YWNhNmU3NTNjY2VhMTkzOTgxYjQiLCJleHAiOjE3NDg4NjEyNDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiY2I3NDQ0MWVkZjJlNDU4NjhiMjFjMjVkMDYzNjk0ZjUwNzU2OGRhNGZlZmI0NzI2NDYzZDVlODczMmQzZTlhZSJ9.NHp-OyB9sIqpSviNtAmE3CT6acuf09CiALuj-skS2jZcwiUIoriQ6XSHgIoyXdcxYCzfu4hPXEubN5PxD2wkCQ; Path=/; Expires=Mon, 02 Jun 2025 10:47:20 GMT; SameSite=Lax anubis_test.go:228: &http.Cookie{Name:"techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work", Value:"", Quoted:false, Path:"/", Domain:"", Expires:time.Date(2025, time.June, 2, 10, 36, 20, 0, time.UTC), RawExpires:"Mon, 02 Jun 2025 10:36:20 GMT", MaxAge:-1, Secure:false, HttpOnly:false, SameSite:2, Partitioned:false, Raw:"techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax", Unparsed:[]string(nil)} anubis_test.go:228: &http.Cookie{Name:"techaro.lol-anubis-auth", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImRmYzEwN2QxODBmMDUzZDllOTM5MTNkODUwYzAxMDk3ZWY4ODI1MGFiMzU5YWNhNmU3NTNjY2VhMTkzOTgxYjQiLCJleHAiOjE3NDg4NjEyNDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiY2I3NDQ0MWVkZjJlNDU4NjhiMjFjMjVkMDYzNjk0ZjUwNzU2OGRhNGZlZmI0NzI2NDYzZDVlODczMmQzZTlhZSJ9.NHp-OyB9sIqpSviNtAmE3CT6acuf09CiALuj-skS2jZcwiUIoriQ6XSHgIoyXdcxYCzfu4hPXEubN5PxD2wkCQ", Quoted:false, Path:"/", Domain:"", Expires:time.Date(2025, time.June, 2, 10, 47, 20, 0, time.UTC), RawExpires:"Mon, 02 Jun 2025 10:47:20 GMT", MaxAge:0, Secure:false, HttpOnly:false, SameSite:2, Partitioned:false, Raw:"techaro.lol-anubis-auth=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImRmYzEwN2QxODBmMDUzZDllOTM5MTNkODUwYzAxMDk3ZWY4ODI1MGFiMzU5YWNhNmU3NTNjY2VhMTkzOTgxYjQiLCJleHAiOjE3NDg4NjEyNDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiY2I3NDQ0MWVkZjJlNDU4NjhiMjFjMjVkMDYzNjk0ZjUwNzU2OGRhNGZlZmI0NzI2NDYzZDVlODczMmQzZTlhZSJ9.NHp-OyB9sIqpSviNtAmE3CT6acuf09CiALuj-skS2jZcwiUIoriQ6XSHgIoyXdcxYCzfu4hPXEubN5PxD2wkCQ; Path=/; Expires=Mon, 02 Jun 2025 10:47:20 GMT; SameSite=Lax", Unparsed:[]string(nil)} --- PASS: TestCookieCustomExpiration (0.01s) === RUN TestCookieSettings {"time":"2025-06-02T10:37:20.932342481Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:20.932710185Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"d976616f5bea2c54cf1a473f3f64aa63230ec670fccaef5bebdf945a39298c20","rules":{"algorithm":"fast","difficulty":0,"report_as":0},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:42429/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=d976616f5bea2c54cf1a473f3f64aa63230ec670fccaef5bebdf945a39298c20; Path=/; Domain=127.0.0.1; Expires=Mon, 09 Jun 2025 10:37:20 GMT; SameSite=Lax; Partitioned anubis_test.go:124: requested cookies for http://127.0.0.1:42429/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=07b4234cbe5965cb1693f15f9e5792061340376a4c74da3961068e3cd1a6e0ac anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=d976616f5bea2c54cf1a473f3f64aa63230ec670fccaef5bebdf945a39298c20; Path=/; Domain=127.0.0.1; Expires=Mon, 09 Jun 2025 10:37:20 GMT; SameSite=Lax; Partitioned {"time":"2025-06-02T10:37:20.932925737Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:20.933423496Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:42429/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=07b4234cbe5965cb1693f15f9e5792061340376a4c74da3961068e3cd1a6e0ac -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax; Partitioned anubis_test.go:138: set cookie: http://127.0.0.1:42429/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=07b4234cbe5965cb1693f15f9e5792061340376a4c74da3961068e3cd1a6e0ac -> techaro.lol-anubis-auth-for-127.0.0.1=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImQ5NzY2MTZmNWJlYTJjNTRjZjFhNDczZjNmNjRhYTYzMjMwZWM2NzBmY2NhZWY1YmViZGY5NDVhMzkyOThjMjAiLCJleHAiOjE3NDk0NjU0NDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiMDdiNDIzNGNiZTU5NjVjYjE2OTNmMTVmOWU1NzkyMDYxMzQwMzc2YTRjNzRkYTM5NjEwNjhlM2NkMWE2ZTBhYyJ9.49QSPZAQHd2ROA7KBpzmbEt-of6zrvzRDTagEJOGqwxp1iWHedSWImw-beGx7UuVj6SMJx-_npfTTNa1eaRdAA; Path=/; Domain=127.0.0.1; Expires=Mon, 09 Jun 2025 10:37:20 GMT; SameSite=Lax; Partitioned anubis_test.go:280: &http.Cookie{Name:"techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work", Value:"", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2025, time.June, 2, 10, 36, 20, 0, time.UTC), RawExpires:"Mon, 02 Jun 2025 10:36:20 GMT", MaxAge:-1, Secure:false, HttpOnly:false, SameSite:2, Partitioned:true, Raw:"techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:36:20 GMT; Max-Age=0; SameSite=Lax; Partitioned", Unparsed:[]string(nil)} anubis_test.go:280: &http.Cookie{Name:"techaro.lol-anubis-auth-for-127.0.0.1", Value:"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImQ5NzY2MTZmNWJlYTJjNTRjZjFhNDczZjNmNjRhYTYzMjMwZWM2NzBmY2NhZWY1YmViZGY5NDVhMzkyOThjMjAiLCJleHAiOjE3NDk0NjU0NDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiMDdiNDIzNGNiZTU5NjVjYjE2OTNmMTVmOWU1NzkyMDYxMzQwMzc2YTRjNzRkYTM5NjEwNjhlM2NkMWE2ZTBhYyJ9.49QSPZAQHd2ROA7KBpzmbEt-of6zrvzRDTagEJOGqwxp1iWHedSWImw-beGx7UuVj6SMJx-_npfTTNa1eaRdAA", Quoted:false, Path:"/", Domain:"127.0.0.1", Expires:time.Date(2025, time.June, 9, 10, 37, 20, 0, time.UTC), RawExpires:"Mon, 09 Jun 2025 10:37:20 GMT", MaxAge:0, Secure:false, HttpOnly:false, SameSite:2, Partitioned:true, Raw:"techaro.lol-anubis-auth-for-127.0.0.1=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImQ5NzY2MTZmNWJlYTJjNTRjZjFhNDczZjNmNjRhYTYzMjMwZWM2NzBmY2NhZWY1YmViZGY5NDVhMzkyOThjMjAiLCJleHAiOjE3NDk0NjU0NDAsImlhdCI6MTc0ODg2MDY0MCwibmJmIjoxNzQ4ODYwNTgwLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiMDdiNDIzNGNiZTU5NjVjYjE2OTNmMTVmOWU1NzkyMDYxMzQwMzc2YTRjNzRkYTM5NjEwNjhlM2NkMWE2ZTBhYyJ9.49QSPZAQHd2ROA7KBpzmbEt-of6zrvzRDTagEJOGqwxp1iWHedSWImw-beGx7UuVj6SMJx-_npfTTNa1eaRdAA; Path=/; Domain=127.0.0.1; Expires=Mon, 09 Jun 2025 10:37:20 GMT; SameSite=Lax; Partitioned", Unparsed:[]string(nil)} --- PASS: TestCookieSettings (0.01s) === RUN TestCheckDefaultDifficultyMatchesPolicy === RUN TestCheckDefaultDifficultyMatchesPolicy/1 {"time":"2025-06-02T10:37:20.943556443Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/2 {"time":"2025-06-02T10:37:20.953590274Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/3 {"time":"2025-06-02T10:37:20.963442008Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/4 {"time":"2025-06-02T10:37:20.973560655Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/5 {"time":"2025-06-02T10:37:20.984079148Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/6 {"time":"2025-06-02T10:37:20.994713572Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/7 {"time":"2025-06-02T10:37:21.004245258Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/8 {"time":"2025-06-02T10:37:21.014214004Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCheckDefaultDifficultyMatchesPolicy/9 {"time":"2025-06-02T10:37:21.023929137Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} --- PASS: TestCheckDefaultDifficultyMatchesPolicy (0.09s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/1 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/2 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/3 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/4 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/5 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/6 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/7 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/8 (0.01s) --- PASS: TestCheckDefaultDifficultyMatchesPolicy/9 (0.01s) === RUN TestBasePrefix === RUN TestBasePrefix/no_prefix {"time":"2025-06-02T10:37:21.033187039Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:21.033963168Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"bfe0430a3313bb1eaae8b5eeb2e42511d22da62d3eb4ac28e27c4d04d62d42e7","rules":{"algorithm":"fast","difficulty":4,"report_as":4},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:44649/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=bfe0430a3313bb1eaae8b5eeb2e42511d22da62d3eb4ac28e27c4d04d62d42e7; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:44649/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=70736&redir=%2F&response=00001672c26aa0ad1e57e6061649b6d320a88b85e83aee58fb7499c0748aa91d anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=bfe0430a3313bb1eaae8b5eeb2e42511d22da62d3eb4ac28e27c4d04d62d42e7; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax {"time":"2025-06-02T10:37:21.096703823Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:21.096865349Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:44649/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=70736&redir=%2F&response=00001672c26aa0ad1e57e6061649b6d320a88b85e83aee58fb7499c0748aa91d -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:21 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:44649/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=70736&redir=%2F&response=00001672c26aa0ad1e57e6061649b6d320a88b85e83aee58fb7499c0748aa91d -> techaro.lol-anubis-auth=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImJmZTA0MzBhMzMxM2JiMWVhYWU4YjVlZWIyZTQyNTExZDIyZGE2MmQzZWI0YWMyOGUyN2M0ZDA0ZDYyZDQyZTciLCJleHAiOjE3NDg4NjA2NDEsImlhdCI6MTc0ODg2MDY0MSwibmJmIjoxNzQ4ODYwNTgxLCJub25jZSI6IjcwNzM2IiwicG9saWN5UnVsZSI6IjgxYmIzZGM3MzZmNDJjNTk4NjMyZjE4ZDk0NTY3ZmE1OGY0ZjczNzg4NTYwYzRkNjhjODJkMzQ0MWYyNjQ2YjgiLCJyZXNwb25zZSI6IjAwMDAxNjcyYzI2YWEwYWQxZTU3ZTYwNjE2NDliNmQzMjBhODhiODVlODNhZWU1OGZiNzQ5OWMwNzQ4YWE5MWQifQ.2_5gCRmPt7O_A2Vw3G5BmBJV22pYjnEOi64xY4cpuX_6e4lJ3i1lKgR6v2UADYuy1ge2UVd-CTirOHFdwNYJBw; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax === RUN TestBasePrefix/with_prefix {"time":"2025-06-02T10:37:21.107407048Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:21.107922253Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"a6be1fdcbb7e7438aa4ba4e70b99dc8ac2a72f3322dccb2309a500f14747fd88","rules":{"algorithm":"fast","difficulty":4,"report_as":4},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:36075/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=a6be1fdcbb7e7438aa4ba4e70b99dc8ac2a72f3322dccb2309a500f14747fd88; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:36075/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=20348&redir=%2F&response=0000894a8519df91e2d98887dc248fc69ed999f12bbbc5ad084b2bda041c252f anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=a6be1fdcbb7e7438aa4ba4e70b99dc8ac2a72f3322dccb2309a500f14747fd88; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax {"time":"2025-06-02T10:37:21.125888904Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:21.126000934Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:36075/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=20348&redir=%2F&response=0000894a8519df91e2d98887dc248fc69ed999f12bbbc5ad084b2bda041c252f -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:21 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:36075/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=20348&redir=%2F&response=0000894a8519df91e2d98887dc248fc69ed999f12bbbc5ad084b2bda041c252f -> techaro.lol-anubis-auth=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImE2YmUxZmRjYmI3ZTc0MzhhYTRiYTRlNzBiOTlkYzhhYzJhNzJmMzMyMmRjY2IyMzA5YTUwMGYxNDc0N2ZkODgiLCJleHAiOjE3NDg4NjA2NDEsImlhdCI6MTc0ODg2MDY0MSwibmJmIjoxNzQ4ODYwNTgxLCJub25jZSI6IjIwMzQ4IiwicG9saWN5UnVsZSI6IjgxYmIzZGM3MzZmNDJjNTk4NjMyZjE4ZDk0NTY3ZmE1OGY0ZjczNzg4NTYwYzRkNjhjODJkMzQ0MWYyNjQ2YjgiLCJyZXNwb25zZSI6IjAwMDA4OTRhODUxOWRmOTFlMmQ5ODg4N2RjMjQ4ZmM2OWVkOTk5ZjEyYmJiYzVhZDA4NGIyYmRhMDQxYzI1MmYifQ.db27HSn13CzMaoI7Ak5WceOvr84RazVWSI3lP4QkYALtbj7ZKqvBuSqJ4fWnhq--m9jQDrdpLCNdQb4UrI7sAw; Path=/myapp/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax === RUN TestBasePrefix/with_prefix_and_trailing_slash {"time":"2025-06-02T10:37:21.136687667Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:21.137181433Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"c03d10ff066519f4e6c4bc260b2e1707192455192473f0c14bf33fccede038a0","rules":{"algorithm":"fast","difficulty":4,"report_as":4},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:45563/myapp/.within.website/x/cmd/anubis/api/make-challenge?redir=%2Fmyapp%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c03d10ff066519f4e6c4bc260b2e1707192455192473f0c14bf33fccede038a0; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:45563/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=2922&redir=%2F&response=0000ee014068ec1fc96560623c152fa0044239f3546f44a7b6e0068e2c9cb9b2 anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c03d10ff066519f4e6c4bc260b2e1707192455192473f0c14bf33fccede038a0; Path=/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax {"time":"2025-06-02T10:37:21.140489645Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:21.14062136Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:45563/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=2922&redir=%2F&response=0000ee014068ec1fc96560623c152fa0044239f3546f44a7b6e0068e2c9cb9b2 -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Expires=Mon, 02 Jun 2025 10:36:21 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:45563/myapp/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=2922&redir=%2F&response=0000ee014068ec1fc96560623c152fa0044239f3546f44a7b6e0068e2c9cb9b2 -> techaro.lol-anubis-auth=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImMwM2QxMGZmMDY2NTE5ZjRlNmM0YmMyNjBiMmUxNzA3MTkyNDU1MTkyNDczZjBjMTRiZjMzZmNjZWRlMDM4YTAiLCJleHAiOjE3NDg4NjA2NDEsImlhdCI6MTc0ODg2MDY0MSwibmJmIjoxNzQ4ODYwNTgxLCJub25jZSI6IjI5MjIiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiMDAwMGVlMDE0MDY4ZWMxZmM5NjU2MDYyM2MxNTJmYTAwNDQyMzlmMzU0NmY0NGE3YjZlMDA2OGUyYzljYjliMiJ9.zUwKDDf2aQs3TQq7tOi4UqpVkxjkuOSGNpTLycnytT3pTzW1XaHzuzXSDWwb4xYlNNfSm6e9dbwTRLvP1xuLDg; Path=/myapp/; Expires=Mon, 02 Jun 2025 10:37:21 GMT; SameSite=Lax --- PASS: TestBasePrefix (0.12s) --- PASS: TestBasePrefix/no_prefix (0.07s) --- PASS: TestBasePrefix/with_prefix (0.03s) --- PASS: TestBasePrefix/with_prefix_and_trailing_slash (0.01s) === RUN TestCustomStatusCodes {"time":"2025-06-02T10:37:21.140944799Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCustomStatusCodes/ALLOW {"time":"2025-06-02T10:37:21.14129434Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":206},"msg":"allowing traffic to origin (explicit)","user_agent":"ALLOW","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} === NAME TestCustomStatusCodes anubis_test.go:507: ALLOW === RUN TestCustomStatusCodes/CHALLENGE {"time":"2025-06-02T10:37:21.141521844Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":223},"msg":"challenge requested","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE"}} {"time":"2025-06-02T10:37:21.141532997Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).maybeReverseProxy","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":139},"msg":"cookie not found","user_agent":"CHALLENGE","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/challenge","rule":"CHALLENGE"},"path":"/"} === RUN TestCustomStatusCodes/DENY {"time":"2025-06-02T10:37:21.142821234Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":211},"msg":"explicit deny","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY"}} {"time":"2025-06-02T10:37:21.142839699Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).checkRules","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":219},"msg":"rule hash","user_agent":"DENY","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"bot/deny","rule":"DENY"},"hash":"6da73dd91361a3d947b37741c05113d61907c7b45cafdb252effa62c2b6c0f7d"} --- PASS: TestCustomStatusCodes (0.00s) --- PASS: TestCustomStatusCodes/ALLOW (0.00s) --- PASS: TestCustomStatusCodes/CHALLENGE (0.00s) --- PASS: TestCustomStatusCodes/DENY (0.00s) === RUN TestCloudflareWorkersRule === RUN TestCloudflareWorkersRule/cel {"time":"2025-06-02T10:37:21.143303722Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCloudflareWorkersRule/cel/with-cf-worker-header === RUN TestCloudflareWorkersRule/cel/no-cf-worker-header === RUN TestCloudflareWorkersRule/header {"time":"2025-06-02T10:37:21.143606253Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} === RUN TestCloudflareWorkersRule/header/with-cf-worker-header === RUN TestCloudflareWorkersRule/header/no-cf-worker-header --- PASS: TestCloudflareWorkersRule (0.00s) --- PASS: TestCloudflareWorkersRule/cel (0.00s) --- PASS: TestCloudflareWorkersRule/cel/with-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/cel/no-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/header (0.00s) --- PASS: TestCloudflareWorkersRule/header/with-cf-worker-header (0.00s) --- PASS: TestCloudflareWorkersRule/header/no-cf-worker-header (0.00s) === RUN TestRuleChange {"time":"2025-06-02T10:37:21.143931662Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} {"time":"2025-06-02T10:37:21.144223278Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).MakeChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":310},"msg":"made challenge","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"challenge":"c985f37e0c8ebf49f01fa73424ad597581e18e9ebebeabbda927349c1d1b4194","rules":{"algorithm":"fast","difficulty":0,"report_as":0},"cr":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:35683/.within.website/x/cmd/anubis/api/make-challenge?redir=%2F -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c985f37e0c8ebf49f01fa73424ad597581e18e9ebebeabbda927349c1d1b4194; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:47:21 GMT; SameSite=Lax anubis_test.go:124: requested cookies for http://127.0.0.1:35683/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=ef34d7777b495c281b7039fd8eb91ea55d2190533d624604245093b299472c22 anubis_test.go:127: get cookie: <- techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=c985f37e0c8ebf49f01fa73424ad597581e18e9ebebeabbda927349c1d1b4194; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:47:21 GMT; SameSite=Lax {"time":"2025-06-02T10:37:21.144405605Z","level":"INFO","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":367},"msg":"challenge took","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"},"elapsedTime":420} {"time":"2025-06-02T10:37:21.144507359Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.(*Server).PassChallenge","file":"github.com/TecharoHQ/anubis/lib/anubis.go","line":437},"msg":"challenge passed, redirecting to app","user_agent":"Go-http-client/1.1","accept_language":"","priority":"","x-forwarded-for":"","x-real-ip":"127.0.0.1","check_result":{"name":"default/allow","rule":"ALLOW"}} anubis_test.go:138: set cookie: http://127.0.0.1:35683/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=ef34d7777b495c281b7039fd8eb91ea55d2190533d624604245093b299472c22 -> techaro.lol-anubis-cookie-test-if-you-block-this-anubis-wont-work=; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:36:21 GMT; Max-Age=0; SameSite=Lax anubis_test.go:138: set cookie: http://127.0.0.1:35683/.within.website/x/cmd/anubis/api/pass-challenge?elapsedTime=420&nonce=0&redir=%2F&response=ef34d7777b495c281b7039fd8eb91ea55d2190533d624604245093b299472c22 -> techaro.lol-anubis-auth-for-127.0.0.1=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhY3Rpb24iOiJBTExPVyIsImNoYWxsZW5nZSI6ImM5ODVmMzdlMGM4ZWJmNDlmMDFmYTczNDI0YWQ1OTc1ODFlMThlOWViZWJlYWJiZGE5MjczNDljMWQxYjQxOTQiLCJleHAiOjE3NDg4NjEyNDEsImlhdCI6MTc0ODg2MDY0MSwibmJmIjoxNzQ4ODYwNTgxLCJub25jZSI6IjAiLCJwb2xpY3lSdWxlIjoiODFiYjNkYzczNmY0MmM1OTg2MzJmMThkOTQ1NjdmYTU4ZjRmNzM3ODg1NjBjNGQ2OGM4MmQzNDQxZjI2NDZiOCIsInJlc3BvbnNlIjoiZWYzNGQ3Nzc3YjQ5NWMyODFiNzAzOWZkOGViOTFlYTU1ZDIxOTA1MzNkNjI0NjA0MjQ1MDkzYjI5OTQ3MmMyMiJ9.biUzj5JMxxJIOZuwCdqC9lcwfCgJQOhvTIrDknRHy6kAMJk7RO-sCfo-YYg77-mRNWRAvQkL5aSyg1ygGkqeDw; Path=/; Domain=127.0.0.1; Expires=Mon, 02 Jun 2025 10:47:21 GMT; SameSite=Lax --- PASS: TestRuleChange (0.00s) === RUN TestClearCookie {"time":"2025-06-02T10:37:21.144638162Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} --- PASS: TestClearCookie (0.00s) === RUN TestClearCookieWithDomain {"time":"2025-06-02T10:37:21.144814253Z","level":"DEBUG","source":{"function":"github.com/TecharoHQ/anubis/lib.New","file":"github.com/TecharoHQ/anubis/lib/config.go","line":74},"msg":"opts.PrivateKey not set, generating a new one"} --- PASS: TestClearCookieWithDomain (0.00s) PASS ok github.com/TecharoHQ/anubis/lib 0.280s === RUN TestRemoteAddrChecker === RUN TestRemoteAddrChecker/match_ipv4 === 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_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 TestDefaultPolicyMustParse --- PASS: TestDefaultPolicyMustParse (0.01s) === RUN TestGoodConfigs === RUN TestGoodConfigs/allow_everyone.json === RUN TestGoodConfigs/allow_everyone.yaml === RUN TestGoodConfigs/block_cf_workers.json === RUN TestGoodConfigs/block_cf_workers.yaml === RUN TestGoodConfigs/challengemozilla.json === RUN TestGoodConfigs/challengemozilla.yaml === RUN TestGoodConfigs/entropy.yaml === RUN TestGoodConfigs/everything_blocked.json === RUN TestGoodConfigs/everything_blocked.yaml === RUN TestGoodConfigs/git_client.json === RUN TestGoodConfigs/git_client.yaml === RUN TestGoodConfigs/import_filesystem.json === RUN TestGoodConfigs/import_filesystem.yaml === RUN TestGoodConfigs/import_keep_internet_working.json === RUN TestGoodConfigs/import_keep_internet_working.yaml === RUN TestGoodConfigs/old_xesite.json === RUN TestGoodConfigs/status-codes-paranoid.json === RUN TestGoodConfigs/status-codes-paranoid.yaml === RUN TestGoodConfigs/status-codes-rfc.json === RUN TestGoodConfigs/status-codes-rfc.yaml --- PASS: TestGoodConfigs (0.01s) --- PASS: TestGoodConfigs/allow_everyone.json (0.00s) --- PASS: TestGoodConfigs/allow_everyone.yaml (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.json (0.00s) --- PASS: TestGoodConfigs/block_cf_workers.yaml (0.00s) --- PASS: TestGoodConfigs/challengemozilla.json (0.00s) --- PASS: TestGoodConfigs/challengemozilla.yaml (0.00s) --- PASS: TestGoodConfigs/entropy.yaml (0.00s) --- PASS: TestGoodConfigs/everything_blocked.json (0.00s) --- PASS: TestGoodConfigs/everything_blocked.yaml (0.00s) --- PASS: TestGoodConfigs/git_client.json (0.00s) --- PASS: TestGoodConfigs/git_client.yaml (0.00s) --- PASS: TestGoodConfigs/import_filesystem.json (0.00s) --- PASS: TestGoodConfigs/import_filesystem.yaml (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.json (0.00s) --- PASS: TestGoodConfigs/import_keep_internet_working.yaml (0.00s) --- PASS: TestGoodConfigs/old_xesite.json (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.json (0.00s) --- PASS: TestGoodConfigs/status-codes-paranoid.yaml (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.json (0.00s) --- PASS: TestGoodConfigs/status-codes-rfc.yaml (0.00s) === RUN TestBadConfigs === RUN TestBadConfigs/badregexes.json policy_test.go:64: config is not valid: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` config: bot entry for "headers-bad" is not valid: config.Bot: must set either user_agent_regex, path_regex, headers_regex, or remote_addresses === RUN TestBadConfigs/badregexes.yaml policy_test.go:64: config is not valid: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` 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/import_and_bot.json policy_test.go:64: config is not valid: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_and_bot.yaml policy_test.go:64: config is not valid: config.BotOrImport: can't set bot rules and import values at the same time === RUN TestBadConfigs/import_invalid_file.json policy_test.go:64: config is not valid: 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:64: config is not valid: 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/invalid.json policy_test.go:64: config is not valid: 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:64: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/multiple_expression_types.json policy_test.go:64: config is not valid: 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:64: config is not valid: 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:64: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/nobots.yaml policy_test.go:64: config is not valid: config: must define at least one (1) bot rule === RUN TestBadConfigs/regex_ends_newline.json policy_test.go:64: config is not valid: 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" 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" 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:64: config is not valid: 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" 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" 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/status-codes-0.json policy_test.go:64: 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:64: 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 --- PASS: TestBadConfigs (0.00s) --- PASS: TestBadConfigs/badregexes.json (0.00s) --- PASS: TestBadConfigs/badregexes.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/invalid.json (0.00s) --- PASS: TestBadConfigs/invalid.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/regex_ends_newline.json (0.00s) --- PASS: TestBadConfigs/regex_ends_newline.yaml (0.00s) --- PASS: TestBadConfigs/status-codes-0.json (0.00s) --- PASS: TestBadConfigs/status-codes-0.yaml (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/policy 0.025s === 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/challenge_wrong_algorithm === 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 --- 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/challenge_wrong_algorithm (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) === 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/challengemozilla.json === RUN TestConfigValidKnownGood/challengemozilla.yaml === RUN TestConfigValidKnownGood/entropy.yaml === RUN TestConfigValidKnownGood/everything_blocked.json === RUN TestConfigValidKnownGood/everything_blocked.yaml === RUN TestConfigValidKnownGood/git_client.json === RUN TestConfigValidKnownGood/git_client.yaml === RUN TestConfigValidKnownGood/import_filesystem.json === RUN TestConfigValidKnownGood/import_filesystem.yaml === RUN TestConfigValidKnownGood/import_keep_internet_working.json === RUN TestConfigValidKnownGood/import_keep_internet_working.yaml === RUN TestConfigValidKnownGood/old_xesite.json === RUN TestConfigValidKnownGood/status-codes-paranoid.json === RUN TestConfigValidKnownGood/status-codes-paranoid.yaml === RUN TestConfigValidKnownGood/status-codes-rfc.json === RUN TestConfigValidKnownGood/status-codes-rfc.yaml --- PASS: TestConfigValidKnownGood (0.00s) --- 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/challengemozilla.json (0.00s) --- PASS: TestConfigValidKnownGood/challengemozilla.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/git_client.json (0.00s) --- PASS: TestConfigValidKnownGood/git_client.yaml (0.00s) --- PASS: TestConfigValidKnownGood/import_filesystem.json (0.00s) --- PASS: TestConfigValidKnownGood/import_filesystem.yaml (0.00s) --- PASS: TestConfigValidKnownGood/import_keep_internet_working.json (0.00s) --- PASS: TestConfigValidKnownGood/import_keep_internet_working.yaml (0.00s) --- PASS: TestConfigValidKnownGood/old_xesite.json (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) === 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-workers.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/us-ai-scraper.yaml === RUN TestImportStatement/(data)/common/allow-api-like.yaml === RUN TestImportStatement/(data)/common/allow-private-addresses.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/applebot.yaml === RUN TestImportStatement/(data)/crawlers/bingbot.yaml === RUN TestImportStatement/(data)/crawlers/duckduckbot.yaml === RUN TestImportStatement/(data)/crawlers/googlebot.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/qwantbot.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 --- PASS: TestImportStatement (0.01s) --- 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.00s) --- 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-workers.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/us-ai-scraper.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/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.00s) --- PASS: TestImportStatement/(data)/crawlers/ai-search.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/ai-training.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/applebot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/bingbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/duckduckbot.yaml (0.00s) --- PASS: TestImportStatement/(data)/crawlers/googlebot.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/qwantbot.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) === RUN TestConfigValidBad === RUN TestConfigValidBad/badregexes.json config_test.go:319: config is not valid: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` config: bot entry for "headers-bad" is not valid: config.Bot: must set either user_agent_regex, path_regex, headers_regex, or remote_addresses 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/badregexes.yaml config_test.go:319: config is not valid: config: bot entry for "path-bad" is not valid: config.Bot: invalid path regex error parsing regexp: missing closing ): `a(b` config: bot entry for "user-agent-bad" is not valid: config.Bot: invalid user agent regex error parsing regexp: missing closing ): `a(b` 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/import_and_bot.json config_test.go:319: config is not valid: config.BotOrImport: can't set bot rules and import values at the same time 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/import_and_bot.yaml config_test.go:319: config is not valid: config.BotOrImport: can't set bot rules and import values at the same time 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/import_invalid_file.json config_test.go:319: config is not valid: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist 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/import_invalid_file.yaml config_test.go:319: config is not valid: config.ImportStatement: invalid source file: (data)/does-not-exist-fake-file.yaml: open does-not-exist-fake-file.yaml: file does not exist 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/invalid.json config_test.go:319: config is not valid: config.BotOrImport: rule definition is invalid, you must set either bot rules or an import statement, not both 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/invalid.yaml config_test.go:319: config is not valid: config: must define at least one (1) bot rule 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/multiple_expression_types.json config_test.go:319: config is not valid: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types 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/multiple_expression_types.yaml config_test.go:319: config is not valid: config: bot entry for "multiple-expression-types" is not valid: config: expression block can't contain multiple expression types 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/nobots.json config_test.go:319: config is not valid: config: must define at least one (1) bot rule 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/nobots.yaml config_test.go:319: config is not valid: config: must define at least one (1) bot rule 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/regex_ends_newline.json config_test.go:319: config is not valid: 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" 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" 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" 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/regex_ends_newline.yaml config_test.go:319: config is not valid: 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" 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" 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" 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.json config_test.go:319: 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:319: 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 --- PASS: TestConfigValidBad (0.00s) --- PASS: TestConfigValidBad/badregexes.json (0.00s) --- PASS: TestConfigValidBad/badregexes.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/invalid.json (0.00s) --- PASS: TestConfigValidBad/invalid.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/regex_ends_newline.json (0.00s) --- PASS: TestConfigValidBad/regex_ends_newline.yaml (0.00s) --- PASS: TestConfigValidBad/status-codes-0.json (0.00s) --- PASS: TestConfigValidBad/status-codes-0.yaml (0.00s) === RUN TestBotConfigZero --- PASS: TestBotConfigZero (0.00s) === RUN TestExpressionOrListUnmarshal === RUN TestExpressionOrListUnmarshal/simple === RUN TestExpressionOrListUnmarshal/object-and === RUN TestExpressionOrListUnmarshal/object-or === RUN TestExpressionOrListUnmarshal/both-or-and === RUN TestExpressionOrListUnmarshal/expression-empty --- PASS: TestExpressionOrListUnmarshal (0.00s) --- PASS: TestExpressionOrListUnmarshal/simple (0.00s) --- PASS: TestExpressionOrListUnmarshal/object-and (0.00s) --- PASS: TestExpressionOrListUnmarshal/object-or (0.00s) --- PASS: TestExpressionOrListUnmarshal/both-or-and (0.00s) --- PASS: TestExpressionOrListUnmarshal/expression-empty (0.00s) PASS ok github.com/TecharoHQ/anubis/lib/policy/config 0.015s === 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 TestJoin === RUN TestJoin/no-clauses === RUN TestJoin/one-clause-identity === RUN TestJoin/multi-clause-and === RUN TestJoin/multi-clause-or === RUN TestJoin/git-user-agent --- PASS: TestJoin (0.00s) --- PASS: TestJoin/no-clauses (0.00s) --- PASS: TestJoin/one-clause-identity (0.00s) --- PASS: TestJoin/multi-clause-and (0.00s) --- PASS: TestJoin/multi-clause-or (0.00s) --- PASS: TestJoin/git-user-agent (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.008s ? github.com/TecharoHQ/anubis/web [no test files] ? github.com/TecharoHQ/anubis/xess [no test files] >>> anubis: Entering fakeroot... >>> anubis-doc*: Running split function doc... 'usr/share/licenses' -> '/home/buildozer/aports/testing/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/testing/anubis/pkg/anubis-openrc/etc/conf.d' 'etc/init.d' -> '/home/buildozer/aports/testing/anubis/pkg/anubis-openrc/etc/init.d' >>> anubis-openrc*: Preparing subpackage anubis-openrc... >>> anubis-openrc*: Running postcheck for anubis-openrc >>> anubis*: Running postcheck for anubis >>> anubis*: Preparing package anubis... >>> anubis*: Stripping binaries >>> anubis-doc*: Scanning shared objects >>> anubis-openrc*: Scanning shared objects >>> anubis*: Scanning shared objects >>> 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.19.1-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.19.1-r0.apk >>> anubis*: Tracing dependencies... so:libc.musl-s390x.so.1 >>> anubis*: Package size: 17.2 MB >>> anubis*: Compressing data... >>> anubis*: Create checksum... >>> anubis*: Create anubis-1.19.1-r0.apk >>> anubis: Build complete at Mon, 02 Jun 2025 10:37:22 +0000 elapsed time 0h 0m 15s >>> anubis: Cleaning up srcdir >>> anubis: Cleaning up pkgdir >>> anubis: Uninstalling dependencies... (1/2) Purging .makedepends-anubis (20250602.103708) (2/2) Purging go (1.24.3-r1) Executing busybox-1.37.0-r18.trigger OK: 361 MiB in 108 packages >>> anubis: Updating the testing/s390x repository index... >>> anubis: Signing the index...