Don't rerun certificate manager tests as subtests 1000 times.

Instead, run the core verification repeatedly.
This commit is contained in:
Ryan Hitchman 2017-05-31 13:55:53 -07:00
parent 7043372d05
commit 49987707a7

View File

@ -202,21 +202,22 @@ func TestSetRotationDeadline(t *testing.T) {
} }
for _, tc := range testCases { for _, tc := range testCases {
for i := 0; i < 1000; i++ { t.Run(tc.name, func(t *testing.T) {
t.Run(tc.name, func(t *testing.T) { m := manager{
m := manager{ cert: &tls.Certificate{
cert: &tls.Certificate{ Leaf: &x509.Certificate{
Leaf: &x509.Certificate{ NotBefore: tc.notBefore,
NotBefore: tc.notBefore, NotAfter: tc.notAfter,
NotAfter: tc.notAfter,
},
}, },
template: &x509.CertificateRequest{}, },
usages: []certificates.KeyUsage{}, template: &x509.CertificateRequest{},
} usages: []certificates.KeyUsage{},
}
lowerBound := tc.notBefore.Add(time.Duration(float64(tc.notAfter.Sub(tc.notBefore)) * 0.7))
upperBound := tc.notBefore.Add(time.Duration(float64(tc.notAfter.Sub(tc.notBefore)) * 0.9))
for i := 0; i < 1000; i++ {
// setRotationDeadline includes jitter, so this needs to run many times for validation.
m.setRotationDeadline() m.setRotationDeadline()
lowerBound := tc.notBefore.Add(time.Duration(float64(tc.notAfter.Sub(tc.notBefore)) * 0.7))
upperBound := tc.notBefore.Add(time.Duration(float64(tc.notAfter.Sub(tc.notBefore)) * 0.9))
if m.rotationDeadline.Before(lowerBound) || m.rotationDeadline.After(upperBound) { if m.rotationDeadline.Before(lowerBound) || m.rotationDeadline.After(upperBound) {
t.Errorf("For notBefore %v, notAfter %v, the rotationDeadline %v should be between %v and %v.", t.Errorf("For notBefore %v, notAfter %v, the rotationDeadline %v should be between %v and %v.",
tc.notBefore, tc.notBefore,
@ -225,8 +226,8 @@ func TestSetRotationDeadline(t *testing.T) {
lowerBound, lowerBound,
upperBound) upperBound)
} }
}) }
} })
} }
} }