mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
chore: upgrade to go 1.20 (#12014)
* chore: Upgrade Golang to 1.19 (#10176) (#10186) * Upgrade Golang to 1.19 Signed-off-by: OmarKalloush <omar.kalloush@optimumpartners.co> * go mod tidy with go 1.19 Signed-off-by: OmarKalloush <omar.kalloush@optimumpartners.co> * Replace deprecated ioutil Signed-off-by: OmarKalloush <omar.kalloush@optimumpartners.co> * make codegen changes Signed-off-by: OmarKalloush <omar.kalloush@optimumpartners.co> * Codegen Changes Signed-off-by: OmarKalloush <omar.kalloush@optimumpartners.co> chore: upgrade golangci-lint to 1.50.1 Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> missed a spot Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> tidy Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix bad merge Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Author: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Co-Authored-By: OmarKalloush <omar.kalloush@optimumpartners.co> fix indentation fix lint and codegen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * 1.20 Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * fix lint errors Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * fix "syntax error: unexpected var after top level declaration" in "make test-race-local" Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> --------- Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Co-authored-by: OmarKalloush <100078273+OmarKalloush@users.noreply.github.com>
This commit is contained in:
parent
58a3079391
commit
e75cf73316
17 changed files with 100 additions and 56 deletions
4
.github/workflows/ci-build.yaml
vendored
4
.github/workflows/ci-build.yaml
vendored
|
|
@ -12,7 +12,7 @@ on:
|
|||
|
||||
env:
|
||||
# Golang version to use across CI steps
|
||||
GOLANG_VERSION: '1.18'
|
||||
GOLANG_VERSION: '1.20'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
|
@ -77,7 +77,7 @@ jobs:
|
|||
- name: Run golangci-lint
|
||||
uses: golangci/golangci-lint-action@0ad9a0988b3973e851ab0a07adf248ec2e100376 # v3.3.1
|
||||
with:
|
||||
version: v1.46.2
|
||||
version: v1.51.0
|
||||
args: --timeout 10m --exclude SA5011 --verbose
|
||||
|
||||
test-go:
|
||||
|
|
|
|||
2
.github/workflows/image.yaml
vendored
2
.github/workflows/image.yaml
vendored
|
|
@ -10,7 +10,7 @@ on:
|
|||
types: [ labeled, unlabeled, opened, synchronize, reopened ]
|
||||
|
||||
env:
|
||||
GOLANG_VERSION: '1.18'
|
||||
GOLANG_VERSION: '1.20'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
|
|
|||
2
.github/workflows/release.yaml
vendored
2
.github/workflows/release.yaml
vendored
|
|
@ -12,7 +12,7 @@ on:
|
|||
- "!release-v0*"
|
||||
|
||||
env:
|
||||
GOLANG_VERSION: '1.18'
|
||||
GOLANG_VERSION: '1.20'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ ARG BASE_IMAGE=docker.io/library/ubuntu:22.04
|
|||
# Initial stage which pulls prepares build dependencies and CLI tooling we need for our final image
|
||||
# Also used as the image in CI jobs so needs all dependencies
|
||||
####################################################################################################
|
||||
FROM docker.io/library/golang:1.18 AS builder
|
||||
FROM docker.io/library/golang:1.20 AS builder
|
||||
|
||||
RUN echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ RUN HOST_ARCH=$TARGETARCH NODE_ENV='production' NODE_ONLINE_ENV='online' NODE_OP
|
|||
####################################################################################################
|
||||
# Argo CD Build stage which performs the actual build of Argo CD binaries
|
||||
####################################################################################################
|
||||
FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.18 AS argocd-build
|
||||
FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.20 AS argocd-build
|
||||
|
||||
WORKDIR /go/src/github.com/argoproj/argo-cd
|
||||
|
||||
|
|
|
|||
18
Makefile
18
Makefile
|
|
@ -232,11 +232,11 @@ cli: test-tools-image
|
|||
|
||||
.PHONY: cli-local
|
||||
cli-local: clean-debug
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${CLI_NAME} ./cmd
|
||||
CGO_ENABLED=0 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${CLI_NAME} ./cmd
|
||||
|
||||
.PHONY: gen-resources-cli-local
|
||||
gen-resources-cli-local: clean-debug
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${GEN_RESOURCES_CLI_NAME} ./hack/gen-resources/cmd
|
||||
CGO_ENABLED=0 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${GEN_RESOURCES_CLI_NAME} ./hack/gen-resources/cmd
|
||||
|
||||
.PHONY: release-cli
|
||||
release-cli: clean-debug build-ui
|
||||
|
|
@ -266,19 +266,19 @@ manifests: test-tools-image
|
|||
# consolidated binary for cli, util, server, repo-server, controller
|
||||
.PHONY: argocd-all
|
||||
argocd-all: clean-debug
|
||||
CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${BIN_NAME} ./cmd
|
||||
CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${BIN_NAME} ./cmd
|
||||
|
||||
.PHONY: server
|
||||
server: clean-debug
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-server ./cmd
|
||||
CGO_ENABLED=0 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-server ./cmd
|
||||
|
||||
.PHONY: repo-server
|
||||
repo-server:
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-repo-server ./cmd
|
||||
CGO_ENABLED=0 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-repo-server ./cmd
|
||||
|
||||
.PHONY: controller
|
||||
controller:
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-application-controller ./cmd
|
||||
CGO_ENABLED=0 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-application-controller ./cmd
|
||||
|
||||
.PHONY: build-ui
|
||||
build-ui:
|
||||
|
|
@ -294,7 +294,7 @@ ifeq ($(DEV_IMAGE), true)
|
|||
IMAGE_TAG="dev-$(shell git describe --always --dirty)"
|
||||
image: build-ui
|
||||
DOCKER_BUILDKIT=1 docker build --platform=linux/amd64 -t argocd-base --target argocd-base .
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd ./cmd
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd ./cmd
|
||||
ln -sfn ${DIST_DIR}/argocd ${DIST_DIR}/argocd-server
|
||||
ln -sfn ${DIST_DIR}/argocd ${DIST_DIR}/argocd-application-controller
|
||||
ln -sfn ${DIST_DIR}/argocd ${DIST_DIR}/argocd-repo-server
|
||||
|
|
@ -368,7 +368,7 @@ build: test-tools-image
|
|||
# Build all Go code (local version)
|
||||
.PHONY: build-local
|
||||
build-local:
|
||||
go build -v `go list ./... | grep -v 'resource_customizations\|test/e2e'`
|
||||
GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go build -v `go list ./... | grep -v 'resource_customizations\|test/e2e'`
|
||||
|
||||
# Run all unit tests
|
||||
#
|
||||
|
|
@ -579,7 +579,7 @@ list:
|
|||
|
||||
.PHONY: applicationset-controller
|
||||
applicationset-controller:
|
||||
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-applicationset-controller ./cmd
|
||||
GODEBUG="tarinsecurepath=0,zipinsecurepath=0" CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/argocd-applicationset-controller ./cmd
|
||||
|
||||
.PHONY: checksums
|
||||
checksums:
|
||||
|
|
|
|||
|
|
@ -81,10 +81,10 @@ func (g *GitGenerator) generateParamsForGitDirectories(appSetGenerator *argoproj
|
|||
}
|
||||
|
||||
log.WithFields(log.Fields{
|
||||
"allPaths": allPaths,
|
||||
"total": len(allPaths),
|
||||
"repoURL": appSetGenerator.Git.RepoURL,
|
||||
"revision": appSetGenerator.Git.Revision,
|
||||
"allPaths": allPaths,
|
||||
"total": len(allPaths),
|
||||
"repoURL": appSetGenerator.Git.RepoURL,
|
||||
"revision": appSetGenerator.Git.Revision,
|
||||
"pathParamPrefix": appSetGenerator.Git.PathParamPrefix,
|
||||
}).Info("applications result from the repo service")
|
||||
|
||||
|
|
@ -127,9 +127,7 @@ func (g *GitGenerator) generateParamsForGitFiles(appSetGenerator *argoprojiov1al
|
|||
return nil, fmt.Errorf("unable to process file '%s': %v", path, err)
|
||||
}
|
||||
|
||||
for index := range paramsArray {
|
||||
res = append(res, paramsArray[index])
|
||||
}
|
||||
res = append(res, paramsArray...)
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
|
@ -183,7 +181,7 @@ func (g *GitGenerator) generateParamsFromGitFile(filePath string, fileContent []
|
|||
}
|
||||
pathParamName := "path"
|
||||
if pathParamPrefix != "" {
|
||||
pathParamName = pathParamPrefix+"."+pathParamName
|
||||
pathParamName = pathParamPrefix + "." + pathParamName
|
||||
}
|
||||
params[pathParamName] = path.Dir(filePath)
|
||||
params[pathParamName+".basename"] = path.Base(params[pathParamName].(string))
|
||||
|
|
@ -251,7 +249,7 @@ func (g *GitGenerator) generateParamsFromApps(requestedApps []string, appSetGene
|
|||
} else {
|
||||
pathParamName := "path"
|
||||
if appSetGenerator.Git.PathParamPrefix != "" {
|
||||
pathParamName = appSetGenerator.Git.PathParamPrefix+"."+pathParamName
|
||||
pathParamName = appSetGenerator.Git.PathParamPrefix + "." + pathParamName
|
||||
}
|
||||
params[pathParamName] = a
|
||||
params[pathParamName+".basename"] = path.Base(a)
|
||||
|
|
|
|||
13
go.mod
13
go.mod
|
|
@ -1,6 +1,6 @@
|
|||
module github.com/argoproj/argo-cd/v2
|
||||
|
||||
go 1.18
|
||||
go 1.20
|
||||
|
||||
require (
|
||||
code.gitea.io/sdk/gitea v0.15.1
|
||||
|
|
@ -104,18 +104,21 @@ require (
|
|||
)
|
||||
|
||||
require (
|
||||
github.com/Masterminds/sprig/v3 v3.2.2
|
||||
github.com/antonmedv/expr v1.9.0
|
||||
github.com/coreos/go-oidc/v3 v3.4.0
|
||||
github.com/gosimple/slug v1.13.1
|
||||
github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5
|
||||
github.com/robfig/cron/v3 v3.0.1
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0
|
||||
go.opentelemetry.io/otel v1.11.1
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1
|
||||
go.opentelemetry.io/otel/sdk v1.11.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/Masterminds/sprig/v3 v3.2.2
|
||||
github.com/antonmedv/expr v1.9.0
|
||||
github.com/coreos/go-oidc/v3 v3.4.0
|
||||
github.com/robfig/cron/v3 v3.0.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/emicklei/go-restful/v3 v3.8.0 // indirect
|
||||
github.com/google/go-github/v45 v45.2.0 // indirect
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ func NewApplicationGenerator(argoClientSet *appclientset.Clientset, clientSet *k
|
|||
}
|
||||
|
||||
func (pg *ApplicationGenerator) buildRandomSource(repositories []*v1alpha1.Repository) (*v1alpha1.ApplicationSource, error) {
|
||||
rand.Seed(time.Now().Unix())
|
||||
repoNumber := rand.Int() % len(repositories)
|
||||
seed := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
repoNumber := seed.Int() % len(repositories)
|
||||
return &v1alpha1.ApplicationSource{
|
||||
RepoURL: repositories[repoNumber].Repo,
|
||||
Path: "helm-guestbook",
|
||||
|
|
@ -49,8 +49,8 @@ func (ag *ApplicationGenerator) buildSource(opts *util.GenerateOpts, repositorie
|
|||
}
|
||||
|
||||
func (pg *ApplicationGenerator) buildRandomDestination(opts *util.GenerateOpts, clusters []v1alpha1.Cluster) (*v1alpha1.ApplicationDestination, error) {
|
||||
rand.Seed(time.Now().Unix())
|
||||
clusterNumber := rand.Int() % len(clusters)
|
||||
seed := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
clusterNumber := seed.Int() % len(clusters)
|
||||
return &v1alpha1.ApplicationDestination{
|
||||
Namespace: opts.Namespace,
|
||||
Name: clusters[clusterNumber].Name,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
set -eux -o pipefail
|
||||
|
||||
GO111MODULE=on go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.46.2
|
||||
GO111MODULE=on go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.0
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ func init() {%s
|
|||
}
|
||||
}
|
||||
|
||||
return os.WriteFile(outputPath, []byte(res), 0644)
|
||||
return os.WriteFile(outputPath, []byte(res+"\n"), 0644)
|
||||
},
|
||||
}
|
||||
command.Flags().StringVar(&docsOutputPath, "docs", "", "Docs output file path")
|
||||
|
|
|
|||
|
|
@ -23,4 +23,4 @@ report() {
|
|||
|
||||
trap 'report' EXIT
|
||||
|
||||
go test $TEST_FLAGS -failfast $* 2>&1 | tee $TEST_RESULTS/test.out
|
||||
GODEBUG="tarinsecurepath=0,zipinsecurepath=0" go test $TEST_FLAGS -failfast $* 2>&1 | tee $TEST_RESULTS/test.out
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ var localSchemeBuilder = runtime.SchemeBuilder{
|
|||
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
|
||||
// of clientsets, like in:
|
||||
//
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
//
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
//
|
||||
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
|
||||
// correctly.
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ var localSchemeBuilder = runtime.SchemeBuilder{
|
|||
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
|
||||
// of clientsets, like in:
|
||||
//
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
//
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
//
|
||||
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
|
||||
// correctly.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ RUN ln -s /usr/lib/$(uname -m)-linux-gnu /usr/lib/linux-gnu
|
|||
|
||||
FROM docker.io/library/node:12.18.4-buster as node
|
||||
|
||||
FROM docker.io/library/golang:1.18 as golang
|
||||
FROM docker.io/library/golang:1.20 as golang
|
||||
|
||||
FROM docker.io/library/registry:2.8 as registry
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
ARG BASE_IMAGE=docker.io/library/ubuntu:22.04
|
||||
|
||||
FROM golang:1.18 AS go
|
||||
FROM golang:1.20 AS go
|
||||
|
||||
RUN go install github.com/mattn/goreman@latest && \
|
||||
go install github.com/kisielk/godepgraph@latest
|
||||
|
|
|
|||
|
|
@ -637,4 +637,4 @@ func init() {
|
|||
knownTypes["core/v1/WindowsSecurityContextOptions"] = func() interface{} {
|
||||
return &corev1.WindowsSecurityContextOptions{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ import (
|
|||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"encoding/pem"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -390,24 +392,65 @@ func TestCreateServerTLSConfig(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
// getCert does the same thing as tls.AppendCertsFromPEM, but throws an error if something goes wrong.
|
||||
func getCert(pemCerts []byte) (*x509.Certificate, error) {
|
||||
block, _ := pem.Decode(pemCerts)
|
||||
if block == nil {
|
||||
return nil, errors.New("failed to decode pem block")
|
||||
}
|
||||
if block.Type != "CERTIFICATE" || len(block.Headers) != 0 {
|
||||
return nil, errors.New("encountered something other than a certificate")
|
||||
}
|
||||
|
||||
certBytes := block.Bytes
|
||||
cert, err := x509.ParseCertificate(certBytes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cert, nil
|
||||
}
|
||||
|
||||
func getCertFromFile(path string) (*x509.Certificate, error) {
|
||||
certBytes, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return getCert(certBytes)
|
||||
}
|
||||
|
||||
func TestLoadX509CertPool(t *testing.T) {
|
||||
t.Run("Successfully load single cert", func(t *testing.T) {
|
||||
p, err := LoadX509CertPool("testdata/valid_tls.crt")
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
assert.Len(t, p.Subjects(), 1)
|
||||
|
||||
cert, err := getCertFromFile("testdata/valid_tls.crt")
|
||||
require.NoError(t, err)
|
||||
groundTruthPool := x509.NewCertPool()
|
||||
groundTruthPool.AddCert(cert)
|
||||
|
||||
assert.True(t, groundTruthPool.Equal(p))
|
||||
})
|
||||
t.Run("Successfully load single existing cert from multiple list", func(t *testing.T) {
|
||||
p, err := LoadX509CertPool("testdata/invalid_tls.crt", "testdata/valid_tls.crt")
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
assert.Len(t, p.Subjects(), 1)
|
||||
|
||||
cert, err := getCertFromFile("testdata/valid_tls.crt")
|
||||
require.NoError(t, err)
|
||||
groundTruthPool := x509.NewCertPool()
|
||||
groundTruthPool.AddCert(cert)
|
||||
|
||||
assert.True(t, groundTruthPool.Equal(p))
|
||||
})
|
||||
t.Run("Only non-existing certs in list", func(t *testing.T) {
|
||||
p, err := LoadX509CertPool("testdata/invalid_tls.crt", "testdata/valid_tls2.crt")
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
assert.Len(t, p.Subjects(), 0)
|
||||
|
||||
groundTruthPool := x509.NewCertPool()
|
||||
|
||||
assert.True(t, groundTruthPool.Equal(p))
|
||||
})
|
||||
t.Run("Invalid cert in requested cert list", func(t *testing.T) {
|
||||
p, err := LoadX509CertPool("testdata/empty_tls.crt", "testdata/valid_tls2.crt")
|
||||
|
|
|
|||
Loading…
Reference in a new issue