upgrade to go v1.24 (#5562)

* upgrade to go v1.24

* add a macOS-specific //nolint comment too

---------

Co-authored-by: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com>
This commit is contained in:
Caleb Doxsey 2025-04-02 15:53:09 -06:00 committed by GitHub
parent 8d9f1bb38e
commit c47055bece
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
89 changed files with 170 additions and 190 deletions

View file

@ -15,12 +15,12 @@ jobs:
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
with: with:
go-version: 1.23.x go-version: 1.24.x
cache: false cache: false
- run: make deps-build - run: make deps-build
- uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 - uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84
with: with:
version: v1.60.1 version: v1.64.8
args: --timeout=10m args: --timeout=10m

View file

@ -33,7 +33,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
with: with:
go-version: 1.23.x go-version: 1.24.x
cache: false cache: false
- name: Set up Docker - name: Set up Docker
@ -99,7 +99,7 @@ jobs:
echo "tag=${LATEST_TAG}" >> $GITHUB_OUTPUT echo "tag=${LATEST_TAG}" >> $GITHUB_OUTPUT
- name: Publish latest tag - name: Publish latest tag
if: "steps.latestTag.outputs.tag == steps.tagName.outputs.tag" if: steps.latestTag.outputs.tag == steps.tagName.outputs.tag
run: | run: |
docker manifest create -a pomerium/pomerium:latest pomerium/pomerium:amd64-${{ steps.tagName.outputs.tag }} pomerium/pomerium:arm64v8-${{ steps.tagName.outputs.tag }} docker manifest create -a pomerium/pomerium:latest pomerium/pomerium:amd64-${{ steps.tagName.outputs.tag }} pomerium/pomerium:arm64v8-${{ steps.tagName.outputs.tag }}
docker manifest push pomerium/pomerium:latest docker manifest push pomerium/pomerium:latest

View file

@ -12,7 +12,6 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
go-version: [1.23.x]
node-version: [22.x] node-version: [22.x]
platform: [ubuntu-22.04] platform: [ubuntu-22.04]
deployment: [multi, single] deployment: [multi, single]
@ -23,7 +22,7 @@ jobs:
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
with: with:
go-version: ${{ matrix.go-version }} go-version: 1.24.x
cache: false cache: false
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e
@ -62,7 +61,7 @@ jobs:
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
with: with:
go-version: ${{ matrix.go-version }} go-version: 1.24.x
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e
with: with:
@ -126,7 +125,7 @@ jobs:
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
with: with:
go-version: 1.23.x go-version: 1.24.x
cache: false cache: false
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55

View file

@ -11,11 +11,11 @@ linters:
enable: enable:
- asasalint - asasalint
- bodyclose - bodyclose
- copyloopvar
- dogsled - dogsled
- errcheck - errcheck
- errorlint - errorlint
- exportloopref - gci
# - gci # https://github.com/daixiang0/gci/issues/209
- gocheckcompilerdirectives - gocheckcompilerdirectives
- gofumpt - gofumpt
- goimports - goimports
@ -30,10 +30,10 @@ linters:
- revive - revive
- staticcheck - staticcheck
- stylecheck - stylecheck
- tenv
- unconvert - unconvert
- unused - unused
- usestdlibvars - usestdlibvars
- usetesting
issues: issues:
# List of regexps of issue texts to exclude, empty list by default. # List of regexps of issue texts to exclude, empty list by default.

View file

@ -1,2 +0,0 @@
golang 1.23.0
golangci-lint 1.60.1

View file

@ -90,9 +90,10 @@ build-ui: yarn
@cd ui; yarn build @cd ui; yarn build
.PHONY: lint .PHONY: lint
lint: ## Verifies `golint` passes. lint:
@echo "==> $@" @echo "@==> $@"
@go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.60.1 run ./... --fix @VERSION=$$(go run github.com/mikefarah/yq/v4@v4.34.1 '.jobs.lint.steps[] | select(.uses == "golangci/golangci-lint-action*") | .with.version' .github/workflows/lint.yaml) && \
go run github.com/golangci/golangci-lint/cmd/golangci-lint@$$VERSION run ./... --fix
.PHONY: test .PHONY: test
test: get-envoy ## Runs the go tests. test: get-envoy ## Runs the go tests.

View file

@ -7,12 +7,13 @@ import (
"errors" "errors"
"fmt" "fmt"
oteltrace "go.opentelemetry.io/otel/trace"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/atomicutil" "github.com/pomerium/pomerium/internal/atomicutil"
"github.com/pomerium/pomerium/internal/log" "github.com/pomerium/pomerium/internal/log"
"github.com/pomerium/pomerium/pkg/cryptutil" "github.com/pomerium/pomerium/pkg/cryptutil"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
oteltrace "go.opentelemetry.io/otel/trace"
) )
// ValidateOptions checks that configuration are complete and valid. // ValidateOptions checks that configuration are complete and valid.

View file

@ -58,7 +58,6 @@ func TestOptions_Validate(t *testing.T) {
{"empty callback path", badCallbackPath, true}, {"empty callback path", badCallbackPath, true},
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
if err := ValidateOptions(tt.o); (err != nil) != tt.wantErr { if err := ValidateOptions(tt.o); (err != nil) != tt.wantErr {
t.Errorf("Options.Validate() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("Options.Validate() error = %v, wantErr %v", err, tt.wantErr)
@ -105,7 +104,6 @@ func TestNew(t *testing.T) {
{"bad signing key", badSigningKey, true}, {"bad signing key", badSigningKey, true},
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
_, err := New(context.Background(), &config.Config{Options: tt.opts}) _, err := New(context.Background(), &config.Config{Options: tt.opts})
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {

View file

@ -3,11 +3,12 @@ package authenticate
import ( import (
"context" "context"
oteltrace "go.opentelemetry.io/otel/trace"
"github.com/pomerium/pomerium/authenticate/events" "github.com/pomerium/pomerium/authenticate/events"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
identitypb "github.com/pomerium/pomerium/pkg/grpc/identity" identitypb "github.com/pomerium/pomerium/pkg/grpc/identity"
"github.com/pomerium/pomerium/pkg/identity" "github.com/pomerium/pomerium/pkg/identity"
oteltrace "go.opentelemetry.io/otel/trace"
) )
type authenticateConfig struct { type authenticateConfig struct {

View file

@ -219,7 +219,6 @@ func TestAuthenticate_SignOut(t *testing.T) {
}, },
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
defer ctrl.Finish() defer ctrl.Finish()
@ -343,7 +342,6 @@ func TestAuthenticate_OAuthCallback(t *testing.T) {
{"bad hmac", http.MethodGet, time.Now().Unix(), base64.URLEncoding.EncodeToString([]byte("malformed_state")), "", "", "", "code", "https://corp.pomerium.io", "https://authenticate.pomerium.io", &mstore.Store{}, identity.MockProvider{AuthenticateResponse: oauth2.Token{}}, "https://corp.pomerium.io", http.StatusBadRequest}, {"bad hmac", http.MethodGet, time.Now().Unix(), base64.URLEncoding.EncodeToString([]byte("malformed_state")), "", "", "", "code", "https://corp.pomerium.io", "https://authenticate.pomerium.io", &mstore.Store{}, identity.MockProvider{AuthenticateResponse: oauth2.Token{}}, "https://corp.pomerium.io", http.StatusBadRequest},
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
defer ctrl.Finish() defer ctrl.Finish()
@ -449,7 +447,6 @@ func TestAuthenticate_SessionValidatorMiddleware(t *testing.T) {
}, },
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
ctrl := gomock.NewController(t) ctrl := gomock.NewController(t)
defer ctrl.Finish() defer ctrl.Finish()

View file

@ -79,7 +79,6 @@ func TestNew(t *testing.T) {
}, },
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
t.Parallel() t.Parallel()
_, err := New(context.Background(), &config.Config{Options: &tt.config}) _, err := New(context.Background(), &config.Config{Options: &tt.config})
@ -104,7 +103,6 @@ func TestAuthorize_OnConfigChange(t *testing.T) {
{"bad option", "gXK6ggrlIW2HyKyUF9rUO4azrDgxhDPWqw9y+lJU7B8=", policies, false}, {"bad option", "gXK6ggrlIW2HyKyUF9rUO4azrDgxhDPWqw9y+lJU7B8=", policies, false},
} }
for _, tc := range tests { for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
o := &config.Options{ o := &config.Options{

View file

@ -44,6 +44,8 @@ func TestGCPIdentityTokenSource(t *testing.T) {
} }
func Test_normalizeServiceAccount(t *testing.T) { func Test_normalizeServiceAccount(t *testing.T) {
t.Parallel()
tests := []struct { tests := []struct {
name string name string
serviceAccount string serviceAccount string
@ -59,7 +61,6 @@ func Test_normalizeServiceAccount(t *testing.T) {
} }
for _, tc := range tests { for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
gotServiceAccount, err := normalizeServiceAccount(tc.serviceAccount) gotServiceAccount, err := normalizeServiceAccount(tc.serviceAccount)

View file

@ -96,8 +96,6 @@ func Test_populateLogEvent(t *testing.T) {
{log.AuthorizeLogFieldUser, sa, `{"user":"SERVICE-ACCOUNT-USER-ID"}`}, {log.AuthorizeLogFieldUser, sa, `{"user":"SERVICE-ACCOUNT-USER-ID"}`},
{log.AuthorizeLogFieldUser, nil, `{"user":""}`}, {log.AuthorizeLogFieldUser, nil, `{"user":""}`},
} { } {
tc := tc
t.Run(string(tc.field), func(t *testing.T) { t.Run(string(tc.field), func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -90,7 +90,7 @@ func TestAutocertOptions_Validate(t *testing.T) {
} }
}, },
"ok/trusted-ca-file": func(t *testing.T) test { "ok/trusted-ca-file": func(t *testing.T) test {
f, err := os.CreateTemp("", "pomerium-test-ca") f, err := os.CreateTemp(t.TempDir(), "pomerium-test-ca")
require.NoError(t, err) require.NoError(t, err)
n, err := f.Write(certPEM) n, err := f.Write(certPEM)
require.NoError(t, err) require.NoError(t, err)
@ -128,7 +128,7 @@ func TestAutocertOptions_Validate(t *testing.T) {
} }
}, },
"fail/trusted-ca-combined": func(t *testing.T) test { "fail/trusted-ca-combined": func(t *testing.T) test {
f, err := os.CreateTemp("", "pomerium-test-ca") f, err := os.CreateTemp(t.TempDir(), "pomerium-test-ca")
require.NoError(t, err) require.NoError(t, err)
n, err := f.Write(certPEM) n, err := f.Write(certPEM)
require.NoError(t, err) require.NoError(t, err)

View file

@ -6,10 +6,11 @@ import (
"encoding/pem" "encoding/pem"
"testing" "testing"
"github.com/pomerium/pomerium/config"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"github.com/pomerium/pomerium/config"
) )
func TestGenerateCatchAllCertificate(t *testing.T) { func TestGenerateCatchAllCertificate(t *testing.T) {

View file

@ -16,12 +16,13 @@ import (
envoy_config_overload_v3 "github.com/envoyproxy/go-control-plane/envoy/config/overload/v3" envoy_config_overload_v3 "github.com/envoyproxy/go-control-plane/envoy/config/overload/v3"
envoy_extensions_access_loggers_file_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/access_loggers/file/v3" envoy_extensions_access_loggers_file_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/access_loggers/file/v3"
envoy_extensions_resource_monitors_downstream_connections_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/resource_monitors/downstream_connections/v3" envoy_extensions_resource_monitors_downstream_connections_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/resource_monitors/downstream_connections/v3"
"google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/structpb"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/config/otelconfig" "github.com/pomerium/pomerium/config/otelconfig"
"github.com/pomerium/pomerium/internal/telemetry" "github.com/pomerium/pomerium/internal/telemetry"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/structpb"
) )
const maxActiveDownstreamConnections = 50000 const maxActiveDownstreamConnections = 50000

View file

@ -216,7 +216,6 @@ func (b *Builder) buildPolicyEndpoints(
) ([]Endpoint, error) { ) ([]Endpoint, error) {
var endpoints []Endpoint var endpoints []Endpoint
for _, dst := range policy.To { for _, dst := range policy.To {
dst := dst
ts, err := b.buildPolicyTransportSocket(ctx, cfg, policy, dst.URL) ts, err := b.buildPolicyTransportSocket(ctx, cfg, policy, dst.URL)
if err != nil { if err != nil {
return nil, err return nil, err

View file

@ -275,7 +275,6 @@ func Test_urlMatchesHost(t *testing.T) {
{"non standard port", "http://example.com:81", "example.com", false}, {"non standard port", "http://example.com:81", "example.com", false},
{"non standard host port", "http://example.com:81", "example.com:80", false}, {"non standard host port", "http://example.com:81", "example.com:80", false},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -13,13 +13,14 @@ import (
metadatav3 "github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3" metadatav3 "github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3"
envoy_tracing_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_tracing_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3"
envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
"google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/wrapperspb"
extensions_trace_context "github.com/pomerium/envoy-custom/api/extensions/http/early_header_mutation/trace_context" extensions_trace_context "github.com/pomerium/envoy-custom/api/extensions/http/early_header_mutation/trace_context"
extensions_uuidx "github.com/pomerium/envoy-custom/api/extensions/request_id/uuidx" extensions_uuidx "github.com/pomerium/envoy-custom/api/extensions/request_id/uuidx"
extensions_pomerium_otel "github.com/pomerium/envoy-custom/api/extensions/tracers/pomerium_otel" extensions_pomerium_otel "github.com/pomerium/envoy-custom/api/extensions/tracers/pomerium_otel"
"github.com/pomerium/pomerium/config/otelconfig" "github.com/pomerium/pomerium/config/otelconfig"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/wrapperspb"
) )
func isTracingEnabled(cfg *otelconfig.Config) bool { func isTracingEnabled(cfg *otelconfig.Config) bool {

View file

@ -1871,13 +1871,6 @@ func compareByteSliceSlice(a, b [][]byte) int {
} }
} }
func min(x, y int) int {
if x < y {
return x
}
return y
}
// NewAtomicOptions creates a new AtomicOptions. // NewAtomicOptions creates a new AtomicOptions.
func NewAtomicOptions() *atomicutil.Value[*Options] { func NewAtomicOptions() *atomicutil.Value[*Options] {
return atomicutil.NewValue(new(Options)) return atomicutil.NewValue(new(Options))

View file

@ -331,7 +331,7 @@ func Test_parsePolicyFile(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
tempFile, _ := os.CreateTemp("", "*.json") tempFile, _ := os.CreateTemp(t.TempDir(), "*.json")
defer tempFile.Close() defer tempFile.Close()
defer os.Remove(tempFile.Name()) defer os.Remove(tempFile.Name())
tempFile.Write(tt.policyBytes) tempFile.Write(tt.policyBytes)
@ -462,7 +462,7 @@ func TestOptionsFromViper(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
tempFile, _ := os.CreateTemp("", "*.json") tempFile, _ := os.CreateTemp(t.TempDir(), "*.json")
defer tempFile.Close() defer tempFile.Close()
defer os.Remove(tempFile.Name()) defer os.Remove(tempFile.Name())
tempFile.Write(tt.configBytes) tempFile.Write(tt.configBytes)
@ -506,8 +506,7 @@ func Test_NewOptionsFromConfigEnvVar(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
for k, v := range tt.envKeyPairs { for k, v := range tt.envKeyPairs {
os.Setenv(k, v) t.Setenv(k, v)
defer os.Unsetenv(k)
} }
_, err := newOptionsFromConfig("") _, err := newOptionsFromConfig("")
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
@ -578,7 +577,7 @@ func Test_AutoCertOptionsFromEnvVar(t *testing.T) {
"ok/custom-ca-file": func(t *testing.T) test { "ok/custom-ca-file": func(t *testing.T) test {
certPEM, err := newCACertPEM() certPEM, err := newCACertPEM()
require.NoError(t, err) require.NoError(t, err)
f, err := os.CreateTemp("", "pomerium-test-ca") f, err := os.CreateTemp(t.TempDir(), "pomerium-test-ca")
require.NoError(t, err) require.NoError(t, err)
n, err := f.Write(certPEM) n, err := f.Write(certPEM)
require.NoError(t, err) require.NoError(t, err)
@ -617,8 +616,7 @@ func Test_AutoCertOptionsFromEnvVar(t *testing.T) {
tc := run(t) tc := run(t)
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
for k, v := range tc.envs { for k, v := range tc.envs {
os.Setenv(k, v) t.Setenv(k, v)
defer os.Unsetenv(k)
} }
o, err := newOptionsFromConfig("") o, err := newOptionsFromConfig("")
if err != nil { if err != nil {
@ -658,7 +656,6 @@ func TestCertificatesArrayParsing(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
t.Parallel() t.Parallel()
@ -827,7 +824,6 @@ func TestOptions_DefaultURL(t *testing.T) {
} }
for _, tc := range tests { for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
u, err := tc.f() u, err := tc.f()
@ -1235,7 +1231,6 @@ LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IUUNBUUVFSUdHaDZGbEJlOHl5OWRSSmdtKzM1
0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
}, nil}, }, nil},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
@ -1285,7 +1280,6 @@ func TestOptions_GetCookieSameSite(t *testing.T) {
{"none", http.SameSiteNoneMode}, {"none", http.SameSiteNoneMode},
{"UnKnOwN", http.SameSiteDefaultMode}, {"UnKnOwN", http.SameSiteDefaultMode},
} { } {
tc := tc
t.Run(tc.input, func(t *testing.T) { t.Run(tc.input, func(t *testing.T) {
t.Parallel() t.Parallel()
@ -1314,7 +1308,6 @@ func TestOptions_GetCSRFSameSite(t *testing.T) {
{"UnKnOwN", "", csrf.SameSiteDefaultMode}, {"UnKnOwN", "", csrf.SameSiteDefaultMode},
{"", apple.Name, csrf.SameSiteNoneMode}, {"", apple.Name, csrf.SameSiteNoneMode},
} { } {
tc := tc
t.Run(tc.cookieSameSite, func(t *testing.T) { t.Run(tc.cookieSameSite, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -176,7 +176,6 @@ func Test_PolicyRouteID(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
t.Parallel() t.Parallel()
assert.NoError(t, tt.basePolicy.Validate()) assert.NoError(t, tt.basePolicy.Validate())

View file

@ -11,6 +11,7 @@ import (
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
@ -28,7 +29,6 @@ import (
"github.com/pomerium/pomerium/pkg/identity" "github.com/pomerium/pomerium/pkg/identity"
"github.com/pomerium/pomerium/pkg/identity/manager" "github.com/pomerium/pomerium/pkg/identity/manager"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
oteltrace "go.opentelemetry.io/otel/trace"
) )
// DataBroker represents the databroker service. The databroker service is a simple interface // DataBroker represents the databroker service. The databroker service is a simple interface

2
go.mod
View file

@ -2,8 +2,6 @@ module github.com/pomerium/pomerium
go 1.23.6 go 1.23.6
toolchain go1.23.7
require ( require (
cloud.google.com/go/storage v1.50.0 cloud.google.com/go/storage v1.50.0
contrib.go.opencensus.io/exporter/prometheus v0.4.2 contrib.go.opencensus.io/exporter/prometheus v0.4.2

View file

@ -63,9 +63,7 @@ func TestHealth(t *testing.T) {
endpoints := []string{"healthz", "ping"} endpoints := []string{"healthz", "ping"}
for _, route := range pomeriumRoutes { for _, route := range pomeriumRoutes {
route := route
for _, endpoint := range endpoints { for _, endpoint := range endpoints {
endpoint := endpoint
routeToCheck := fmt.Sprintf("%s/%s", route, endpoint) routeToCheck := fmt.Sprintf("%s/%s", route, endpoint)
t.Run(routeToCheck, func(t *testing.T) { t.Run(routeToCheck, func(t *testing.T) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, routeToCheck, nil) req, err := http.NewRequestWithContext(ctx, http.MethodGet, routeToCheck, nil)

View file

@ -41,6 +41,6 @@ func (v *Value[T]) Swap(val T) T {
} }
// Swap swaps the value atomically. // Swap swaps the value atomically.
func (v *Value[T]) CompareAndSwap(old, new T) bool { func (v *Value[T]) CompareAndSwap(old, n T) bool {
return v.value.CompareAndSwap(old, new) return v.value.CompareAndSwap(old, n)
} }

View file

@ -67,7 +67,6 @@ func TestStatefulSignIn(t *testing.T) {
{"good programmatic request", "corp.example.example", map[string]string{urlutil.QueryIsProgrammatic: "true", urlutil.QueryRedirectURI: "https://dst.some.example/"}, true, &sessions.State{}, &mock.Encoder{}, nil, "", "https://dst.some.example/.pomerium/callback/"}, {"good programmatic request", "corp.example.example", map[string]string{urlutil.QueryIsProgrammatic: "true", urlutil.QueryRedirectURI: "https://dst.some.example/"}, true, &sessions.State{}, &mock.Encoder{}, nil, "", "https://dst.some.example/.pomerium/callback/"},
} }
for _, tt := range tests { for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
sessionStore := &mstore.Store{SaveError: tt.saveError} sessionStore := &mstore.Store{SaveError: tt.saveError}
flow, err := NewStateful(context.Background(), trace.NewNoopTracerProvider(), &config.Config{Options: opts}, sessionStore) flow, err := NewStateful(context.Background(), trace.NewNoopTracerProvider(), &config.Config{Options: opts}, sessionStore)

View file

@ -9,6 +9,9 @@ import (
"net/url" "net/url"
"github.com/go-jose/go-jose/v3" "github.com/go-jose/go-jose/v3"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.opentelemetry.io/otel"
oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/oauth2" "golang.org/x/oauth2"
googlegrpc "google.golang.org/grpc" googlegrpc "google.golang.org/grpc"
"google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/protojson"
@ -31,9 +34,6 @@ import (
"github.com/pomerium/pomerium/pkg/hpke" "github.com/pomerium/pomerium/pkg/hpke"
"github.com/pomerium/pomerium/pkg/identity" "github.com/pomerium/pomerium/pkg/identity"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.opentelemetry.io/otel"
oteltrace "go.opentelemetry.io/otel/trace"
) )
// Stateless implements the stateless authentication flow. In this flow, the // Stateless implements the stateless authentication flow. In this flow, the

View file

@ -551,7 +551,7 @@ func Test_configureTrustedRoots(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
ok := roots.AppendCertsFromPEM(ca.certPEM) ok := roots.AppendCertsFromPEM(ca.certPEM)
require.Equal(t, true, ok) require.Equal(t, true, ok)
f, err := os.CreateTemp("", "pomerium-test-ca") f, err := os.CreateTemp(t.TempDir(), "pomerium-test-ca")
require.NoError(t, err) require.NoError(t, err)
n, err := f.Write(ca.certPEM) n, err := f.Write(ca.certPEM)
require.NoError(t, err) require.NoError(t, err)

View file

@ -9,13 +9,14 @@ import (
"testing" "testing"
"time" "time"
"github.com/stretchr/testify/assert"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/envutil" "github.com/pomerium/pomerium/internal/testenv/envutil"
"github.com/pomerium/pomerium/internal/testenv/scenarios" "github.com/pomerium/pomerium/internal/testenv/scenarios"
"github.com/pomerium/pomerium/internal/testenv/snippets" "github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/upstreams" "github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/stretchr/testify/assert"
) )
var ( var (

View file

@ -66,7 +66,6 @@ func Test_populateLogEvent(t *testing.T) {
{log.AccessLogFieldUpstreamCluster, `{"upstream-cluster":"UPSTREAM-CLUSTER"}`}, {log.AccessLogFieldUpstreamCluster, `{"upstream-cluster":"UPSTREAM-CLUSTER"}`},
{log.AccessLogFieldUserAgent, `{"user-agent":"USER-AGENT"}`}, {log.AccessLogFieldUserAgent, `{"user-agent":"USER-AGENT"}`},
} { } {
tc := tc
t.Run(string(tc.field), func(t *testing.T) { t.Run(string(tc.field), func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -12,6 +12,7 @@ import (
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1" coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1"
"golang.org/x/net/nettest" "golang.org/x/net/nettest"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
@ -36,7 +37,6 @@ import (
"github.com/pomerium/pomerium/pkg/httputil" "github.com/pomerium/pomerium/pkg/httputil"
"github.com/pomerium/pomerium/pkg/telemetry/requestid" "github.com/pomerium/pomerium/pkg/telemetry/requestid"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
oteltrace "go.opentelemetry.io/otel/trace"
) )
// A Service can be mounted on the control plane. // A Service can be mounted on the control plane.
@ -222,8 +222,6 @@ func (srv *Server) Run(ctx context.Context) error {
{"debug", srv.DebugListener, srv.DebugRouter}, {"debug", srv.DebugListener, srv.DebugRouter},
{"metrics", srv.MetricsListener, srv.MetricsRouter}, {"metrics", srv.MetricsListener, srv.MetricsRouter},
} { } {
entry := entry
// start the HTTP server // start the HTTP server
eg.Go(func() error { eg.Go(func() error {
log.Ctx(ctx).Debug(). log.Ctx(ctx).Debug().

View file

@ -8,7 +8,10 @@ import (
"sync" "sync"
"time" "time"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
googlegrpc "google.golang.org/grpc"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/errgrouputil" "github.com/pomerium/pomerium/internal/errgrouputil"
@ -22,9 +25,6 @@ import (
"github.com/pomerium/pomerium/pkg/grpcutil" "github.com/pomerium/pomerium/pkg/grpcutil"
"github.com/pomerium/pomerium/pkg/health" "github.com/pomerium/pomerium/pkg/health"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
googlegrpc "google.golang.org/grpc"
) )
// ConfigSource provides a new Config source that decorates an underlying config with // ConfigSource provides a new Config source that decorates an underlying config with
@ -136,7 +136,6 @@ func (src *ConfigSource) buildNewConfigLocked(ctx context.Context, cfg *config.C
var policyBuilders []errgrouputil.BuilderFunc[config.Policy] var policyBuilders []errgrouputil.BuilderFunc[config.Policy]
for _, cfgpb := range src.dbConfigs { for _, cfgpb := range src.dbConfigs {
for _, routepb := range cfgpb.GetRoutes() { for _, routepb := range cfgpb.GetRoutes() {
routepb := routepb
policyBuilders = append(policyBuilders, func(ctx context.Context) (*config.Policy, error) { policyBuilders = append(policyBuilders, func(ctx context.Context) (*config.Policy, error) {
p, err := src.buildPolicyFromProto(ctx, routepb) p, err := src.buildPolicyFromProto(ctx, routepb)
if err != nil { if err != nil {

View file

@ -10,6 +10,7 @@ import (
"github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp"
"github.com/google/uuid" "github.com/google/uuid"
oteltrace "go.opentelemetry.io/otel/trace"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/emptypb"
@ -22,7 +23,6 @@ import (
"github.com/pomerium/pomerium/pkg/storage/inmemory" "github.com/pomerium/pomerium/pkg/storage/inmemory"
"github.com/pomerium/pomerium/pkg/storage/postgres" "github.com/pomerium/pomerium/pkg/storage/postgres"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
oteltrace "go.opentelemetry.io/otel/trace"
) )
// Server implements the databroker service using an in memory database. // Server implements the databroker service using an in memory database.

View file

@ -34,7 +34,6 @@ func DashboardSubrouter(parent *mux.Router) *mux.Router {
"index.css", "index.css",
"index.js", "index.js",
} { } {
fileName := fileName
r.Path("/" + fileName).Handler(HandlerFunc(func(w http.ResponseWriter, r *http.Request) error { r.Path("/" + fileName).Handler(HandlerFunc(func(w http.ResponseWriter, r *http.Request) error {
return ui.ServeFile(w, r, fileName) return ui.ServeFile(w, r, fileName)
})) }))

View file

@ -6,12 +6,12 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/pomerium/protoutil/streams"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"google.golang.org/grpc" "google.golang.org/grpc"
"github.com/pomerium/pomerium/internal/middleware/responsewriter" "github.com/pomerium/pomerium/internal/middleware/responsewriter"
"github.com/pomerium/pomerium/pkg/telemetry/requestid" "github.com/pomerium/pomerium/pkg/telemetry/requestid"
"github.com/pomerium/protoutil/streams"
) )
// NewHandler injects log into requests context. // NewHandler injects log into requests context.

View file

@ -10,14 +10,14 @@ import (
"time" "time"
"github.com/cenkalti/backoff/v4" "github.com/cenkalti/backoff/v4"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
googlegrpc "google.golang.org/grpc"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/log" "github.com/pomerium/pomerium/internal/log"
"github.com/pomerium/pomerium/pkg/grpc" "github.com/pomerium/pomerium/pkg/grpc"
pb "github.com/pomerium/pomerium/pkg/grpc/registry" pb "github.com/pomerium/pomerium/pkg/grpc/registry"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace"
googlegrpc "google.golang.org/grpc"
) )
// Reporter periodically submits a list of services available on this instance to the service registry // Reporter periodically submits a list of services available on this instance to the service registry

View file

@ -8,11 +8,12 @@ import (
"testing" "testing"
"time" "time"
"github.com/stretchr/testify/assert"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/snippets" "github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/upstreams" "github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/stretchr/testify/assert"
) )
func TestScrapeMetricsEndpoint(t *testing.T) { func TestScrapeMetricsEndpoint(t *testing.T) {

View file

@ -184,12 +184,12 @@ func ocExport(name string, exporter *ocprom.Exporter, r *http.Request, labels ma
exporter.ServeHTTP(rec, r) exporter.ServeHTTP(rec, r)
if rec.Code/100 != 2 { if rec.Code/100 != 2 {
return promProducerResult{name: name, err: errors.New(rec.Result().Status)} //nolint return promProducerResult{name: name, err: errors.New(rec.Result().Status)}
} }
return promProducerResult{ return promProducerResult{
name: name, name: name,
src: rec.Result().Body, //nolint src: rec.Result().Body,
labels: labels, labels: labels,
} }
} }

View file

@ -12,7 +12,6 @@ func AddLabels(
) iter.Seq2[*dto.MetricFamily, error] { ) iter.Seq2[*dto.MetricFamily, error] {
var extra []*dto.LabelPair var extra []*dto.LabelPair
for k, v := range addLabels { for k, v := range addLabels {
k, v := k, v
extra = append(extra, &dto.LabelPair{ extra = append(extra, &dto.LabelPair{
Name: &k, Name: &k,
Value: &v, Value: &v,

View file

@ -6,8 +6,9 @@ import (
"strings" "strings"
"testing" "testing"
"github.com/pomerium/pomerium/internal/telemetry/prometheus"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/pomerium/pomerium/internal/telemetry/prometheus"
) )
// RepeatingReader repeats reading from the beginning after EOF for a specified number of times // RepeatingReader repeats reading from the beginning after EOF for a specified number of times

View file

@ -33,6 +33,15 @@ import (
"testing" "testing"
"time" "time"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/sync/errgroup"
"google.golang.org/grpc/grpclog"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/config/envoyconfig/filemgr" "github.com/pomerium/pomerium/config/envoyconfig/filemgr"
"github.com/pomerium/pomerium/config/otelconfig" "github.com/pomerium/pomerium/config/otelconfig"
@ -49,14 +58,6 @@ import (
"github.com/pomerium/pomerium/pkg/netutil" "github.com/pomerium/pomerium/pkg/netutil"
"github.com/pomerium/pomerium/pkg/slices" "github.com/pomerium/pomerium/pkg/slices"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/sync/errgroup"
"google.golang.org/grpc/grpclog"
) )
// Environment is a lightweight integration test fixture that runs Pomerium // Environment is a lightweight integration test fixture that runs Pomerium
@ -1083,7 +1084,7 @@ func (src *configSource) ModifyConfig(ctx context.Context, m Modifier) {
} }
func newOtelConfigFromEnv(t testing.TB) otelconfig.Config { func newOtelConfigFromEnv(t testing.TB) otelconfig.Config {
f, err := os.CreateTemp("", "tmp-config-*.yaml") f, err := os.CreateTemp(t.TempDir(), "tmp-config-*.yaml")
require.NoError(t, err) require.NoError(t, err)
defer os.Remove(f.Name()) defer os.Remove(f.Name())
f.Close() f.Close()

View file

@ -23,6 +23,7 @@ import (
"github.com/go-jose/go-jose/v3" "github.com/go-jose/go-jose/v3"
"github.com/go-jose/go-jose/v3/jwt" "github.com/go-jose/go-jose/v3/jwt"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/encoding" "github.com/pomerium/pomerium/internal/encoding"
"github.com/pomerium/pomerium/internal/encoding/jws" "github.com/pomerium/pomerium/internal/encoding/jws"

View file

@ -9,11 +9,6 @@ import (
"sync" "sync"
"time" "time"
"github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/internal/testutil/tracetest"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace" "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
@ -21,6 +16,12 @@ import (
tracev1 "go.opentelemetry.io/proto/otlp/trace/v1" tracev1 "go.opentelemetry.io/proto/otlp/trace/v1"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/internal/testutil/tracetest"
) )
type RecordedExportRequest struct { type RecordedExportRequest struct {

View file

@ -6,11 +6,12 @@ import (
"net/http/httptrace" "net/http/httptrace"
"testing" "testing"
"github.com/stretchr/testify/require"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/snippets" "github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/upstreams" "github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/stretchr/testify/require"
) )
func TestDNSOverrides(t *testing.T) { func TestDNSOverrides(t *testing.T) {

View file

@ -4,12 +4,13 @@ import (
"context" "context"
"time" "time"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/pkg/grpcutil"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/connectivity" "google.golang.org/grpc/connectivity"
"google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/credentials/insecure"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/pkg/grpcutil"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
func WaitStartupComplete(env testenv.Environment, timeout ...time.Duration) time.Duration { func WaitStartupComplete(env testenv.Environment, timeout ...time.Duration) time.Duration {

View file

@ -10,7 +10,7 @@ import (
// macos temp directory names are too long // macos temp directory names are too long
// https://github.com/golang/go/issues/62614 // https://github.com/golang/go/issues/62614
func tempDir(t testing.TB) string { func tempDir(t testing.TB) string {
dir, err := os.MkdirTemp("", "test") dir, err := os.MkdirTemp("", "test") //nolint:usetesting
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View file

@ -6,15 +6,16 @@ import (
"net" "net"
"strings" "strings"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/credentials/insecure"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
type GRPCUpstreamOptions struct { type GRPCUpstreamOptions struct {

View file

@ -17,15 +17,15 @@ import (
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
oteltrace "go.opentelemetry.io/otel/trace"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/snippets" "github.com/pomerium/pomerium/internal/testenv/snippets"
"github.com/pomerium/pomerium/internal/testenv/values" "github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
oteltrace "go.opentelemetry.io/otel/trace"
) )
type Protocol string type Protocol string

View file

@ -13,12 +13,13 @@ import (
"net/url" "net/url"
"sync" "sync"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"golang.org/x/net/http2" "golang.org/x/net/http2"
"github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/values"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
type TCPUpstream interface { type TCPUpstream interface {

View file

@ -14,13 +14,14 @@ import (
"sync" "sync"
"time" "time"
"github.com/pomerium/pomerium/integration/forms"
"github.com/pomerium/pomerium/internal/retry"
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
semconv "go.opentelemetry.io/otel/semconv/v1.26.0" semconv "go.opentelemetry.io/otel/semconv/v1.26.0"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"github.com/pomerium/pomerium/integration/forms"
"github.com/pomerium/pomerium/internal/retry"
) )
var ErrRetry = errors.New("error") var ErrRetry = errors.New("error")

View file

@ -6,10 +6,11 @@ import (
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials" "github.com/minio/minio-go/v7/pkg/credentials"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go"
"github.com/testcontainers/testcontainers-go/wait" "github.com/testcontainers/testcontainers-go/wait"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
// WithTestMinIO starts a test MinIO server // WithTestMinIO starts a test MinIO server

View file

@ -8,10 +8,11 @@ import (
"github.com/google/uuid" "github.com/google/uuid"
"github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go"
"github.com/testcontainers/testcontainers-go/wait" "github.com/testcontainers/testcontainers-go/wait"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
// WithTestPostgres starts a postgres database. // WithTestPostgres starts a postgres database.

View file

@ -3,9 +3,10 @@ package tracetest
import ( import (
"testing" "testing"
"github.com/pomerium/pomerium/internal/testutil"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
tracev1 "go.opentelemetry.io/proto/otlp/trace/v1" tracev1 "go.opentelemetry.io/proto/otlp/trace/v1"
"github.com/pomerium/pomerium/internal/testutil"
) )
func TestBuffer(t *testing.T) { func TestBuffer(t *testing.T) {

View file

@ -16,7 +16,6 @@ import (
"unique" "unique"
gocmp "github.com/google/go-cmp/cmp" gocmp "github.com/google/go-cmp/cmp"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
@ -27,6 +26,8 @@ import (
"google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"google.golang.org/protobuf/testing/protocmp" "google.golang.org/protobuf/testing/protocmp"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
type ( type (

View file

@ -48,7 +48,6 @@ func TestValidateTimeParameters(t *testing.T) {
QueryExpiry: {fmt.Sprint(msNow)}, QueryExpiry: {fmt.Sprint(msNow)},
}, ""}, }, ""},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -150,7 +150,6 @@ func TestGetServerNamesForURL(t *testing.T) {
{"tcp", &url.URL{Scheme: "tcp+https", Host: "example.com:1234"}, []string{"example.com"}}, {"tcp", &url.URL{Scheme: "tcp+https", Host: "example.com:1234"}, []string{"example.com"}},
{"tcp with path", &url.URL{Scheme: "tcp+https", Host: "proxy.example.com", Path: "/ssh.example.com:1234"}, []string{"proxy.example.com"}}, {"tcp with path", &url.URL{Scheme: "tcp+https", Host: "proxy.example.com", Path: "/ssh.example.com:1234"}, []string{"proxy.example.com"}},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
got := GetServerNamesForURL(tc.u) got := GetServerNamesForURL(tc.u)
@ -176,7 +175,6 @@ func TestGetDomainsForURL(t *testing.T) {
{"tcp with path", &url.URL{Scheme: "tcp+https", Host: "proxy.example.com", Path: "/ssh.example.com:1234"}, []string{"ssh.example.com:1234"}}, {"tcp with path", &url.URL{Scheme: "tcp+https", Host: "proxy.example.com", Path: "/ssh.example.com:1234"}, []string{"ssh.example.com:1234"}},
} }
for _, tc := range tests { for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()
got := GetDomainsForURL(tc.u, true) got := GetDomainsForURL(tc.u, true)

View file

@ -9,13 +9,14 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/rs/zerolog"
"github.com/spf13/cobra"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/log" "github.com/pomerium/pomerium/internal/log"
"github.com/pomerium/pomerium/pkg/envoy/files" "github.com/pomerium/pomerium/pkg/envoy/files"
"github.com/pomerium/pomerium/pkg/zero/cluster" "github.com/pomerium/pomerium/pkg/zero/cluster"
"github.com/pomerium/pomerium/pkg/zero/importutil" "github.com/pomerium/pomerium/pkg/zero/importutil"
"github.com/rs/zerolog"
"github.com/spf13/cobra"
) )
func BuildImportCmd() *cobra.Command { func BuildImportCmd() *cobra.Command {

View file

@ -4,8 +4,9 @@ import (
"context" "context"
"errors" "errors"
zero "github.com/pomerium/pomerium/internal/zero/api"
"github.com/spf13/cobra" "github.com/spf13/cobra"
zero "github.com/pomerium/pomerium/internal/zero/api"
) )
type zeroClientContextKeyType struct{} type zeroClientContextKeyType struct{}

View file

@ -5,11 +5,11 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/rs/zerolog/log"
"google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/protojson"
"github.com/pomerium/pomerium/internal/zero/apierror" "github.com/pomerium/pomerium/internal/zero/apierror"
"github.com/pomerium/pomerium/pkg/zero/connect" "github.com/pomerium/pomerium/pkg/zero/connect"
"github.com/rs/zerolog/log"
) )
// Watch watches for changes to the config until either context is canceled, // Watch watches for changes to the config until either context is canceled,

View file

@ -24,7 +24,6 @@ func (c *leaser) GetDataBrokerServiceClient() databroker.DataBrokerServiceClient
func (c *leaser) RunLeased(ctx context.Context) error { func (c *leaser) RunLeased(ctx context.Context) error {
eg, ctx := errgroup.WithContext(ctx) eg, ctx := errgroup.WithContext(ctx)
for _, fn := range c.funcs { for _, fn := range c.funcs {
fn := fn
eg.Go(func() error { return fn(ctx, c.client) }) eg.Go(func() error { return fn(ctx, c.client) })
} }
err := eg.Wait() err := eg.Wait()

View file

@ -30,7 +30,6 @@ func TestConfig(t *testing.T) {
{endpoint: "http://localhost:8721/path", expectError: true}, {endpoint: "http://localhost:8721/path", expectError: true},
{endpoint: "https://localhost:8721/path", expectError: true}, {endpoint: "https://localhost:8721/path", expectError: true},
} { } {
tc := tc
t.Run(tc.endpoint, func(t *testing.T) { t.Run(tc.endpoint, func(t *testing.T) {
t.Parallel() t.Parallel()
cfg, err := getConfig(tc.endpoint) cfg, err := getConfig(tc.endpoint)

View file

@ -110,9 +110,9 @@ func (r *BundleCacheEntry) ToAny() (*anypb.Any, error) {
} }
// FromAny unmarshals an anypb.Any into a BundleCacheEntry // FromAny unmarshals an anypb.Any into a BundleCacheEntry
func (r *BundleCacheEntry) FromAny(any *anypb.Any) error { func (r *BundleCacheEntry) FromAny(a *anypb.Any) error {
var s structpb.Struct var s structpb.Struct
err := any.UnmarshalTo(&s) err := a.UnmarshalTo(&s)
if err != nil { if err != nil {
return fmt.Errorf("unmarshal struct: %w", err) return fmt.Errorf("unmarshal struct: %w", err)
} }

View file

@ -5,11 +5,10 @@ import (
"context" "context"
"sync/atomic" "sync/atomic"
"github.com/hashicorp/go-set/v3"
"go.opentelemetry.io/otel/bridge/opencensus" "go.opentelemetry.io/otel/bridge/opencensus"
"go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/metric/metricdata" "go.opentelemetry.io/otel/sdk/metric/metricdata"
"github.com/hashicorp/go-set/v3"
) )
type Producer struct { type Producer struct {

View file

@ -41,7 +41,6 @@ func (p *Producer) Produce(ctx context.Context) ([]metricdata.ScopeMetrics, erro
metrics := make([]metricdata.Metrics, len(ids)) metrics := make([]metricdata.Metrics, len(ids))
eg, ctx := errgroup.WithContext(ctx) eg, ctx := errgroup.WithContext(ctx)
for i := 0; i < len(ids); i++ { for i := 0; i < len(ids); i++ {
i := i
eg.Go(func() error { eg.Go(func() error {
state, err := LoadMetricState(ctx, client, ids[i]) state, err := LoadMetricState(ctx, client, ids[i])
if err != nil { if err != nil {

View file

@ -86,9 +86,9 @@ func (r *MetricState) ToAny() *anypb.Any {
} }
// FromAny unmarshals an anypb.Any into a MetricState // FromAny unmarshals an anypb.Any into a MetricState
func (r *MetricState) FromAny(any *anypb.Any) error { func (r *MetricState) FromAny(a *anypb.Any) error {
var s structpb.Struct var s structpb.Struct
err := any.UnmarshalTo(&s) err := a.UnmarshalTo(&s)
if err != nil { if err != nil {
return fmt.Errorf("unmarshal struct: %w", err) return fmt.Errorf("unmarshal struct: %w", err)
} }

View file

@ -9,6 +9,7 @@ import (
"sync" "sync"
envoy_service_auth_v3 "github.com/envoyproxy/go-control-plane/envoy/service/auth/v3" envoy_service_auth_v3 "github.com/envoyproxy/go-control-plane/envoy/service/auth/v3"
oteltrace "go.opentelemetry.io/otel/trace"
"go.uber.org/automaxprocs/maxprocs" "go.uber.org/automaxprocs/maxprocs"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
@ -29,7 +30,6 @@ import (
"github.com/pomerium/pomerium/pkg/envoy/files" "github.com/pomerium/pomerium/pkg/envoy/files"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/pomerium/pomerium/proxy" "github.com/pomerium/pomerium/proxy"
oteltrace "go.opentelemetry.io/otel/trace"
) )
type Options struct { type Options struct {

View file

@ -21,11 +21,11 @@ type Counter struct {
} }
// New creates a counter for the maximum amount unique elements provided // New creates a counter for the maximum amount unique elements provided
func New(cap uint) *Counter { func New(capacity uint) *Counter {
return &Counter{ return &Counter{
// from paper: a load factor (number of unique values/hash table size) much larger // from paper: a load factor (number of unique values/hash table size) much larger
// than 1.0 (e.g., 12) can be used for accurate estimation (e.g., 1% of error) // than 1.0 (e.g., 12) can be used for accurate estimation (e.g., 1% of error)
Bits: bitset.New(cap / loadFactor), Bits: bitset.New(capacity / loadFactor),
} }
} }

View file

@ -13,11 +13,11 @@ func TestClean(t *testing.T) {
t.Parallel() t.Parallel()
tmpDir := t.TempDir() tmpDir := t.TempDir()
d1, err := os.MkdirTemp(tmpDir, envoyPrefix) d1, err := os.MkdirTemp(tmpDir, envoyPrefix) //nolint:usetesting
require.NoError(t, err) require.NoError(t, err)
d2, err := os.MkdirTemp(tmpDir, envoyPrefix) d2, err := os.MkdirTemp(tmpDir, envoyPrefix) //nolint:usetesting
require.NoError(t, err) require.NoError(t, err)
d3, err := os.MkdirTemp(tmpDir, envoyPrefix) d3, err := os.MkdirTemp(tmpDir, envoyPrefix) //nolint:usetesting
require.NoError(t, err) require.NoError(t, err)
cleanTempDir(tmpDir) cleanTempDir(tmpDir)

View file

@ -57,7 +57,7 @@ func run(ctx context.Context, args []string) error {
func runAll(ctx context.Context) error { func runAll(ctx context.Context) error {
eg, ctx := errgroup.WithContext(ctx) eg, ctx := errgroup.WithContext(ctx)
for _, target := range targets { for _, target := range targets {
target := target
eg.Go(func() error { eg.Go(func() error {
return download(ctx, "./envoy-"+target, baseURL+"/envoy-"+target) return download(ctx, "./envoy-"+target, baseURL+"/envoy-"+target)
}) })

View file

@ -293,6 +293,7 @@ func (s *sharedResourceMonitor) Run(ctx context.Context, envoyPid int) error {
watcherExited := make(chan struct{}) watcherExited := make(chan struct{})
if err := limitWatcher.Watch(ctx); err != nil { if err := limitWatcher.Watch(ctx); err != nil {
ca(nil)
return fmt.Errorf("failed to start watch on cgroup memory limit: %w", err) return fmt.Errorf("failed to start watch on cgroup memory limit: %w", err)
} }
go func() { go func() {
@ -455,11 +456,11 @@ func (d *cgroupV2Driver) MemoryLimit(cgroup string) (uint64, error) {
if err != nil { if err != nil {
return 0, err return 0, err
} }
max := strings.TrimSpace(string(data)) v := strings.TrimSpace(string(data))
if max == "max" { if v == "max" {
return 0, nil return 0, nil
} }
return strconv.ParseUint(max, 10, 64) return strconv.ParseUint(v, 10, 64)
} }
// Validate implements CgroupDriver. // Validate implements CgroupDriver.
@ -570,11 +571,11 @@ func (d *cgroupV1Driver) MemoryLimit(cgroup string) (uint64, error) {
if err != nil { if err != nil {
return 0, err return 0, err
} }
max := strings.TrimSpace(string(data)) v := strings.TrimSpace(string(data))
if max == "max" { if v == "max" {
return 0, nil return 0, nil
} }
return strconv.ParseUint(max, 10, 64) return strconv.ParseUint(v, 10, 64)
} }
// Validate implements CgroupDriver. // Validate implements CgroupDriver.
@ -680,11 +681,11 @@ func (w *memoryLimitWatcher) readValue() (uint64, error) {
if err != nil { if err != nil {
return 0, err return 0, err
} }
max := strings.TrimSpace(string(data)) v := strings.TrimSpace(string(data))
if max == "max" { if v == "max" {
return 0, nil return 0, nil
} }
return strconv.ParseUint(max, 10, 64) return strconv.ParseUint(v, 10, 64)
} }
func (w *memoryLimitWatcher) Watch(ctx context.Context) error { func (w *memoryLimitWatcher) Watch(ctx context.Context) error {

View file

@ -187,7 +187,6 @@ func TestSession_Validate(t *testing.T) {
// Expiry of the ID token does not indicate expiry of the underlying session. // Expiry of the ID token does not indicate expiry of the underlying session.
{"expired id token ok", &Session{IdToken: &IDToken{ExpiresAt: t0}}, nil}, {"expired id token ok", &Session{IdToken: &IDToken{ExpiresAt: t0}}, nil},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -20,7 +20,6 @@ func TestServiceAccount_Validate(t *testing.T) {
{"valid", &ServiceAccount{}, nil}, {"valid", &ServiceAccount{}, nil},
{"expired", &ServiceAccount{ExpiresAt: t0}, ErrServiceAccountExpired}, {"expired", &ServiceAccount{ExpiresAt: t0}, ErrServiceAccountExpired},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -8,10 +8,11 @@ import (
"github.com/go-jose/go-jose/v3" "github.com/go-jose/go-jose/v3"
"github.com/go-jose/go-jose/v3/jwt" "github.com/go-jose/go-jose/v3/jwt"
"github.com/pomerium/pomerium/internal/log"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
"github.com/pomerium/pomerium/internal/log"
) )
// WithStreamSignedJWT returns a StreamClientInterceptor that adds a JWT to requests. // WithStreamSignedJWT returns a StreamClientInterceptor that adds a JWT to requests.

View file

@ -38,9 +38,9 @@ func nextSessionRefresh(
} }
// don't refresh any quicker than the cool-off duration // don't refresh any quicker than the cool-off duration
min := lastRefresh.Add(coolOffDuration) v := lastRefresh.Add(coolOffDuration)
if tm.Before(min) { if tm.Before(v) {
tm = min tm = v
} }
return tm return tm

View file

@ -78,7 +78,6 @@ func TestToAny(t *testing.T) {
}`}, }`},
} }
for _, tc := range testCases { for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
actual := ToAny(tc.value) actual := ToAny(tc.value)
testutil.AssertProtoJSONEqual(t, tc.expect, actual) testutil.AssertProtoJSONEqual(t, tc.expect, actual)

View file

@ -33,7 +33,6 @@ func TestToValue(t *testing.T) {
{"Message", &apipb.Method{Name: "example"}, `{"name": "example"}`}, {"Message", &apipb.Method{Name: "example"}, `{"name": "example"}`},
} }
for _, tc := range testCases { for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
actual := ToStruct(tc.value) actual := ToStruct(tc.value)
testutil.AssertProtoJSONEqual(t, tc.expect, actual) testutil.AssertProtoJSONEqual(t, tc.expect, actual)

View file

@ -458,12 +458,12 @@ func signalServiceChange(ctx context.Context, q querier) error {
return err return err
} }
func jsonbFromAny(any *anypb.Any) ([]byte, error) { func jsonbFromAny(a *anypb.Any) ([]byte, error) {
if any == nil { if a == nil {
return nil, nil return nil, nil
} }
return protojson.Marshal(any) return protojson.Marshal(a)
} }
func timestamppbFromTimestamptz(ts pgtype.Timestamptz) *timestamppb.Timestamp { func timestamppbFromTimestamptz(ts pgtype.Timestamptz) *timestamppb.Timestamp {

View file

@ -8,6 +8,9 @@ import (
"runtime" "runtime"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
"github.com/pomerium/pomerium/internal/testenv/scenarios" "github.com/pomerium/pomerium/internal/testenv/scenarios"
@ -15,8 +18,6 @@ import (
"github.com/pomerium/pomerium/internal/testenv/upstreams" "github.com/pomerium/pomerium/internal/testenv/upstreams"
"github.com/pomerium/pomerium/internal/testutil" "github.com/pomerium/pomerium/internal/testutil"
"github.com/pomerium/pomerium/internal/testutil/tracetest" "github.com/pomerium/pomerium/internal/testutil/tracetest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
func TestQueryTracing(t *testing.T) { func TestQueryTracing(t *testing.T) {

View file

@ -34,7 +34,6 @@ func TestGetDataBrokerRecord(t *testing.T) {
{"cached", 1, 1, 1, 2}, {"cached", 1, 1, 1, 2},
{"invalidated", 1, 2, 3, 4}, {"invalidated", 1, 2, 3, 4},
} { } {
tc := tc
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
t.Parallel() t.Parallel()

View file

@ -49,12 +49,12 @@ type Backend interface {
} }
// MatchAny searches any data with a query. // MatchAny searches any data with a query.
func MatchAny(any *anypb.Any, query string) bool { func MatchAny(a *anypb.Any, query string) bool {
if any == nil { if a == nil {
return false return false
} }
msg, err := any.UnmarshalNew() msg, err := a.UnmarshalNew()
if err != nil { if err != nil {
// ignore invalid any types // ignore invalid any types
log.Error().Err(err).Msg("storage: invalid any type") log.Error().Err(err).Msg("storage: invalid any type")

View file

@ -4,8 +4,9 @@ import (
"net/url" "net/url"
"testing" "testing"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
func TestPomeriumURLQueryCarrier(t *testing.T) { func TestPomeriumURLQueryCarrier(t *testing.T) {

View file

@ -10,13 +10,14 @@ import (
"sync" "sync"
"time" "time"
"github.com/pomerium/pomerium/config/otelconfig"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace" "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/noop" "go.opentelemetry.io/otel/trace/noop"
v1 "go.opentelemetry.io/proto/otlp/trace/v1" v1 "go.opentelemetry.io/proto/otlp/trace/v1"
"github.com/pomerium/pomerium/config/otelconfig"
) )
var ( var (

View file

@ -11,6 +11,12 @@ import (
"testing" "testing"
"time" "time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel"
tracev1 "go.opentelemetry.io/proto/otlp/trace/v1"
"go.uber.org/mock/gomock"
"github.com/pomerium/pomerium/config" "github.com/pomerium/pomerium/config"
"github.com/pomerium/pomerium/internal/log" "github.com/pomerium/pomerium/internal/log"
"github.com/pomerium/pomerium/internal/testenv" "github.com/pomerium/pomerium/internal/testenv"
@ -20,11 +26,6 @@ import (
"github.com/pomerium/pomerium/internal/testutil/tracetest/mock_otlptrace" "github.com/pomerium/pomerium/internal/testutil/tracetest/mock_otlptrace"
"github.com/pomerium/pomerium/internal/version" "github.com/pomerium/pomerium/internal/version"
"github.com/pomerium/pomerium/pkg/telemetry/trace" "github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel"
tracev1 "go.opentelemetry.io/proto/otlp/trace/v1"
"go.uber.org/mock/gomock"
) )
func TestSyncClient(t *testing.T) { func TestSyncClient(t *testing.T) {

View file

@ -9,11 +9,12 @@ import (
"testing" "testing"
"time" "time"
. "github.com/pomerium/pomerium/internal/testutil/tracetest" //nolint:revive
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
. "github.com/pomerium/pomerium/internal/testutil/tracetest" //nolint:revive
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
func TestSpanObserver(t *testing.T) { func TestSpanObserver(t *testing.T) {

View file

@ -4,10 +4,11 @@ import (
"context" "context"
"testing" "testing"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel" "go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/trace/noop" "go.opentelemetry.io/otel/trace/noop"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
func TestUseGlobalPanicTracer(t *testing.T) { func TestUseGlobalPanicTracer(t *testing.T) {

View file

@ -9,13 +9,14 @@ import (
"time" "time"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
"google.golang.org/grpc/stats" "google.golang.org/grpc/stats"
"github.com/pomerium/pomerium/pkg/telemetry/trace"
) )
func TestHTTPMiddleware(t *testing.T) { func TestHTTPMiddleware(t *testing.T) {

View file

@ -7,14 +7,14 @@ import (
"net" "net"
"time" "time"
"github.com/pomerium/pomerium/internal/log" "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1" coltracepb "go.opentelemetry.io/proto/otlp/collector/trace/v1"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/test/bufconn" "google.golang.org/grpc/test/bufconn"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace" "github.com/pomerium/pomerium/internal/log"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
) )
const localExporterMetadataKey = "x-local-exporter" const localExporterMetadataKey = "x-local-exporter"

View file

@ -19,7 +19,6 @@ func TestGetEffectiveDomain(t *testing.T) {
{"https://www.subdomain.example.com/some/path", "example.com"}, {"https://www.subdomain.example.com/some/path", "example.com"},
{"https://example.com/some/path", "example.com"}, {"https://example.com/some/path", "example.com"},
} { } {
tc := tc
t.Run(tc.expect, func(t *testing.T) { t.Run(tc.expect, func(t *testing.T) {
t.Parallel() t.Parallel()