@@ -13,14 +13,17 @@ import (
1313
1414 cfsslConfig "github.com/cloudflare/cfssl/config"
1515 "github.com/cloudflare/cfssl/helpers"
16+ "github.com/golang/mock/gomock"
1617 "github.com/jmhodges/clock"
18+ "github.com/letsencrypt/boulder/metrics/mock_metrics"
1719 "golang.org/x/crypto/ocsp"
1820 "golang.org/x/net/context"
1921
2022 "github.com/letsencrypt/boulder/cmd"
2123 "github.com/letsencrypt/boulder/core"
2224 "github.com/letsencrypt/boulder/goodkey"
2325 blog "github.com/letsencrypt/boulder/log"
26+ "github.com/letsencrypt/boulder/metrics"
2427 "github.com/letsencrypt/boulder/mocks"
2528 "github.com/letsencrypt/boulder/policy"
2629 "github.com/letsencrypt/boulder/test"
@@ -133,7 +136,7 @@ type testCtx struct {
133136 issuers []Issuer
134137 keyPolicy goodkey.KeyPolicy
135138 fc clock.FakeClock
136- stats * mocks. Statter
139+ stats metrics. Scope
137140 logger blog.Logger
138141}
139142
@@ -236,8 +239,6 @@ func setup(t *testing.T) *testCtx {
236239 },
237240 }
238241
239- stats := mocks .NewStatter ()
240-
241242 issuers := []Issuer {{caKey , caCert }}
242243
243244 keyPolicy := goodkey.KeyPolicy {
@@ -254,7 +255,7 @@ func setup(t *testing.T) *testCtx {
254255 issuers ,
255256 keyPolicy ,
256257 fc ,
257- stats ,
258+ metrics . NewNoopScope () ,
258259 logger ,
259260 }
260261}
@@ -684,10 +685,15 @@ func countMustStaple(t *testing.T, cert *x509.Certificate) (count int) {
684685func TestExtensions (t * testing.T ) {
685686 testCtx := setup (t )
686687 testCtx .caConfig .MaxNames = 3
688+
689+ ctrl := gomock .NewController (t )
690+ defer ctrl .Finish ()
691+ stats := mock_metrics .NewMockScope (ctrl )
692+
687693 ca , err := NewCertificateAuthorityImpl (
688694 testCtx .caConfig ,
689695 testCtx .fc ,
690- testCtx . stats ,
696+ stats ,
691697 testCtx .issuers ,
692698 testCtx .keyPolicy ,
693699 testCtx .logger )
@@ -717,36 +723,34 @@ func TestExtensions(t *testing.T) {
717723
718724 // With enableMustStaple = false, should issue successfully and not add
719725 // Must Staple.
726+ stats .EXPECT ().Inc (metricCSRExtensionTLSFeature , int64 (1 )).Return (nil )
720727 noStapleCert := sign (mustStapleCSR )
721728 test .AssertEquals (t , countMustStaple (t , noStapleCert ), 0 )
722729
723730 // With enableMustStaple = true, a TLS feature extension should put a must-staple
724731 // extension into the cert
725732 ca .enableMustStaple = true
733+ stats .EXPECT ().Inc (metricCSRExtensionTLSFeature , int64 (1 )).Return (nil )
726734 singleStapleCert := sign (mustStapleCSR )
727735 test .AssertEquals (t , countMustStaple (t , singleStapleCert ), 1 )
728- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionTLSFeature ], int64 (2 ))
729736
730737 // Even if there are multiple TLS Feature extensions, only one extension should be included
738+ stats .EXPECT ().Inc (metricCSRExtensionTLSFeature , int64 (1 )).Return (nil )
731739 duplicateMustStapleCert := sign (duplicateMustStapleCSR )
732740 test .AssertEquals (t , countMustStaple (t , duplicateMustStapleCert ), 1 )
733- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionTLSFeature ], int64 (3 ))
734741
735742 // ... but if it doesn't ask for stapling, there should be an error
743+ stats .EXPECT ().Inc (metricCSRExtensionTLSFeature , int64 (1 )).Return (nil )
744+ stats .EXPECT ().Inc (metricCSRExtensionTLSFeatureInvalid , int64 (1 )).Return (nil )
736745 _ , err = ca .IssueCertificate (ctx , * tlsFeatureUnknownCSR , 1001 )
737746 test .AssertError (t , err , "Allowed a CSR with an empty TLS feature extension" )
738747 if _ , ok := err .(core.MalformedRequestError ); ! ok {
739748 t .Errorf ("Wrong error type when rejecting a CSR with empty TLS feature extension" )
740749 }
741- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionTLSFeature ], int64 (4 ))
742- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionTLSFeatureInvalid ], int64 (1 ))
743750
744751 // Unsupported extensions should be silently ignored, having the same
745752 // extensions as the TLS Feature cert above, minus the TLS Feature Extension
753+ stats .EXPECT ().Inc (metricCSRExtensionOther , int64 (1 )).Return (nil )
746754 unsupportedExtensionCert := sign (unsupportedExtensionCSR )
747755 test .AssertEquals (t , len (unsupportedExtensionCert .Extensions ), len (singleStapleCert .Extensions )- 1 )
748- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionOther ], int64 (1 ))
749-
750- // None of the above CSRs have basic extensions
751- test .AssertEquals (t , testCtx .stats .Counters [metricCSRExtensionBasic ], int64 (0 ))
752756}
0 commit comments