tribuchet: building on mac02 Running client tests... === RUN TestDoServerRequestAttachesToken === PAUSE TestDoServerRequestAttachesToken === RUN TestUploadBuildLog_FileBodyReplayedOnRetry === PAUSE TestUploadBuildLog_FileBodyReplayedOnRetry === RUN TestRegisterUploadedObjectReusesConnections === PAUSE TestRegisterUploadedObjectReusesConnections === RUN TestDebugHTTPRedactsCredentials --- PASS: TestDebugHTTPRedactsCredentials (0.00s) === RUN TestAuthenticatedRedirectStaysOnServer === PAUSE TestAuthenticatedRedirectStaysOnServer === RUN TestRunGarbageCollection_FinishedOnAnotherReplica === PAUSE TestRunGarbageCollection_FinishedOnAnotherReplica === RUN TestRunGarbageCollection_NotFoundAfterLocalRun === PAUSE TestRunGarbageCollection_NotFoundAfterLocalRun === RUN TestCaseHackSuffix === PAUSE TestCaseHackSuffix === RUN TestFilterOversizedClosures === PAUSE TestFilterOversizedClosures === RUN TestUploadMultipart_PartsInParallel === PAUSE TestUploadMultipart_PartsInParallel === RUN TestPartSizeForNAR === PAUSE TestPartSizeForNAR === RUN TestUploadMultipart_SupersededByPeer === PAUSE TestUploadMultipart_SupersededByPeer === RUN TestDumpPathCaseHackMatchesNix --- PASS: TestDumpPathCaseHackMatchesNix (1.81s) === RUN TestDumpPathCaseHackCollision --- PASS: TestDumpPathCaseHackCollision (0.00s) === RUN TestSupersededNARStillUploadsListing === PAUSE TestSupersededNARStillUploadsListing === RUN TestDumpPathMatchesNix === PAUSE TestDumpPathMatchesNix === RUN TestDumpPathSingleFile === PAUSE TestDumpPathSingleFile === RUN TestDumpPathWriterError === PAUSE TestDumpPathWriterError === RUN TestEncodeNixBase32 === PAUSE TestEncodeNixBase32 === RUN TestEncodeNixBase32WithRealHash === PAUSE TestEncodeNixBase32WithRealHash === RUN TestConvertHashToNix32 === PAUSE TestConvertHashToNix32 === RUN TestGetStorePathHash === PAUSE TestGetStorePathHash === RUN TestPathInfoHashCompatibility === PAUSE TestPathInfoHashCompatibility === RUN TestParsePathInfoJSON === PAUSE TestParsePathInfoJSON === RUN TestParsePathInfoJSONMultiplePaths === PAUSE TestParsePathInfoJSONMultiplePaths === RUN TestPathInfoCACompatibility === PAUSE TestPathInfoCACompatibility === RUN TestRateLimiterFeedback === PAUSE TestRateLimiterFeedback === RUN TestRateLimiterFeedback_400DoesNotCountAsSuccess === PAUSE TestRateLimiterFeedback_400DoesNotCountAsSuccess === RUN TestRegisterUploadedObject_BoundedAgainstSilentServer === PAUSE TestRegisterUploadedObject_BoundedAgainstSilentServer === RUN TestResolveStorePath === PAUSE TestResolveStorePath === RUN TestDoWithRetry_BodyReplayedViaGetBody === PAUSE TestDoWithRetry_BodyReplayedViaGetBody === RUN TestRetryTimeoutOutlastsMaxRetries === PAUSE TestRetryTimeoutOutlastsMaxRetries === RUN TestDoWithRetry_FinalResponseBodyReadable === PAUSE TestDoWithRetry_FinalResponseBodyReadable === RUN TestShellSplit === PAUSE TestShellSplit === RUN TestShellSplitErrors === PAUSE TestShellSplitErrors === RUN TestStreamPushReportsEveryPath === PAUSE TestStreamPushReportsEveryPath === RUN TestStreamPushBatchesUnderLoad === PAUSE TestStreamPushBatchesUnderLoad === RUN TestStreamPushIsolatesFailures === PAUSE TestStreamPushIsolatesFailures === RUN TestStreamPushGivesUpOnDeadServer === PAUSE TestStreamPushGivesUpOnDeadServer === RUN TestStreamPushRequestLine === PAUSE TestStreamPushRequestLine === RUN TestStreamPushReportsSignatures === PAUSE TestStreamPushReportsSignatures === RUN TestStreamPushReportsSkippedPaths === PAUSE TestStreamPushReportsSkippedPaths === RUN TestClientSignaturesByStorePath === PAUSE TestClientSignaturesByStorePath === RUN TestStreamPushStopsWhenCanceled === PAUSE TestStreamPushStopsWhenCanceled === RUN TestSetClientTLS === PAUSE TestSetClientTLS === RUN TestSetClientTLSDoesNotMutateDefaultTransport === PAUSE TestSetClientTLSDoesNotMutateDefaultTransport === RUN TestSetClientTLSErrors === PAUSE TestSetClientTLSErrors === RUN TestStaticToken === PAUSE TestStaticToken === RUN TestFileTokenReadsAndCaches === PAUSE TestFileTokenReadsAndCaches === RUN TestFileTokenMissing === PAUSE TestFileTokenMissing === RUN TestFileTokenEmpty === PAUSE TestFileTokenEmpty === RUN TestScriptTokenNoExpiryRerunsEveryCall === PAUSE TestScriptTokenNoExpiryRerunsEveryCall === RUN TestScriptTokenCachesUntilRefresh === PAUSE TestScriptTokenCachesUntilRefresh === RUN TestScriptTokenEmptyToken === PAUSE TestScriptTokenEmptyToken === RUN TestScriptTokenBadJSON === PAUSE TestScriptTokenBadJSON === RUN TestScriptTokenScriptFails === PAUSE TestScriptTokenScriptFails === RUN TestScriptTokenEmptyCommand === PAUSE TestScriptTokenEmptyCommand === CONT TestDoServerRequestAttachesToken === CONT TestDoWithRetry_BodyReplayedViaGetBody === CONT TestDumpPathWriterError === CONT TestResolveStorePath === CONT TestRegisterUploadedObject_BoundedAgainstSilentServer === CONT TestRateLimiterFeedback_400DoesNotCountAsSuccess === CONT TestRateLimiterFeedback === CONT TestPathInfoCACompatibility === CONT TestParsePathInfoJSONMultiplePaths === CONT TestParsePathInfoJSON === CONT TestPathInfoHashCompatibility === CONT TestGetStorePathHash === CONT TestConvertHashToNix32 === CONT TestEncodeNixBase32WithRealHash === RUN TestRateLimiterFeedback/429_enables_limiter --- PASS: TestEncodeNixBase32WithRealHash (0.00s) === CONT TestStreamPushIsolatesFailures === CONT TestStreamPushStopsWhenCanceled === CONT TestClientSignaturesByStorePath === CONT TestStreamPushReportsSkippedPaths === CONT TestStreamPushReportsSignatures === CONT TestStreamPushRequestLine === CONT TestStreamPushGivesUpOnDeadServer === CONT TestShellSplitErrors === CONT TestSetClientTLS === CONT TestStreamPushBatchesUnderLoad === CONT TestEncodeNixBase32 === RUN TestEncodeNixBase32/test_string_hash === PAUSE TestEncodeNixBase32/test_string_hash === RUN TestEncodeNixBase32/empty_input === PAUSE TestEncodeNixBase32/empty_input === RUN TestPathInfoCACompatibility/null_ca_field === CONT TestUploadMultipart_SupersededByPeer === RUN TestUploadMultipart_SupersededByPeer/exists === PAUSE TestUploadMultipart_SupersededByPeer/exists === RUN TestUploadMultipart_SupersededByPeer/missing === PAUSE TestPathInfoCACompatibility/null_ca_field === PAUSE TestUploadMultipart_SupersededByPeer/missing === RUN TestParsePathInfoJSON/Nix_format === CONT TestScriptTokenScriptFails === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) === CONT TestScriptTokenCachesUntilRefresh === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) === RUN TestGetStorePathHash/valid_store_path === PAUSE TestGetStorePathHash/valid_store_path === RUN TestGetStorePathHash/basename_without_hyphen_should_error === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error === RUN TestConvertHashToNix32/SRI_format_to_Nix32 --- PASS: TestClientSignaturesByStorePath (0.00s) --- PASS: TestStreamPushStopsWhenCanceled (0.00s) === CONT TestStreamPushReportsEveryPath === CONT TestFilterOversizedClosures === PAUSE TestRateLimiterFeedback/429_enables_limiter === CONT TestDumpPathSingleFile === CONT TestDumpPathMatchesNix === CONT TestSupersededNARStillUploadsListing === RUN TestSupersededNARStillUploadsListing/small_NAR === PAUSE TestSupersededNARStillUploadsListing/small_NAR === RUN TestSupersededNARStillUploadsListing/dump_cut_short === PAUSE TestSupersededNARStillUploadsListing/dump_cut_short === RUN TestSupersededNARStillUploadsListing/listing_upload_fails === PAUSE TestSupersededNARStillUploadsListing/listing_upload_fails === CONT TestScriptTokenEmptyCommand === CONT TestFileTokenReadsAndCaches === CONT TestFileTokenMissing === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths === CONT TestScriptTokenBadJSON === RUN TestPathInfoCACompatibility/old_string_format_-_text === PAUSE TestPathInfoCACompatibility/old_string_format_-_text === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive === PAUSE TestParsePathInfoJSON/Nix_format === RUN TestPathInfoCACompatibility/new_structured_format_-_text === CONT TestScriptTokenEmptyToken === RUN TestPathInfoHashCompatibility/old_string_format_with_colon === CONT TestScriptTokenNoExpiryRerunsEveryCall === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 === RUN TestGetStorePathHash/hash_with_wrong_length_should_error === RUN TestConvertHashToNix32/already_Nix32_format --- PASS: TestShellSplitErrors (0.00s) === CONT TestStaticToken --- PASS: TestStaticToken (0.00s) === CONT TestSetClientTLSErrors === RUN TestFilterOversizedClosures/no_limit_keeps_everything === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything --- PASS: TestStreamPushReportsSkippedPaths (0.00s) --- PASS: TestStreamPushIsolatesFailures (0.00s) --- PASS: TestDoServerRequestAttachesToken (0.00s) === RUN TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped --- PASS: TestResolveStorePath (0.00s) --- PASS: TestStreamPushGivesUpOnDeadServer (0.00s) --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.00s) --- PASS: TestStreamPushReportsSignatures (0.00s) === CONT TestSetClientTLSDoesNotMutateDefaultTransport === PAUSE TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped === CONT TestFileTokenEmpty === RUN TestFilterOversizedClosures/all_closures_skipped === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths === CONT TestCaseHackSuffix === RUN TestSetClientTLSErrors/missing_cert_file === PAUSE TestSetClientTLSErrors/missing_cert_file === CONT TestPartSizeForNAR === RUN TestPartSizeForNAR/zero_stays_at_minimum === PAUSE TestPartSizeForNAR/zero_stays_at_minimum === RUN TestPartSizeForNAR/small_stays_at_minimum === PAUSE TestPartSizeForNAR/small_stays_at_minimum === RUN TestPartSizeForNAR/80_GiB_fits_at_minimum === PAUSE TestPartSizeForNAR/80_GiB_fits_at_minimum === RUN TestPartSizeForNAR/115_GiB_needs_larger_parts === PAUSE TestPartSizeForNAR/115_GiB_needs_larger_parts === RUN TestPartSizeForNAR/1_TiB === PAUSE TestPartSizeForNAR/1_TiB === RUN TestPartSizeForNAR/5_TiB_S3_max_object === PAUSE TestPartSizeForNAR/5_TiB_S3_max_object === RUN TestPartSizeForNAR/capped_at_5_GiB === RUN TestSetClientTLSErrors/missing_key_file === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon === RUN TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === PAUSE TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === RUN TestPathInfoHashCompatibility/new_structured_format_with_sha512 === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 === RUN TestPathInfoCACompatibility/new_structured_format_-_nar_method === CONT TestRegisterUploadedObjectReusesConnections === CONT TestRunGarbageCollection_FinishedOnAnotherReplica === PAUSE TestPathInfoCACompatibility/new_structured_format_-_nar_method === PAUSE TestConvertHashToNix32/already_Nix32_format === RUN TestConvertHashToNix32/invalid_format === PAUSE TestConvertHashToNix32/invalid_format === CONT TestRunGarbageCollection_NotFoundAfterLocalRun === RUN TestRateLimiterFeedback/503_enables_limiter === PAUSE TestRateLimiterFeedback/503_enables_limiter === RUN TestRateLimiterFeedback/200_does_not_enable_limiter === PAUSE TestRateLimiterFeedback/200_does_not_enable_limiter === RUN TestRateLimiterFeedback/400_does_not_enable_limiter === PAUSE TestRateLimiterFeedback/400_does_not_enable_limiter === CONT TestUploadBuildLog_FileBodyReplayedOnRetry --- PASS: TestStreamPushReportsEveryPath (0.00s) --- PASS: TestScriptTokenEmptyCommand (0.00s) --- PASS: TestFileTokenMissing (0.00s) === PAUSE TestFilterOversizedClosures/all_closures_skipped === RUN TestSetClientTLS/rejects_connection_without_client_cert === PAUSE TestSetClientTLS/rejects_connection_without_client_cert === RUN TestSetClientTLS/succeeds_with_client_cert_and_CA === PAUSE TestSetClientTLS/succeeds_with_client_cert_and_CA === RUN TestSetClientTLS/preserves_debug_logging_transport === PAUSE TestSetClientTLS/preserves_debug_logging_transport === CONT TestAuthenticatedRedirectStaysOnServer === CONT TestEncodeNixBase32/empty_input === CONT TestUploadMultipart_SupersededByPeer/exists === CONT TestUploadMultipart_PartsInParallel === RUN TestParsePathInfoJSON/Lix_format === PAUSE TestPartSizeForNAR/capped_at_5_GiB === PAUSE TestSetClientTLSErrors/missing_key_file === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error --- PASS: TestFileTokenReadsAndCaches (0.00s) --- PASS: TestFileTokenEmpty (0.00s) === CONT TestDoWithRetry_FinalResponseBodyReadable === CONT TestShellSplit === CONT TestRetryTimeoutOutlastsMaxRetries --- PASS: TestScriptTokenScriptFails (0.01s) --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.00s) --- PASS: TestScriptTokenBadJSON (0.01s) === CONT TestSupersededNARStillUploadsListing/small_NAR === CONT TestEncodeNixBase32/test_string_hash === CONT TestSupersededNARStillUploadsListing/listing_upload_fails === CONT TestUploadMultipart_SupersededByPeer/missing --- PASS: TestScriptTokenEmptyToken (0.01s) --- PASS: TestRunGarbageCollection_FinishedOnAnotherReplica (0.01s) === RUN TestSetClientTLSErrors/missing_ca_file --- PASS: TestEncodeNixBase32 (0.00s) --- PASS: TestEncodeNixBase32/empty_input (0.00s) --- PASS: TestEncodeNixBase32/test_string_hash (0.00s) --- PASS: TestShellSplit (0.00s) === CONT TestSupersededNARStillUploadsListing/dump_cut_short === PAUSE TestParsePathInfoJSON/Lix_format === RUN TestParsePathInfoJSON/empty_input === PAUSE TestParsePathInfoJSON/empty_input === RUN TestParsePathInfoJSON/whitespace_only === PAUSE TestParsePathInfoJSON/whitespace_only === RUN TestParsePathInfoJSON/invalid_JSON === PAUSE TestParsePathInfoJSON/invalid_JSON === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths --- PASS: TestUploadBuildLog_FileBodyReplayedOnRetry (0.02s) === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths === CONT TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) --- PASS: TestParsePathInfoJSONMultiplePaths (0.01s) --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 === CONT TestPathInfoHashCompatibility/old_string_format_with_colon === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === CONT TestPathInfoCACompatibility/null_ca_field === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive === CONT TestPathInfoCACompatibility/new_structured_format_-_text === PAUSE TestSetClientTLSErrors/missing_ca_file === RUN TestSetClientTLSErrors/invalid_ca_file === PAUSE TestSetClientTLSErrors/invalid_ca_file --- PASS: TestPathInfoHashCompatibility (0.01s) --- PASS: TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) (0.00s) --- PASS: TestPathInfoHashCompatibility/new_structured_format_with_sha512 (0.00s) --- PASS: TestPathInfoHashCompatibility/old_string_format_with_colon (0.00s) --- PASS: TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI (0.00s) === CONT TestConvertHashToNix32/SRI_format_to_Nix32 === CONT TestPathInfoCACompatibility/old_string_format_-_text === CONT TestRateLimiterFeedback/429_enables_limiter === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method === CONT TestConvertHashToNix32/invalid_format === CONT TestRateLimiterFeedback/200_does_not_enable_limiter === CONT TestConvertHashToNix32/already_Nix32_format === CONT TestRateLimiterFeedback/400_does_not_enable_limiter --- PASS: TestPathInfoCACompatibility (0.01s) --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) --- PASS: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) --- PASS: TestPathInfoCACompatibility/new_structured_format_-_nar_method (0.00s) --- PASS: TestConvertHashToNix32 (0.01s) --- PASS: TestConvertHashToNix32/SRI_format_to_Nix32 (0.00s) --- PASS: TestConvertHashToNix32/invalid_format (0.00s) --- PASS: TestConvertHashToNix32/already_Nix32_format (0.00s) === CONT TestRateLimiterFeedback/503_enables_limiter --- PASS: TestRunGarbageCollection_NotFoundAfterLocalRun (0.02s) === CONT TestFilterOversizedClosures/no_limit_keeps_everything === CONT TestSetClientTLS/rejects_connection_without_client_cert === CONT TestFilterOversizedClosures/all_closures_skipped === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped === CONT TestSetClientTLS/preserves_debug_logging_transport --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.01s) --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.01s) --- PASS: TestFilterOversizedClosures (0.02s) --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) --- PASS: TestDoWithRetry_FinalResponseBodyReadable (0.01s) === CONT TestPartSizeForNAR/zero_stays_at_minimum === CONT TestPartSizeForNAR/capped_at_5_GiB === CONT TestPartSizeForNAR/5_TiB_S3_max_object === CONT TestPartSizeForNAR/1_TiB === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts === CONT TestPartSizeForNAR/80_GiB_fits_at_minimum === CONT TestPartSizeForNAR/small_stays_at_minimum --- PASS: TestPartSizeForNAR (0.01s) --- PASS: TestPartSizeForNAR/zero_stays_at_minimum (0.00s) --- PASS: TestPartSizeForNAR/capped_at_5_GiB (0.00s) --- PASS: TestPartSizeForNAR/5_TiB_S3_max_object (0.00s) --- PASS: TestPartSizeForNAR/1_TiB (0.00s) --- PASS: TestPartSizeForNAR/115_GiB_needs_larger_parts (0.00s) --- PASS: TestPartSizeForNAR/80_GiB_fits_at_minimum (0.00s) --- PASS: TestPartSizeForNAR/small_stays_at_minimum (0.00s) === CONT TestGetStorePathHash/hash_with_wrong_length_should_error === CONT TestGetStorePathHash/basename_without_hyphen_should_error === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error === CONT TestParsePathInfoJSON/Nix_format === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA === CONT TestParsePathInfoJSON/invalid_JSON === CONT TestParsePathInfoJSON/Lix_format === CONT TestSetClientTLSErrors/missing_cert_file === CONT TestGetStorePathHash/valid_store_path === CONT TestSetClientTLSErrors/invalid_ca_file === CONT TestSetClientTLSErrors/missing_ca_file === CONT TestSetClientTLSErrors/missing_key_file === CONT TestParsePathInfoJSON/empty_input --- PASS: TestStreamPushRequestLine (0.03s) === CONT TestParsePathInfoJSON/whitespace_only --- PASS: TestGetStorePathHash (0.02s) --- PASS: TestGetStorePathHash/hash_with_wrong_length_should_error (0.00s) --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) --- PASS: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) --- PASS: TestGetStorePathHash/valid_store_path (0.00s) --- PASS: TestParsePathInfoJSON (0.03s) --- PASS: TestParsePathInfoJSON/Nix_format (0.00s) --- PASS: TestParsePathInfoJSON/invalid_JSON (0.00s) --- PASS: TestParsePathInfoJSON/Lix_format (0.00s) --- PASS: TestParsePathInfoJSON/empty_input (0.00s) --- PASS: TestParsePathInfoJSON/whitespace_only (0.00s) --- PASS: TestSetClientTLSErrors (0.03s) --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) --- PASS: TestRateLimiterFeedback (0.01s) --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.00s) --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.00s) --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.00s) --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.01s) --- PASS: TestRegisterUploadedObjectReusesConnections (0.04s) --- PASS: TestScriptTokenCachesUntilRefresh (0.06s) --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.06s) --- PASS: TestSetClientTLS (0.02s) --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.01s) --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.02s) --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.03s) --- PASS: TestDumpPathSingleFile (0.07s) --- PASS: TestCaseHackSuffix (0.07s) --- PASS: TestRetryTimeoutOutlastsMaxRetries (0.05s) --- PASS: TestDumpPathWriterError (0.08s) --- PASS: TestStreamPushBatchesUnderLoad (0.10s) --- PASS: TestDumpPathMatchesNix (0.12s) --- PASS: TestSupersededNARStillUploadsListing (0.00s) --- PASS: TestSupersededNARStillUploadsListing/listing_upload_fails (0.01s) --- PASS: TestSupersededNARStillUploadsListing/small_NAR (0.02s) --- PASS: TestSupersededNARStillUploadsListing/dump_cut_short (0.56s) --- PASS: TestUploadMultipart_PartsInParallel (0.62s) --- PASS: TestRegisterUploadedObject_BoundedAgainstSilentServer (1.00s) --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (1.00s) --- PASS: TestAuthenticatedRedirectStaysOnServer (3.10s) PASS Running native OIDC login tests... === RUN TestDeviceLogin === PAUSE TestDeviceLogin === RUN TestDeviceFailures === PAUSE TestDeviceFailures === RUN TestDiscoveryFailures === PAUSE TestDiscoveryFailures === RUN TestDeviceCancellation === PAUSE TestDeviceCancellation === RUN TestRefreshContracts === PAUSE TestRefreshContracts === RUN TestTokenWithoutRefreshToken === PAUSE TestTokenWithoutRefreshToken === RUN TestRefreshRejectsIdentityChangeAndKeepsRotation === PAUSE TestRefreshRejectsIdentityChangeAndKeepsRotation === RUN TestRefreshRetainsOmittedRefreshToken === PAUSE TestRefreshRetainsOmittedRefreshToken === RUN TestExpiredTokenRefresh === PAUSE TestExpiredTokenRefresh === RUN TestFractionalTemporalClaims === PAUSE TestFractionalTemporalClaims === RUN TestDeviceHTTPRequestTimeout === PAUSE TestDeviceHTTPRequestTimeout === RUN TestDeviceVerificationURL === PAUSE TestDeviceVerificationURL === CONT TestDeviceLogin === CONT TestRefreshRejectsIdentityChangeAndKeepsRotation === CONT TestDeviceCancellation === RUN TestDeviceCancellation/polling === PAUSE TestDeviceCancellation/polling === RUN TestDeviceCancellation/initial-request === CONT TestFractionalTemporalClaims === CONT TestDeviceVerificationURL === RUN TestDeviceVerificationURL/complete === PAUSE TestDeviceVerificationURL/complete === RUN TestDeviceVerificationURL/basic-fallback === PAUSE TestDeviceCancellation/initial-request === CONT TestTokenWithoutRefreshToken === CONT TestRefreshContracts === RUN TestRefreshContracts/new-id === PAUSE TestRefreshContracts/new-id === RUN TestRefreshContracts/no-id === PAUSE TestRefreshContracts/no-id === CONT TestRefreshContracts/new-id === CONT TestDeviceHTTPRequestTimeout === CONT TestRefreshContracts/no-id === CONT TestDiscoveryFailures === RUN TestDiscoveryFailures/no-device === PAUSE TestDiscoveryFailures/no-device === RUN TestDiscoveryFailures/http-endpoint === PAUSE TestDiscoveryFailures/http-endpoint === RUN TestDiscoveryFailures/redirect === PAUSE TestDiscoveryFailures/redirect === RUN TestDiscoveryFailures/issuer === PAUSE TestDiscoveryFailures/issuer === CONT TestDiscoveryFailures/no-device === CONT TestDiscoveryFailures/issuer === CONT TestExpiredTokenRefresh === RUN TestExpiredTokenRefresh/new-id === PAUSE TestExpiredTokenRefresh/new-id === RUN TestExpiredTokenRefresh/no-id === PAUSE TestExpiredTokenRefresh/no-id === CONT TestExpiredTokenRefresh/new-id === CONT TestDeviceFailures === RUN TestDeviceFailures/expired-id === PAUSE TestDeviceFailures/expired-id === RUN TestDeviceFailures/future-nbf === PAUSE TestDeviceFailures/future-nbf === RUN TestDeviceFailures/future-iat === PAUSE TestDeviceFailures/future-iat === RUN TestDeviceFailures/multi-aud-no-azp === PAUSE TestDeviceFailures/multi-aud-no-azp === RUN TestDeviceFailures/denied === PAUSE TestDeviceFailures/denied === RUN TestDeviceFailures/expired === PAUSE TestDeviceFailures/expired === RUN TestDeviceFailures/no-id === PAUSE TestDeviceFailures/no-id === RUN TestDeviceFailures/invalid-interval === PAUSE TestDeviceFailures/invalid-interval === RUN TestDeviceFailures/wrong-azp === PAUSE TestDeviceFailures/wrong-azp === RUN TestDeviceFailures/wrong-aud === PAUSE TestDeviceFailures/wrong-aud === RUN TestDeviceFailures/wrong-issuer === PAUSE TestDeviceFailures/wrong-issuer === CONT TestDeviceFailures/expired-id === CONT TestExpiredTokenRefresh/no-id === CONT TestDiscoveryFailures/redirect === CONT TestDeviceFailures/no-id === CONT TestDiscoveryFailures/http-endpoint === CONT TestDeviceFailures/wrong-aud === CONT TestDeviceFailures/multi-aud-no-azp === CONT TestRefreshRetainsOmittedRefreshToken === PAUSE TestDeviceVerificationURL/basic-fallback === CONT TestDeviceCancellation/polling === CONT TestDeviceCancellation/initial-request === CONT TestDeviceFailures/expired === CONT TestDeviceFailures/future-iat === CONT TestDeviceFailures/wrong-azp === RUN TestDeviceVerificationURL/insecure === PAUSE TestDeviceVerificationURL/insecure === RUN TestDeviceVerificationURL/userinfo === PAUSE TestDeviceVerificationURL/userinfo === RUN TestDeviceVerificationURL/fragment === PAUSE TestDeviceVerificationURL/fragment === RUN TestDeviceVerificationURL/malformed === PAUSE TestDeviceVerificationURL/malformed === CONT TestDeviceFailures/future-nbf === RUN TestTokenWithoutRefreshToken/before-refresh === PAUSE TestTokenWithoutRefreshToken/before-refresh === RUN TestTokenWithoutRefreshToken/at-refresh === PAUSE TestTokenWithoutRefreshToken/at-refresh === RUN TestTokenWithoutRefreshToken/before-expiry-margin === PAUSE TestTokenWithoutRefreshToken/before-expiry-margin === RUN TestTokenWithoutRefreshToken/at-expiry-margin === PAUSE TestTokenWithoutRefreshToken/at-expiry-margin === RUN TestTokenWithoutRefreshToken/expired === PAUSE TestTokenWithoutRefreshToken/expired === CONT TestDeviceFailures/invalid-interval === CONT TestDeviceFailures/wrong-issuer === CONT TestDeviceFailures/denied --- PASS: TestRefreshRetainsOmittedRefreshToken (0.06s) === CONT TestDeviceVerificationURL/complete --- PASS: TestRefreshContracts (0.00s) --- PASS: TestRefreshContracts/no-id (0.10s) --- PASS: TestRefreshContracts/new-id (0.12s) === CONT TestDeviceVerificationURL/userinfo --- PASS: TestFractionalTemporalClaims (0.12s) === CONT TestDeviceVerificationURL/malformed === CONT TestDeviceVerificationURL/fragment === CONT TestDeviceVerificationURL/insecure === CONT TestDeviceVerificationURL/basic-fallback --- PASS: TestDeviceHTTPRequestTimeout (0.19s) === CONT TestTokenWithoutRefreshToken/before-refresh === CONT TestTokenWithoutRefreshToken/at-expiry-margin --- PASS: TestDiscoveryFailures (0.00s) --- PASS: TestDiscoveryFailures/issuer (0.12s) --- PASS: TestDiscoveryFailures/http-endpoint (0.14s) --- PASS: TestDiscoveryFailures/redirect (0.16s) --- PASS: TestDiscoveryFailures/no-device (0.18s) === CONT TestTokenWithoutRefreshToken/expired === CONT TestTokenWithoutRefreshToken/before-expiry-margin === CONT TestTokenWithoutRefreshToken/at-refresh --- PASS: TestTokenWithoutRefreshToken (0.10s) --- PASS: TestTokenWithoutRefreshToken/before-refresh (0.01s) --- PASS: TestTokenWithoutRefreshToken/at-expiry-margin (0.00s) --- PASS: TestTokenWithoutRefreshToken/expired (0.00s) --- PASS: TestTokenWithoutRefreshToken/at-refresh (0.00s) --- PASS: TestTokenWithoutRefreshToken/before-expiry-margin (0.00s) --- PASS: TestRefreshRejectsIdentityChangeAndKeepsRotation (0.21s) --- PASS: TestDeviceCancellation (0.00s) --- PASS: TestDeviceCancellation/polling (0.13s) --- PASS: TestDeviceCancellation/initial-request (0.16s) --- PASS: TestExpiredTokenRefresh (0.00s) --- PASS: TestExpiredTokenRefresh/no-id (0.09s) --- PASS: TestExpiredTokenRefresh/new-id (0.23s) --- PASS: TestDeviceFailures (0.00s) --- PASS: TestDeviceFailures/invalid-interval (0.17s) --- PASS: TestDeviceFailures/no-id (1.08s) --- PASS: TestDeviceFailures/wrong-aud (1.08s) --- PASS: TestDeviceFailures/future-iat (1.08s) --- PASS: TestDeviceFailures/future-nbf (1.06s) --- PASS: TestDeviceFailures/expired-id (1.11s) --- PASS: TestDeviceFailures/wrong-azp (1.16s) --- PASS: TestDeviceFailures/expired (1.17s) --- PASS: TestDeviceFailures/multi-aud-no-azp (1.18s) --- PASS: TestDeviceFailures/wrong-issuer (1.11s) --- PASS: TestDeviceFailures/denied (1.11s) --- PASS: TestDeviceVerificationURL (0.06s) --- PASS: TestDeviceVerificationURL/malformed (0.09s) --- PASS: TestDeviceVerificationURL/insecure (0.07s) --- PASS: TestDeviceVerificationURL/fragment (0.11s) --- PASS: TestDeviceVerificationURL/userinfo (0.18s) --- PASS: TestDeviceVerificationURL/complete (1.08s) --- PASS: TestDeviceVerificationURL/basic-fallback (1.08s) --- PASS: TestDeviceLogin (8.27s) PASS Running command utility tests... === RUN TestOIDCResolution === RUN TestOIDCResolution/saved-fallback oidc_test.go:86: auth token is required (use --auth-token-path, --auth-token-script, NIKS3_AUTH_TOKEN_FILE, or $XDG_CONFIG_HOME/niks3/auth-token) === RUN TestOIDCResolution/explicit-token 2026/10/24 18:16:32 WARN --auth-token is deprecated: tokens on the command line are visible in /proc and shell history; use --auth-token-path or --auth-token-script === RUN TestOIDCResolution/explicit-file === RUN TestOIDCResolution/env-file === RUN TestOIDCResolution/mtls === RUN TestOIDCResolution/explicit-profile oidc_test.go:86: OIDC credential not found; run niks3 auth login === RUN TestOIDCResolution/explicit-token-over-profile 2026/10/24 18:16:32 WARN --auth-token is deprecated: tokens on the command line are visible in /proc and shell history; use --auth-token-path or --auth-token-script === RUN TestOIDCResolution/hook-does-not-select-profile === RUN TestOIDCResolution/hook-env-file === RUN TestOIDCResolution/device-conflict 2026/10/24 18:16:32 WARN --auth-token is deprecated: tokens on the command line are visible in /proc and shell history; use --auth-token-path or --auth-token-script === RUN TestOIDCResolution/device-profile-conflict === RUN TestOIDCResolution/issuer-without-device --- FAIL: TestOIDCResolution (0.00s) --- FAIL: TestOIDCResolution/saved-fallback (0.00s) --- PASS: TestOIDCResolution/explicit-token (0.00s) --- PASS: TestOIDCResolution/explicit-file (0.00s) --- PASS: TestOIDCResolution/env-file (0.00s) --- PASS: TestOIDCResolution/mtls (0.00s) --- FAIL: TestOIDCResolution/explicit-profile (0.00s) --- PASS: TestOIDCResolution/explicit-token-over-profile (0.00s) --- PASS: TestOIDCResolution/hook-does-not-select-profile (0.00s) --- PASS: TestOIDCResolution/hook-env-file (0.00s) --- PASS: TestOIDCResolution/device-conflict (0.00s) --- PASS: TestOIDCResolution/device-profile-conflict (0.00s) --- PASS: TestOIDCResolution/issuer-without-device (0.00s) FAIL