Skip to content

Commit d381c58

Browse files
clintonpiLukasa
andauthored
Fix flaky test CertificateTests.testCertificateDescription (#212)
Motivation: The test fails when the local machine is not set to 24-hour time. Modifications: - Adjust the test to use dynamic time values based on Foundation's `Date` instead of hard-coded time strings. Result: A non-flaky test. Co-authored-by: Cory Benfield <lukasa@apple.com>
1 parent 62da4e6 commit d381c58

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Tests/X509Tests/CertificateTests.swift

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -533,13 +533,16 @@ final class CertificateTests: XCTestCase {
533533
OrganizationName("Apple")
534534
CommonName("Swift Certificate Test Intermediate CA 1")
535535
}
536+
let intermediateNotValidBefore = Self.referenceTime - .days(365)
537+
let intermediateNotValidAfter = Self.referenceTime + .days(5 * 365)
538+
536539
let intermediate: Certificate = {
537540
return try! Certificate(
538541
version: .v3,
539542
serialNumber: .init(bytes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
540543
publicKey: .init(intermediatePrivateKey.publicKey),
541-
notValidBefore: Self.referenceTime - .days(365),
542-
notValidAfter: Self.referenceTime + .days(5 * 365),
544+
notValidBefore: intermediateNotValidBefore,
545+
notValidAfter: intermediateNotValidAfter,
543546
issuer: ca.subject,
544547
subject: intermediateName,
545548
signatureAlgorithm: .ecdsaWithSHA384,
@@ -577,8 +580,8 @@ final class CertificateTests: XCTestCase {
577580
serialNumber: 1:2:3:4:5:6:7:8:9:a:b, \
578581
issuer: "CN=Swift Certificate Test CA 1,O=Apple,C=US", \
579582
subject: "CN=Swift Certificate Test Intermediate CA 1,O=Apple,C=US", \
580-
notValidBefore: 2022-08-08 14:26:14 +0000, \
581-
notValidAfter: 2028-08-06 14:26:14 +0000, \
583+
notValidBefore: \(String(reflecting: intermediateNotValidBefore)), \
584+
notValidAfter: \(String(reflecting: intermediateNotValidAfter)), \
582585
publicKey: P256.PublicKey, \
583586
signature: ECDSA, \
584587
extensions: [\
@@ -595,12 +598,15 @@ final class CertificateTests: XCTestCase {
595598
)
596599

597600
let localhostPrivateKey = P256.Signing.PrivateKey()
601+
let leafNotValidBefore = Self.referenceTime - .days(365)
602+
let leafNotValidAfter = Self.referenceTime + .days(365)
603+
598604
let leaf = try Certificate(
599605
version: .v3,
600606
serialNumber: .init(bytes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),
601607
publicKey: .init(localhostPrivateKey.publicKey),
602-
notValidBefore: Self.referenceTime - .days(365),
603-
notValidAfter: Self.referenceTime + .days(365),
608+
notValidBefore: leafNotValidBefore,
609+
notValidAfter: leafNotValidAfter,
604610
issuer: intermediateName,
605611
subject: try DistinguishedName {
606612
CountryName("US")
@@ -627,8 +633,8 @@ final class CertificateTests: XCTestCase {
627633
serialNumber: 1:2:3:4:5:6:7:8:9:a:b:c, \
628634
issuer: "CN=Swift Certificate Test Intermediate CA 1,O=Apple,C=US", \
629635
subject: "STREET=Infinite Loop,CN=localhost,O=Apple,C=US", \
630-
notValidBefore: 2022-08-08 14:26:14 +0000, \
631-
notValidAfter: 2024-08-07 14:26:14 +0000, \
636+
notValidBefore: \(String(reflecting: leafNotValidBefore)), \
637+
notValidAfter: \(String(reflecting: leafNotValidAfter)), \
632638
publicKey: P256.PublicKey, \
633639
signature: ECDSA, \
634640
extensions: [\

0 commit comments

Comments
 (0)