[root@yyc01 ~]# /root/postfix-tlspol-1.9.1/scripts/test.sh go: downloading go1.26.1 (linux/amd64) ? github.com/Zuplu/postfix-tlspol [no test files] === RUN TestLoadConfig --- PASS: TestLoadConfig (0.00s) === RUN TestDane === PAUSE TestDane === RUN TestParseMtaStsPolicy === PAUSE TestParseMtaStsPolicy === RUN TestMtaSts === PAUSE TestMtaSts === RUN TestIsLikelyHTTP --- PASS: TestIsLikelyHTTP (0.00s) === RUN TestObservePolicyMetrics --- PASS: TestObservePolicyMetrics (0.00s) === RUN TestBuildMetricsTextIncludesExpectedMetrics --- PASS: TestBuildMetricsTextIncludesExpectedMetrics (0.00s) === RUN TestMetricStatsPersistenceRoundTrip --- PASS: TestMetricStatsPersistenceRoundTrip (0.00s) === RUN TestCachePurgeDoesNotTruncateStats --- PASS: TestCachePurgeDoesNotTruncateStats (0.00s) === RUN TestPolicyCacheClosePersistsCacheDB --- PASS: TestPolicyCacheClosePersistsCacheDB (0.00s) === RUN TestTidyCacheRemovesExpiredNoPolicyAndOldStalePolicy --- PASS: TestTidyCacheRemovesExpiredNoPolicyAndOldStalePolicy (0.00s) === RUN TestTryCachedPolicyUpdatesCopy 2026/04/20 22:14:45 INFO Evaluated policy origin=cache domain=example.com policy=dane ttl=59 --- PASS: TestTryCachedPolicyUpdatesCopy (0.00s) === RUN TestQueryDomainSingleflight --- PASS: TestQueryDomainSingleflight (0.05s) === RUN TestDaneOverMtaSts === PAUSE TestDaneOverMtaSts === CONT TestDane === RUN TestDane/Domain="ietf.org" === CONT TestDaneOverMtaSts === RUN TestDaneOverMtaSts/Domain="zuplu.com" === RUN TestDane/Domain="ripe.net" === RUN TestDane/Domain="nlnet.nl" === RUN TestDane/Domain="denic.de" === RUN TestDaneOverMtaSts/Domain="mailbox.org" === RUN TestDaneOverMtaSts/Domain="protonmail.com" --- PASS: TestDaneOverMtaSts (1.38s) --- PASS: TestDaneOverMtaSts/Domain="zuplu.com" (1.00s) --- PASS: TestDaneOverMtaSts/Domain="mailbox.org" (0.24s) --- PASS: TestDaneOverMtaSts/Domain="protonmail.com" (0.14s) === CONT TestMtaSts === RUN TestMtaSts/Domain="gmail.com" === RUN TestMtaSts/Domain="outlook.com" === RUN TestMtaSts/Domain="zuplu.com" === RUN TestMtaSts/Domain="mailbox.org" === RUN TestMtaSts/Domain="protonmail.com" --- PASS: TestMtaSts (2.02s) --- PASS: TestMtaSts/Domain="gmail.com" (0.21s) --- PASS: TestMtaSts/Domain="outlook.com" (0.27s) --- PASS: TestMtaSts/Domain="zuplu.com" (0.20s) --- PASS: TestMtaSts/Domain="mailbox.org" (0.70s) --- PASS: TestMtaSts/Domain="protonmail.com" (0.65s) === CONT TestParseMtaStsPolicy === RUN TestParseMtaStsPolicy/valid_enforce_policy === PAUSE TestParseMtaStsPolicy/valid_enforce_policy === RUN TestParseMtaStsPolicy/missing_version_is_not_enforceable === PAUSE TestParseMtaStsPolicy/missing_version_is_not_enforceable === RUN TestParseMtaStsPolicy/missing_max_age_is_not_enforceable === PAUSE TestParseMtaStsPolicy/missing_max_age_is_not_enforceable === RUN TestParseMtaStsPolicy/testing_mode_retains_max_age_without_policy === PAUSE TestParseMtaStsPolicy/testing_mode_retains_max_age_without_policy === RUN TestParseMtaStsPolicy/invalid_mode_invalidates_policy === PAUSE TestParseMtaStsPolicy/invalid_mode_invalidates_policy === CONT TestParseMtaStsPolicy/valid_enforce_policy === CONT TestParseMtaStsPolicy/testing_mode_retains_max_age_without_policy === CONT TestParseMtaStsPolicy/invalid_mode_invalidates_policy === CONT TestParseMtaStsPolicy/missing_max_age_is_not_enforceable === CONT TestParseMtaStsPolicy/missing_version_is_not_enforceable --- PASS: TestParseMtaStsPolicy (0.00s) --- PASS: TestParseMtaStsPolicy/valid_enforce_policy (0.00s) --- PASS: TestParseMtaStsPolicy/testing_mode_retains_max_age_without_policy (0.00s) --- PASS: TestParseMtaStsPolicy/invalid_mode_invalidates_policy (0.00s) --- PASS: TestParseMtaStsPolicy/missing_max_age_is_not_enforceable (0.00s) --- PASS: TestParseMtaStsPolicy/missing_version_is_not_enforceable (0.00s) === RUN TestDane/Domain="bund.de" === RUN TestDane/Domain="zuplu.com" === RUN TestDane/Domain="mailbox.org" === RUN TestDane/Domain="protonmail.com" --- PASS: TestDane (5.94s) --- PASS: TestDane/Domain="ietf.org" (0.15s) --- PASS: TestDane/Domain="ripe.net" (0.21s) --- PASS: TestDane/Domain="nlnet.nl" (0.15s) --- PASS: TestDane/Domain="denic.de" (3.30s) --- PASS: TestDane/Domain="bund.de" (0.76s) --- PASS: TestDane/Domain="zuplu.com" (0.94s) --- PASS: TestDane/Domain="mailbox.org" (0.28s) --- PASS: TestDane/Domain="protonmail.com" (0.15s) PASS ok github.com/Zuplu/postfix-tlspol/internal 5.997s === RUN TestExpirableAge === PAUSE TestExpirableAge === RUN TestExpirableRemainingTTL === PAUSE TestExpirableRemainingTTL === RUN TestCacheSetGetRemoveItemsPurge === PAUSE TestCacheSetGetRemoveItemsPurge === RUN TestCacheSaveAndLoadRoundTrip === PAUSE TestCacheSaveAndLoadRoundTrip === RUN TestCacheClosePersistsDirtyEntries === PAUSE TestCacheClosePersistsDirtyEntries === RUN TestCacheSaveCreatesParentDirectory === PAUSE TestCacheSaveCreatesParentDirectory === RUN TestCacheSaveSkipsWhenNotDirty === PAUSE TestCacheSaveSkipsWhenNotDirty === RUN TestCacheForceSaveWritesWhenNotDirty === PAUSE TestCacheForceSaveWritesWhenNotDirty === RUN TestCacheConcurrentSetGet === PAUSE TestCacheConcurrentSetGet === RUN TestCacheCloseIsSafeAfterUse === PAUSE TestCacheCloseIsSafeAfterUse === CONT TestExpirableAge === CONT TestCacheSaveCreatesParentDirectory === RUN TestExpirableAge/past_expiration_returns_positive_age === PAUSE TestExpirableAge/past_expiration_returns_positive_age === RUN TestExpirableAge/future_expiration_clamps_to_zero === PAUSE TestExpirableAge/future_expiration_clamps_to_zero === RUN TestExpirableAge/fractional_seconds_are_truncated === PAUSE TestExpirableAge/fractional_seconds_are_truncated === CONT TestCacheClosePersistsDirtyEntries --- PASS: TestCacheSaveCreatesParentDirectory (0.00s) === CONT TestCacheSaveAndLoadRoundTrip --- PASS: TestCacheClosePersistsDirtyEntries (0.00s) === CONT TestCacheSetGetRemoveItemsPurge --- PASS: TestCacheSaveAndLoadRoundTrip (0.00s) === CONT TestExpirableRemainingTTL === RUN TestExpirableRemainingTTL/future_expiration_returns_ttl === PAUSE TestExpirableRemainingTTL/future_expiration_returns_ttl === RUN TestExpirableRemainingTTL/past_expiration_clamps_to_zero === PAUSE TestExpirableRemainingTTL/past_expiration_clamps_to_zero === RUN TestExpirableRemainingTTL/fractional_seconds_are_truncated === PAUSE TestExpirableRemainingTTL/fractional_seconds_are_truncated === CONT TestCacheConcurrentSetGet --- PASS: TestCacheSetGetRemoveItemsPurge (0.00s) === CONT TestCacheCloseIsSafeAfterUse --- PASS: TestCacheConcurrentSetGet (0.00s) === CONT TestCacheForceSaveWritesWhenNotDirty --- PASS: TestCacheForceSaveWritesWhenNotDirty (0.00s) === CONT TestCacheSaveSkipsWhenNotDirty --- PASS: TestCacheSaveSkipsWhenNotDirty (0.00s) === CONT TestExpirableAge/past_expiration_returns_positive_age === CONT TestExpirableAge/fractional_seconds_are_truncated === CONT TestExpirableAge/future_expiration_clamps_to_zero --- PASS: TestExpirableAge (0.00s) --- PASS: TestExpirableAge/past_expiration_returns_positive_age (0.00s) --- PASS: TestExpirableAge/fractional_seconds_are_truncated (0.00s) --- PASS: TestExpirableAge/future_expiration_clamps_to_zero (0.00s) === CONT TestExpirableRemainingTTL/future_expiration_returns_ttl === CONT TestExpirableRemainingTTL/fractional_seconds_are_truncated === CONT TestExpirableRemainingTTL/past_expiration_clamps_to_zero --- PASS: TestExpirableRemainingTTL (0.00s) --- PASS: TestExpirableRemainingTTL/future_expiration_returns_ttl (0.00s) --- PASS: TestExpirableRemainingTTL/fractional_seconds_are_truncated (0.00s) --- PASS: TestExpirableRemainingTTL/past_expiration_clamps_to_zero (0.00s) --- PASS: TestCacheCloseIsSafeAfterUse (0.03s) PASS ok github.com/Zuplu/postfix-tlspol/internal/utils/cache 0.039s === RUN TestMarshal === PAUSE TestMarshal === RUN TestNewScannerAndSplit_ValidSingleToken === PAUSE TestNewScannerAndSplit_ValidSingleToken === RUN TestNewScannerAndSplit_ValidMultipleTokens === PAUSE TestNewScannerAndSplit_ValidMultipleTokens === RUN TestSplitNetstring_ValidCases === PAUSE TestSplitNetstring_ValidCases === RUN TestSplitNetstring_IncompleteNeedMoreData_NotEOF === PAUSE TestSplitNetstring_IncompleteNeedMoreData_NotEOF === RUN TestSplitNetstring_ErrorCasesAtEOF === PAUSE TestSplitNetstring_ErrorCasesAtEOF === RUN TestScanner_ErrorPropagation === PAUSE TestScanner_ErrorPropagation === RUN TestScanner_BufferLimit_DefaultTooSmallForLargeToken === PAUSE TestScanner_BufferLimit_DefaultTooSmallForLargeToken === RUN TestScanner_BufferLimit_WithCustomBufferSucceeds === PAUSE TestScanner_BufferLimit_WithCustomBufferSucceeds === RUN TestRoundTrip_MarshalThenScan === PAUSE TestRoundTrip_MarshalThenScan === RUN TestScanner_StreamedChunkedInput === PAUSE TestScanner_StreamedChunkedInput === CONT TestMarshal === RUN TestMarshal/empty_string === PAUSE TestMarshal/empty_string === RUN TestMarshal/ascii === PAUSE TestMarshal/ascii === RUN TestMarshal/unicode_bytes_length === PAUSE TestMarshal/unicode_bytes_length === RUN TestMarshal/contains_colon_and_comma === PAUSE TestMarshal/contains_colon_and_comma === CONT TestMarshal/empty_string === CONT TestSplitNetstring_ErrorCasesAtEOF === RUN TestSplitNetstring_ErrorCasesAtEOF/missing_colon === CONT TestScanner_ErrorPropagation === RUN TestScanner_ErrorPropagation/invalid_leading_zero === PAUSE TestScanner_ErrorPropagation/invalid_leading_zero === RUN TestScanner_ErrorPropagation/missing_comma === PAUSE TestScanner_ErrorPropagation/missing_comma === RUN TestScanner_ErrorPropagation/missing_colon_at_eof === PAUSE TestScanner_ErrorPropagation/missing_colon_at_eof === RUN TestScanner_ErrorPropagation/truncated === PAUSE TestScanner_ErrorPropagation/truncated === PAUSE TestSplitNetstring_ErrorCasesAtEOF/missing_colon === RUN TestSplitNetstring_ErrorCasesAtEOF/empty_length === PAUSE TestSplitNetstring_ErrorCasesAtEOF/empty_length === RUN TestSplitNetstring_ErrorCasesAtEOF/leading_zero === CONT TestSplitNetstring_IncompleteNeedMoreData_NotEOF === PAUSE TestSplitNetstring_ErrorCasesAtEOF/leading_zero === RUN TestSplitNetstring_ErrorCasesAtEOF/double_zero_length === PAUSE TestSplitNetstring_ErrorCasesAtEOF/double_zero_length === RUN TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_alpha === PAUSE TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_alpha === RUN TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_sign === PAUSE TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_sign === RUN TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_before_full_payload === PAUSE TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_before_full_payload === RUN TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_missing_comma === PAUSE TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_missing_comma === RUN TestSplitNetstring_ErrorCasesAtEOF/missing_comma_terminator === PAUSE TestSplitNetstring_ErrorCasesAtEOF/missing_comma_terminator === RUN TestSplitNetstring_ErrorCasesAtEOF/trailing_garbage_where_comma_expected === PAUSE TestSplitNetstring_ErrorCasesAtEOF/trailing_garbage_where_comma_expected === RUN TestSplitNetstring_ErrorCasesAtEOF/very_large_declared_length_over_available_bytes === PAUSE TestSplitNetstring_ErrorCasesAtEOF/very_large_declared_length_over_available_bytes === RUN TestSplitNetstring_IncompleteNeedMoreData_NotEOF/no_data === PAUSE TestSplitNetstring_IncompleteNeedMoreData_NotEOF/no_data === RUN TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_colon_yet === PAUSE TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_colon_yet === RUN TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_payload_bytes === PAUSE TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_payload_bytes === CONT TestSplitNetstring_ValidCases === RUN TestSplitNetstring_ValidCases/empty_payload === PAUSE TestSplitNetstring_ValidCases/empty_payload === RUN TestSplitNetstring_ValidCases/simple_payload === PAUSE TestSplitNetstring_ValidCases/simple_payload === RUN TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_comma_terminator_yet === PAUSE TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_comma_terminator_yet === CONT TestNewScannerAndSplit_ValidMultipleTokens === RUN TestSplitNetstring_ValidCases/payload_followed_by_extra_bytes === PAUSE TestSplitNetstring_ValidCases/payload_followed_by_extra_bytes === RUN TestSplitNetstring_ValidCases/payload_with_punctuation === PAUSE TestSplitNetstring_ValidCases/payload_with_punctuation --- PASS: TestNewScannerAndSplit_ValidMultipleTokens (0.00s) === CONT TestNewScannerAndSplit_ValidSingleToken --- PASS: TestNewScannerAndSplit_ValidSingleToken (0.00s) === CONT TestMarshal/contains_colon_and_comma === CONT TestMarshal/unicode_bytes_length === CONT TestRoundTrip_MarshalThenScan --- PASS: TestRoundTrip_MarshalThenScan (0.00s) === CONT TestScanner_StreamedChunkedInput === CONT TestMarshal/ascii === CONT TestScanner_BufferLimit_DefaultTooSmallForLargeToken === CONT TestScanner_ErrorPropagation/invalid_leading_zero --- PASS: TestScanner_StreamedChunkedInput (0.00s) === CONT TestScanner_BufferLimit_WithCustomBufferSucceeds === CONT TestScanner_ErrorPropagation/truncated === CONT TestScanner_ErrorPropagation/missing_colon_at_eof === CONT TestScanner_ErrorPropagation/missing_comma === CONT TestSplitNetstring_ErrorCasesAtEOF/missing_colon === CONT TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_before_full_payload === CONT TestSplitNetstring_ErrorCasesAtEOF/very_large_declared_length_over_available_bytes === CONT TestSplitNetstring_ErrorCasesAtEOF/trailing_garbage_where_comma_expected === CONT TestSplitNetstring_ErrorCasesAtEOF/missing_comma_terminator === CONT TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_missing_comma === CONT TestSplitNetstring_ErrorCasesAtEOF/double_zero_length === CONT TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_sign === CONT TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_alpha === CONT TestSplitNetstring_ErrorCasesAtEOF/empty_length === CONT TestSplitNetstring_ErrorCasesAtEOF/leading_zero === CONT TestSplitNetstring_IncompleteNeedMoreData_NotEOF/no_data === CONT TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_comma_terminator_yet === CONT TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_payload_bytes === CONT TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_colon_yet === CONT TestSplitNetstring_ValidCases/empty_payload === CONT TestSplitNetstring_ValidCases/payload_with_punctuation === CONT TestSplitNetstring_ValidCases/payload_followed_by_extra_bytes === CONT TestSplitNetstring_ValidCases/simple_payload --- PASS: TestMarshal (0.00s) --- PASS: TestMarshal/empty_string (0.00s) --- PASS: TestMarshal/contains_colon_and_comma (0.00s) --- PASS: TestMarshal/unicode_bytes_length (0.00s) --- PASS: TestMarshal/ascii (0.00s) --- PASS: TestScanner_BufferLimit_DefaultTooSmallForLargeToken (0.00s) --- PASS: TestScanner_BufferLimit_WithCustomBufferSucceeds (0.00s) --- PASS: TestScanner_ErrorPropagation (0.00s) --- PASS: TestScanner_ErrorPropagation/invalid_leading_zero (0.00s) --- PASS: TestScanner_ErrorPropagation/truncated (0.00s) --- PASS: TestScanner_ErrorPropagation/missing_colon_at_eof (0.00s) --- PASS: TestScanner_ErrorPropagation/missing_comma (0.00s) --- PASS: TestSplitNetstring_IncompleteNeedMoreData_NotEOF (0.00s) --- PASS: TestSplitNetstring_IncompleteNeedMoreData_NotEOF/no_data (0.00s) --- PASS: TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_comma_terminator_yet (0.00s) --- PASS: TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_payload_bytes (0.00s) --- PASS: TestSplitNetstring_IncompleteNeedMoreData_NotEOF/missing_colon_yet (0.00s) --- PASS: TestSplitNetstring_ValidCases (0.00s) --- PASS: TestSplitNetstring_ValidCases/empty_payload (0.00s) --- PASS: TestSplitNetstring_ValidCases/payload_with_punctuation (0.00s) --- PASS: TestSplitNetstring_ValidCases/payload_followed_by_extra_bytes (0.00s) --- PASS: TestSplitNetstring_ValidCases/simple_payload (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/missing_colon (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_before_full_payload (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/very_large_declared_length_over_available_bytes (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/trailing_garbage_where_comma_expected (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/missing_comma_terminator (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/unexpected_eof_missing_comma (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/double_zero_length (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_sign (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/invalid_length_character_alpha (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/empty_length (0.00s) --- PASS: TestSplitNetstring_ErrorCasesAtEOF/leading_zero (0.00s) PASS ok github.com/Zuplu/postfix-tlspol/internal/utils/netstring 0.004s === RUN TestIsHex === PAUSE TestIsHex === RUN TestSHA === PAUSE TestSHA === RUN TestIsDNSName === PAUSE TestIsDNSName === RUN TestASCIIAndUTF8 === PAUSE TestASCIIAndUTF8 === RUN TestIPs === PAUSE TestIPs === CONT TestIsHex === RUN TestIsHex/lower === PAUSE TestIsHex/lower === RUN TestIsHex/upper_and_digits === PAUSE TestIsHex/upper_and_digits === RUN TestIsHex/mixed_case === PAUSE TestIsHex/mixed_case === RUN TestIsHex/single_zero === PAUSE TestIsHex/single_zero === RUN TestIsHex/non_hex_letters === PAUSE TestIsHex/non_hex_letters === RUN TestIsHex/prefix_not_allowed === PAUSE TestIsHex/prefix_not_allowed === RUN TestIsHex/whitespace_not_allowed === PAUSE TestIsHex/whitespace_not_allowed === RUN TestIsHex/empty === PAUSE TestIsHex/empty === CONT TestIsHex/lower === CONT TestIsDNSName === RUN TestIsDNSName/basic_domain === PAUSE TestIsDNSName/basic_domain === RUN TestIsDNSName/hyphen_inside_label === PAUSE TestIsDNSName/hyphen_inside_label === RUN TestIsDNSName/punycode_like === PAUSE TestIsDNSName/punycode_like === RUN TestIsDNSName/trailing_dot_fqdn === PAUSE TestIsDNSName/trailing_dot_fqdn === RUN TestIsDNSName/single_label === PAUSE TestIsDNSName/single_label === RUN TestIsDNSName/max_label_length_63 === PAUSE TestIsDNSName/max_label_length_63 === RUN TestIsDNSName/max_total_length_253 === PAUSE TestIsDNSName/max_total_length_253 === RUN TestIsDNSName/empty === PAUSE TestIsDNSName/empty === RUN TestIsDNSName/dot_only === PAUSE TestIsDNSName/dot_only === RUN TestIsDNSName/starts_with_hyphen === PAUSE TestIsDNSName/starts_with_hyphen === RUN TestIsDNSName/ends_with_hyphen === PAUSE TestIsDNSName/ends_with_hyphen === RUN TestIsDNSName/double_dot === PAUSE TestIsDNSName/double_dot === RUN TestIsDNSName/label_too_long_64 === PAUSE TestIsDNSName/label_too_long_64 === RUN TestIsDNSName/total_too_long_254 === PAUSE TestIsDNSName/total_too_long_254 === RUN TestIsDNSName/ipv4_literal_not_dns === PAUSE TestIsDNSName/ipv4_literal_not_dns === RUN TestIsDNSName/ipv6_literal_not_dns === PAUSE TestIsDNSName/ipv6_literal_not_dns === RUN TestIsDNSName/underscore_not_allowed === PAUSE TestIsDNSName/underscore_not_allowed === RUN TestIsDNSName/space_not_allowed === PAUSE TestIsDNSName/space_not_allowed === CONT TestIsDNSName/basic_domain === CONT TestSHA === RUN TestSHA/sha224_valid === PAUSE TestSHA/sha224_valid === RUN TestSHA/sha224_invalid_len === PAUSE TestSHA/sha224_invalid_len === RUN TestSHA/sha224_invalid_char === PAUSE TestSHA/sha224_invalid_char === RUN TestSHA/sha256_valid === PAUSE TestSHA/sha256_valid === RUN TestSHA/sha256_invalid_len === PAUSE TestSHA/sha256_invalid_len === RUN TestSHA/sha256_invalid_char === PAUSE TestSHA/sha256_invalid_char === RUN TestSHA/sha384_valid === PAUSE TestSHA/sha384_valid === RUN TestSHA/sha384_invalid_len === PAUSE TestSHA/sha384_invalid_len === RUN TestSHA/sha384_invalid_char === PAUSE TestSHA/sha384_invalid_char === RUN TestSHA/sha512_valid === PAUSE TestSHA/sha512_valid === RUN TestSHA/sha512_invalid_len === PAUSE TestSHA/sha512_invalid_len === RUN TestSHA/sha512_invalid_char === PAUSE TestSHA/sha512_invalid_char === CONT TestSHA/sha224_valid === CONT TestIsHex/empty === CONT TestIsHex/whitespace_not_allowed === CONT TestIsHex/prefix_not_allowed === CONT TestIsHex/non_hex_letters === CONT TestIsHex/single_zero === CONT TestIsHex/mixed_case === CONT TestIsHex/upper_and_digits --- PASS: TestIsHex (0.00s) --- PASS: TestIsHex/lower (0.00s) --- PASS: TestIsHex/empty (0.00s) --- PASS: TestIsHex/whitespace_not_allowed (0.00s) --- PASS: TestIsHex/prefix_not_allowed (0.00s) --- PASS: TestIsHex/non_hex_letters (0.00s) --- PASS: TestIsHex/single_zero (0.00s) --- PASS: TestIsHex/mixed_case (0.00s) --- PASS: TestIsHex/upper_and_digits (0.00s) === CONT TestIsDNSName/space_not_allowed === CONT TestIsDNSName/underscore_not_allowed === CONT TestIsDNSName/ipv6_literal_not_dns === CONT TestASCIIAndUTF8 === RUN TestASCIIAndUTF8/printable_ascii === CONT TestIsDNSName/ipv4_literal_not_dns === CONT TestIsDNSName/total_too_long_254 === CONT TestIsDNSName/label_too_long_64 === PAUSE TestASCIIAndUTF8/printable_ascii === RUN TestASCIIAndUTF8/utf8 === PAUSE TestASCIIAndUTF8/utf8 === CONT TestIsDNSName/double_dot === CONT TestIsDNSName/ends_with_hyphen === CONT TestIsDNSName/starts_with_hyphen === CONT TestIsDNSName/empty === CONT TestIsDNSName/max_total_length_253 === CONT TestIsDNSName/max_label_length_63 === CONT TestIsDNSName/single_label === CONT TestIsDNSName/dot_only === CONT TestIsDNSName/trailing_dot_fqdn === CONT TestIsDNSName/punycode_like === CONT TestIsDNSName/hyphen_inside_label === CONT TestSHA/sha512_invalid_char === CONT TestSHA/sha512_invalid_len === CONT TestSHA/sha384_invalid_char === CONT TestSHA/sha384_invalid_len === CONT TestSHA/sha384_valid === CONT TestSHA/sha512_valid --- PASS: TestIsDNSName (0.00s) --- PASS: TestIsDNSName/basic_domain (0.00s) --- PASS: TestIsDNSName/space_not_allowed (0.00s) --- PASS: TestIsDNSName/underscore_not_allowed (0.00s) --- PASS: TestIsDNSName/ipv6_literal_not_dns (0.00s) --- PASS: TestIsDNSName/ipv4_literal_not_dns (0.00s) --- PASS: TestIsDNSName/total_too_long_254 (0.00s) --- PASS: TestIsDNSName/label_too_long_64 (0.00s) --- PASS: TestIsDNSName/ends_with_hyphen (0.00s) --- PASS: TestIsDNSName/double_dot (0.00s) --- PASS: TestIsDNSName/starts_with_hyphen (0.00s) --- PASS: TestIsDNSName/empty (0.00s) --- PASS: TestIsDNSName/max_total_length_253 (0.00s) --- PASS: TestIsDNSName/max_label_length_63 (0.00s) --- PASS: TestIsDNSName/single_label (0.00s) --- PASS: TestIsDNSName/dot_only (0.00s) --- PASS: TestIsDNSName/trailing_dot_fqdn (0.00s) --- PASS: TestIsDNSName/punycode_like (0.00s) --- PASS: TestIsDNSName/hyphen_inside_label (0.00s) === CONT TestSHA/sha256_invalid_char === CONT TestSHA/sha256_invalid_len === CONT TestSHA/sha256_valid === CONT TestSHA/sha224_invalid_char === CONT TestSHA/sha224_invalid_len === CONT TestASCIIAndUTF8/printable_ascii === CONT TestIPs --- PASS: TestSHA (0.00s) --- PASS: TestSHA/sha224_valid (0.00s) --- PASS: TestSHA/sha512_invalid_char (0.00s) --- PASS: TestSHA/sha384_invalid_char (0.00s) --- PASS: TestSHA/sha512_invalid_len (0.00s) --- PASS: TestSHA/sha384_invalid_len (0.00s) --- PASS: TestSHA/sha384_valid (0.00s) --- PASS: TestSHA/sha512_valid (0.00s) --- PASS: TestSHA/sha256_invalid_char (0.00s) --- PASS: TestSHA/sha256_valid (0.00s) --- PASS: TestSHA/sha256_invalid_len (0.00s) --- PASS: TestSHA/sha224_invalid_char (0.00s) --- PASS: TestSHA/sha224_invalid_len (0.00s) === CONT TestASCIIAndUTF8/utf8 --- PASS: TestASCIIAndUTF8 (0.00s) --- PASS: TestASCIIAndUTF8/printable_ascii (0.00s) --- PASS: TestASCIIAndUTF8/utf8 (0.00s) === RUN TestIPs/ipv4 === PAUSE TestIPs/ipv4 === RUN TestIPs/ipv6 === PAUSE TestIPs/ipv6 === RUN TestIPs/generic_ip === PAUSE TestIPs/generic_ip === CONT TestIPs/generic_ip === CONT TestIPs/ipv4 === CONT TestIPs/ipv6 --- PASS: TestIPs (0.00s) --- PASS: TestIPs/generic_ip (0.00s) --- PASS: TestIPs/ipv4 (0.00s) --- PASS: TestIPs/ipv6 (0.00s) PASS ok github.com/Zuplu/postfix-tlspol/internal/utils/valid 0.003s All tests passed. [root@yyc01 ~]#