From 722c904f4bec7eb4550ca5b68ae7e8863192bcdc Mon Sep 17 00:00:00 2001 From: Marina Biryukova Date: Fri, 4 Aug 2023 15:04:20 +0300 Subject: [PATCH 1/2] [#3] Add linters Signed-off-by: Marina Biryukova --- .forgejo/workflows/linters.yml | 20 ++++++++++++++++++++ .golangci.yml | 29 +++++++++++++++++++++++++++++ Makefile | 3 +++ ca/renew.go | 2 +- cmd/step-ca/main.go | 1 - go.mod | 1 - go.sum | 2 -- scripts/badger-migration/main.go | 4 ++-- 8 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 .forgejo/workflows/linters.yml create mode 100644 .golangci.yml diff --git a/.forgejo/workflows/linters.yml b/.forgejo/workflows/linters.yml new file mode 100644 index 00000000..96b729b5 --- /dev/null +++ b/.forgejo/workflows/linters.yml @@ -0,0 +1,20 @@ +name: Linters +on: [pull_request] + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.19' + cache: true + + - name: golangci-lint + uses: https://github.com/golangci/golangci-lint-action@v3 + with: + version: latest \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..18a881d9 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,29 @@ +# This file contains all available configuration options +# with their default values. + +# options for analysis running +run: + # timeout for analysis, e.g. 30s, 5m, default is 1m + timeout: 5m + + # include test files or not, default is true + tests: false + +# output configuration options +output: + # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" + format: tab + +# all available settings of specific linters +linters-settings: + govet: + # report about shadowed variables + check-shadowing: false + +linters: + enable: + # mandatory linters + - govet + - revive + disable-all: true + fast: false \ No newline at end of file diff --git a/Makefile b/Makefile index 630b54b9..9d81d11d 100644 --- a/Makefile +++ b/Makefile @@ -177,3 +177,6 @@ run: .PHONY: run +# Run linters. Override old command +lint: + @golangci-lint --timeout=5m run diff --git a/ca/renew.go b/ca/renew.go index 9385e1df..823a02b1 100644 --- a/ca/renew.go +++ b/ca/renew.go @@ -65,7 +65,7 @@ func NewTLSRenewer(cert *tls.Certificate, fn RenewFunc, opts ...tlsRenewerOption // renewals due to the negative values in nextRenewDuration. period := cert.Leaf.NotAfter.Sub(time.Now().Truncate(time.Second)) if period < minCertDuration { - return nil, errors.Errorf("period must be greater than or equal to %s, but got %v.", minCertDuration, period) + return nil, errors.Errorf("period must be greater than or equal to %s, but got %v", minCertDuration, period) } // By default we will try to renew the cert before 2/3 of the validity // period have expired. diff --git a/cmd/step-ca/main.go b/cmd/step-ca/main.go index 11756b93..fc38d7d9 100644 --- a/cmd/step-ca/main.go +++ b/cmd/step-ca/main.go @@ -34,7 +34,6 @@ import ( _ "go.step.sm/crypto/kms/pkcs11" _ "go.step.sm/crypto/kms/softkms" _ "go.step.sm/crypto/kms/sshagentkms" - _ "go.step.sm/crypto/kms/yubikey" // Enabled cas interfaces. _ "github.com/smallstep/certificates/cas/cloudcas" diff --git a/go.mod b/go.mod index 2b043225..99f0e722 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,6 @@ require ( github.com/go-jose/go-jose/v3 v3.0.0 // indirect github.com/go-kit/kit v0.10.0 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect - github.com/go-piv/piv-go v1.11.0 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/glog v1.1.0 // indirect diff --git a/go.sum b/go.sum index a1cb4872..81c5a98f 100644 --- a/go.sum +++ b/go.sum @@ -363,8 +363,6 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-piv/piv-go v1.11.0 h1:5vAaCdRTFSIW4PeqMbnsDlUZ7odMYWnHBDGdmtU/Zhg= -github.com/go-piv/piv-go v1.11.0/go.mod h1:NZ2zmjVkfFaL/CF8cVQ/pXdXtuj110zEKGdJM6fJZZM= github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-redis/redis v6.10.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= diff --git a/scripts/badger-migration/main.go b/scripts/badger-migration/main.go index 89fb8e7d..7ebfc035 100644 --- a/scripts/badger-migration/main.go +++ b/scripts/badger-migration/main.go @@ -57,8 +57,8 @@ type DB interface { type dryRunDB struct{} -func (*dryRunDB) CreateTable([]byte) error { return nil } -func (*dryRunDB) Set(bucket, key, value []byte) error { return nil } +func (*dryRunDB) CreateTable([]byte) error { return nil } +func (*dryRunDB) Set(_, _, _ []byte) error { return nil } func usage(fs *flag.FlagSet) { name := filepath.Base(os.Args[0]) -- 2.45.3 From 98a29e4396e1671c76694978992374dd3fe98ff3 Mon Sep 17 00:00:00 2001 From: Marina Biryukova Date: Mon, 7 Aug 2023 17:55:19 +0300 Subject: [PATCH 2/2] Add tests to CI Signed-off-by: Marina Biryukova --- .forgejo/workflows/linters.yml | 20 ---- .forgejo/workflows/tests.yml | 44 ++++++++ Dockerfile | 12 +++ Makefile | 7 +- acme/api/order_test.go | 192 ++++++++++++++++++++------------- ca/testdata/ca.json | 3 +- ca/testdata/federated-ca.json | 3 +- ca/testdata/rotate-ca-0.json | 3 +- ca/testdata/rotate-ca-1.json | 3 +- ca/testdata/rotate-ca-2.json | 3 +- ca/testdata/rotate-ca-3.json | 3 +- 11 files changed, 193 insertions(+), 100 deletions(-) delete mode 100644 .forgejo/workflows/linters.yml create mode 100644 .forgejo/workflows/tests.yml create mode 100644 Dockerfile diff --git a/.forgejo/workflows/linters.yml b/.forgejo/workflows/linters.yml deleted file mode 100644 index 96b729b5..00000000 --- a/.forgejo/workflows/linters.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Linters -on: [pull_request] - -jobs: - lint: - name: Lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Set up Go - uses: actions/setup-go@v3 - with: - go-version: '1.19' - cache: true - - - name: golangci-lint - uses: https://github.com/golangci/golangci-lint-action@v3 - with: - version: latest \ No newline at end of file diff --git a/.forgejo/workflows/tests.yml b/.forgejo/workflows/tests.yml new file mode 100644 index 00000000..7cc8d711 --- /dev/null +++ b/.forgejo/workflows/tests.yml @@ -0,0 +1,44 @@ +name: Tests and linters +on: [pull_request] + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.19' + cache: true + + - name: golangci-lint + uses: https://github.com/golangci/golangci-lint-action@v3 + with: + version: latest + + tests: + name: Tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Build Docker image + uses: docker/build-push-action@v2 + with: + context: . + dockerfile: Dockerfile + load: true + tags: non-root-container:latest + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.19' + cache: true + + - name: Run tests in non-root container + run: docker run -v $(pwd):/app -w /app non-root-container:latest make test + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..8596afbf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:latest +RUN useradd -u 5000 app +WORKDIR /app + +USER root +RUN apt-get update && apt-get install -y make wget git && apt-get install -y build-essential +RUN wget https://golang.org/dl/go1.19.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz +RUN mkdir -p /home/app/.cache/go-build && chown -R app:app /home/app + +ENV PATH $PATH:/usr/local/go/bin + +USER app \ No newline at end of file diff --git a/Makefile b/Makefile index 9d81d11d..91c8a6db 100644 --- a/Makefile +++ b/Makefile @@ -106,8 +106,6 @@ generate: ######################################### # Test ######################################### -test: testdefault testtpmsimulator combinecoverage - testdefault: $Q $(GO_ENVS) gotestsum -- -coverprofile=defaultcoverage.out -short -covermode=atomic ./... @@ -180,3 +178,8 @@ run: # Run linters. Override old command lint: @golangci-lint --timeout=5m run + +# Run Unit Test with go test +test: + @echo "⇒ Running go test" + @go test ./... -count=1 diff --git a/acme/api/order_test.go b/acme/api/order_test.go index 9f03c547..f509078f 100644 --- a/acme/api/order_test.go +++ b/acme/api/order_test.go @@ -544,7 +544,7 @@ func TestHandler_newAuthorization(t *testing.T) { ExpiresAt: clock.Now(), } count := 0 - var ch1, ch2, ch3 **acme.Challenge + var ch1, ch2, ch3, ch4 **acme.Challenge return test{ prov: defaultProvisioner, db: &acme.MockDB{ @@ -555,13 +555,17 @@ func TestHandler_newAuthorization(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -579,7 +583,7 @@ func TestHandler_newAuthorization(t *testing.T) { assert.Equals(t, _az.Status, acme.StatusPending) assert.Equals(t, _az.Identifier, az.Identifier) assert.Equals(t, _az.ExpiresAt, az.ExpiresAt) - assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, _az.Wildcard, false) return errors.New("force") }, @@ -599,7 +603,7 @@ func TestHandler_newAuthorization(t *testing.T) { ExpiresAt: clock.Now(), } count := 0 - var ch1, ch2, ch3 **acme.Challenge + var ch1, ch2, ch3, ch4 **acme.Challenge return test{ prov: defaultProvisioner, db: &acme.MockDB{ @@ -610,13 +614,17 @@ func TestHandler_newAuthorization(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -634,7 +642,7 @@ func TestHandler_newAuthorization(t *testing.T) { assert.Equals(t, _az.Status, acme.StatusPending) assert.Equals(t, _az.Identifier, az.Identifier) assert.Equals(t, _az.ExpiresAt, az.ExpiresAt) - assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, _az.Wildcard, false) return nil }, @@ -652,18 +660,28 @@ func TestHandler_newAuthorization(t *testing.T) { Status: acme.StatusPending, ExpiresAt: clock.Now(), } - var ch1 **acme.Challenge + var ch1, ch2 **acme.Challenge return test{ prov: defaultProvisioner, db: &acme.MockDB{ MockCreateChallenge: func(ctx context.Context, ch *acme.Challenge) error { - ch.ID = "dns" - assert.Equals(t, ch.Type, acme.DNS01) + switch ch.Type { + case acme.DNS01: + ch.ID = "dns" + assert.Equals(t, ch.Type, acme.DNS01) + ch1 = &ch + case acme.NNS01: + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) + ch2 = &ch + default: + assert.FatalError(t, errors.New("test logic error")) + return errors.New("force") + } assert.Equals(t, ch.AccountID, az.AccountID) assert.Equals(t, ch.Token, az.Token) assert.Equals(t, ch.Status, acme.StatusPending) assert.Equals(t, ch.Value, "zap.internal") - ch1 = &ch return nil }, MockCreateAuthorization: func(ctx context.Context, _az *acme.Authorization) error { @@ -675,7 +693,7 @@ func TestHandler_newAuthorization(t *testing.T) { Value: "zap.internal", }) assert.Equals(t, _az.ExpiresAt, az.ExpiresAt) - assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1}) + assert.Equals(t, _az.Challenges, []*acme.Challenge{*ch1, *ch2}) assert.Equals(t, _az.Wildcard, true) return nil }, @@ -1154,9 +1172,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1170,13 +1188,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1195,7 +1217,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, fr.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -1230,9 +1252,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3, ch4 **acme.Challenge - az1ID, az2ID *string - chCount, azCount = 0, 0 + ch1, ch2, ch3, ch4, ch5, ch6 **acme.Challenge + az1ID, az2ID *string + chCount, azCount = 0, 0 ) return test{ ctx: ctx, @@ -1245,23 +1267,29 @@ func TestHandler_NewOrder(t *testing.T) { case 0: ch.ID = "dns" assert.Equals(t, ch.Type, acme.DNS01) - assert.Equals(t, ch.Value, "zap.internal") ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) - assert.Equals(t, ch.Value, "zap.internal") + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: - ch.ID = "tls" - assert.Equals(t, ch.Type, acme.TLSALPN01) - assert.Equals(t, ch.Value, "zap.internal") + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) ch3 = &ch case 3: + ch.ID = "tls" + assert.Equals(t, ch.Type, acme.TLSALPN01) + ch4 = &ch + case 4: ch.ID = "dns" assert.Equals(t, ch.Type, acme.DNS01) assert.Equals(t, ch.Value, "zar.internal") - ch4 = &ch + ch5 = &ch + case 5: + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) + assert.Equals(t, ch.Value, "zar.internal") + ch6 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1279,7 +1307,7 @@ func TestHandler_NewOrder(t *testing.T) { az1ID = &az.ID assert.Equals(t, az.Identifier, nor.Identifiers[0]) assert.Equals(t, az.Wildcard, false) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) case 1: az.ID = "az2ID" az2ID = &az.ID @@ -1288,7 +1316,7 @@ func TestHandler_NewOrder(t *testing.T) { Value: "zar.internal", }) assert.Equals(t, az.Wildcard, true) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch4}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch5, *ch6}) default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1350,9 +1378,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1367,13 +1395,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1392,7 +1424,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, nor.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -1447,9 +1479,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1464,13 +1496,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1489,7 +1525,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, nor.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -1543,9 +1579,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1560,13 +1596,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1585,7 +1625,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, nor.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -1640,9 +1680,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1657,13 +1697,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1682,7 +1726,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, nor.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -1740,9 +1784,9 @@ func TestHandler_NewOrder(t *testing.T) { ctx = context.WithValue(ctx, accContextKey, acc) ctx = context.WithValue(ctx, payloadContextKey, &payloadInfo{value: b}) var ( - ch1, ch2, ch3 **acme.Challenge - az1ID *string - count = 0 + ch1, ch2, ch3, ch4 **acme.Challenge + az1ID *string + count = 0 ) return test{ ctx: ctx, @@ -1757,13 +1801,17 @@ func TestHandler_NewOrder(t *testing.T) { assert.Equals(t, ch.Type, acme.DNS01) ch1 = &ch case 1: - ch.ID = "http" - assert.Equals(t, ch.Type, acme.HTTP01) + ch.ID = "nns" + assert.Equals(t, ch.Type, acme.NNS01) ch2 = &ch case 2: + ch.ID = "http" + assert.Equals(t, ch.Type, acme.HTTP01) + ch3 = &ch + case 3: ch.ID = "tls" assert.Equals(t, ch.Type, acme.TLSALPN01) - ch3 = &ch + ch4 = &ch default: assert.FatalError(t, errors.New("test logic error")) return errors.New("force") @@ -1782,7 +1830,7 @@ func TestHandler_NewOrder(t *testing.T) { assert.NotEquals(t, az.Token, "") assert.Equals(t, az.Status, acme.StatusPending) assert.Equals(t, az.Identifier, nor.Identifiers[0]) - assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3}) + assert.Equals(t, az.Challenges, []*acme.Challenge{*ch1, *ch2, *ch3, *ch4}) assert.Equals(t, az.Wildcard, false) return nil }, @@ -2176,7 +2224,7 @@ func TestHandler_challengeTypes(t *testing.T) { Wildcard: false, }, }, - want: []acme.ChallengeType{acme.DNS01, acme.HTTP01, acme.TLSALPN01}, + want: []acme.ChallengeType{acme.DNS01, acme.NNS01, acme.HTTP01, acme.TLSALPN01}, }, { name: "ok/wildcard", @@ -2186,7 +2234,7 @@ func TestHandler_challengeTypes(t *testing.T) { Wildcard: true, }, }, - want: []acme.ChallengeType{acme.DNS01}, + want: []acme.ChallengeType{acme.DNS01, acme.NNS01}, }, { name: "ok/ip", diff --git a/ca/testdata/ca.json b/ca/testdata/ca.json index 2a336f24..c26c8e5d 100644 --- a/ca/testdata/ca.json +++ b/ca/testdata/ca.json @@ -94,5 +94,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } diff --git a/ca/testdata/federated-ca.json b/ca/testdata/federated-ca.json index 0b1c6c8d..3ef1e414 100644 --- a/ca/testdata/federated-ca.json +++ b/ca/testdata/federated-ca.json @@ -43,5 +43,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } diff --git a/ca/testdata/rotate-ca-0.json b/ca/testdata/rotate-ca-0.json index aa9353ed..45bff8f7 100644 --- a/ca/testdata/rotate-ca-0.json +++ b/ca/testdata/rotate-ca-0.json @@ -42,5 +42,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } diff --git a/ca/testdata/rotate-ca-1.json b/ca/testdata/rotate-ca-1.json index c78ba035..6deb2d32 100644 --- a/ca/testdata/rotate-ca-1.json +++ b/ca/testdata/rotate-ca-1.json @@ -42,5 +42,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } diff --git a/ca/testdata/rotate-ca-2.json b/ca/testdata/rotate-ca-2.json index 2db1c992..bd228c07 100644 --- a/ca/testdata/rotate-ca-2.json +++ b/ca/testdata/rotate-ca-2.json @@ -42,5 +42,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } diff --git a/ca/testdata/rotate-ca-3.json b/ca/testdata/rotate-ca-3.json index 50f4a118..c97688a2 100644 --- a/ca/testdata/rotate-ca-3.json +++ b/ca/testdata/rotate-ca-3.json @@ -42,5 +42,6 @@ "locality": "San Francisco", "organization": "Smallstep" } - } + }, + "nnsServer": "nns_server_url" } -- 2.45.3