Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ linters:
non-tests:
files:
- '!$test'
- '!**/*test/*.go'
- '!**/testutils/*.go'
- '!**/test/**/*.go'
deny:
- pkg: testing
- pkg: github.com/stretchr/testify
Expand Down Expand Up @@ -220,7 +219,6 @@ linters:
disable:
- float-compare
- go-require
- require-error
exclusions:
generated: lax
presets:
Expand Down
17 changes: 9 additions & 8 deletions cli/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

const (
Expand Down Expand Up @@ -51,13 +52,13 @@ func TestFindPID(t *testing.T) {
t.Run("PID", func(t *testing.T) {
const pid = 4
got, err := findPID(ctx, discardLogger, pid, appPath)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, int(pid), got)
})

t.Run("BinPath", func(t *testing.T) {
got, err := findPID(ctx, discardLogger, -1, appPath)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, appPathPID, got)

got, err = findPID(ctx, discardLogger, -1, missingPath)
Expand All @@ -68,7 +69,7 @@ func TestFindPID(t *testing.T) {
t.Run("OTEL_GO_AUTO_TARGET_PID", func(t *testing.T) {
t.Setenv(envTargetPIDKey, "2000")
got, err := findPID(ctx, discardLogger, -1, "")
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, int(2000), got)

t.Setenv(envTargetPIDKey, "invalid")
Expand All @@ -79,7 +80,7 @@ func TestFindPID(t *testing.T) {
t.Run("OTEL_GO_AUTO_TARGET_EXE", func(t *testing.T) {
t.Setenv(envTargetExeKey, appPath)
got, err := findPID(ctx, discardLogger, -1, "")
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, appPathPID, got)
})

Expand All @@ -89,21 +90,21 @@ func TestFindPID(t *testing.T) {

const pid = 4
got, err := findPID(ctx, discardLogger, pid, appPath)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, int(pid), got)

got, err = findPID(ctx, discardLogger, -1, appPath)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, appPathPID, got)

got, err = findPID(ctx, discardLogger, -1, "")
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, 2000, got)

os.Unsetenv(envTargetPIDKey)

got, err = findPID(ctx, discardLogger, -1, "")
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, altPathPID, got)
})
}
7 changes: 4 additions & 3 deletions cli/process_poller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"time"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

type entry struct {
Expand Down Expand Up @@ -80,19 +81,19 @@ func TestProcessPollerPoll(t *testing.T) {

pp := ProcessPoller{BinPath: appPath}
pid, err := pp.Poll(ctx)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, appPathPID, pid)

pp.BinPath = altPath
pid, err = pp.Poll(ctx)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, altPathPID, pid)

pp.Interval = time.Millisecond
pp.BinPath = "/path/that/is/not/found"
ctx, cancel := context.WithTimeout(ctx, time.Second)
defer cancel()
pid, err = pp.Poll(ctx)
assert.ErrorIs(t, err, context.DeadlineExceeded)
assert.ErrorIs(t, err, context.DeadlineExceeded) //nolint:testifylint // Continue on failure.
assert.Zero(t, pid)
}
6 changes: 3 additions & 3 deletions instrumentation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func TestWithSampler(t *testing.T) {
c, err := newInstConfig(context.Background(), []InstrumentationOption{})
require.NoError(t, err)
sc, err := convertSamplerToConfig(c.sampler)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, sampling.DefaultConfig().Samplers, sc.Samplers)
assert.Equal(t, sampling.ParentBasedID, sc.ActiveSampler)
conf, ok := sc.Samplers[sampling.ParentBasedID]
Expand All @@ -110,7 +110,7 @@ func TestWithSampler(t *testing.T) {
c, err := newInstConfig(context.Background(), []InstrumentationOption{WithEnv()})
require.NoError(t, err)
sc, err := convertSamplerToConfig(c.sampler)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, sampling.ParentBasedID, sc.ActiveSampler)
parentBasedConfig, ok := sc.Samplers[sampling.ParentBasedID]
assert.True(t, ok)
Expand Down Expand Up @@ -146,7 +146,7 @@ func TestWithSampler(t *testing.T) {
})
require.NoError(t, err)
sc, err := convertSamplerToConfig(c.sampler)
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, sampling.ParentBasedID, sc.ActiveSampler)
parentBasedConfig, ok := sc.Samplers[sampling.ParentBasedID]
assert.True(t, ok)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"time"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/pdata/pcommon"
"go.opentelemetry.io/collector/pdata/ptrace"
semconv "go.opentelemetry.io/otel/semconv/v1.30.0"
Expand Down Expand Up @@ -66,9 +67,9 @@ func TestConvertEvent(t *testing.T) {
copy(rawFragment[:], []byte(rawFragmentString))

spId, err := trace.SpanIDFromHex("00f067aa0ba902b7")
assert.NoError(t, err)
require.NoError(t, err)
trId, err := trace.TraceIDFromHex("00f067aa0ba902b700f067aa0ba902b7")
assert.NoError(t, err)
require.NoError(t, err)

testCases := []struct {
name string
Expand Down
55 changes: 28 additions & 27 deletions internal/pkg/instrumentation/kernel/cpu_linux_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

func setContent(t *testing.T, path, text string) {
Expand All @@ -23,105 +24,105 @@ func setNotReadable(t *testing.T, path string) {

func TestGetCPUCountFromSysDevices(t *testing.T) {
noFile, err := os.CreateTemp(t.TempDir(), "not_existent_fake_cpu_present")
assert.NoError(t, err)
require.NoError(t, err)
notPath, err := filepath.Abs(noFile.Name())
assert.NoError(t, err)
assert.NoError(t, noFile.Close())
assert.NoError(t, os.Remove(noFile.Name()))
require.NoError(t, err)
require.NoError(t, noFile.Close())
require.NoError(t, os.Remove(noFile.Name()))

// Setup for testing file that doesn't exist
cpuPresentPath = notPath
ncpu, err := getCPUCountFromSysDevices()
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, uint64(0), ncpu)

tempFile, err := os.CreateTemp(t.TempDir(), "fake_cpu_present")
assert.NoError(t, err)
require.NoError(t, err)
path, err := filepath.Abs(tempFile.Name())
assert.NoError(t, err)
assert.NoError(t, tempFile.Close())
require.NoError(t, err)
require.NoError(t, tempFile.Close())

defer os.Remove(tempFile.Name())
// Setup for testing
cpuPresentPath = path

setContent(t, path, "0-7")
ncpu, err = getCPUCountFromSysDevices()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(8), ncpu)

setContent(t, path, "0-7,10-15")
ncpu, err = getCPUCountFromSysDevices()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(14), ncpu)

setContent(t, path, "0-7,10-15,20-23")
ncpu, err = getCPUCountFromSysDevices()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(18), ncpu)

setContent(t, path, "0-")
ncpu, err = getCPUCountFromSysDevices()
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, uint64(0), ncpu)

setNotReadable(t, path)
ncpu, err = getCPUCountFromSysDevices()
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, uint64(0), ncpu)
}

func TestGetCPUCountFromProc(t *testing.T) {
noFile, err := os.CreateTemp(t.TempDir(), "not_existent_fake_cpuinfo")
assert.NoError(t, err)
require.NoError(t, err)
notPath, err := filepath.Abs(noFile.Name())
assert.NoError(t, err)
assert.NoError(t, noFile.Close())
assert.NoError(t, os.Remove(noFile.Name()))
require.NoError(t, err)
require.NoError(t, noFile.Close())
require.NoError(t, os.Remove(noFile.Name()))

// Setup for testing file that doesn't exist
procInfoPath = notPath
ncpu, err := getCPUCountFromProc()
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, uint64(0), ncpu)

tempFile, err := os.CreateTemp(t.TempDir(), "fake_cpuinfo")
assert.NoError(t, err)
require.NoError(t, err)
path, err := filepath.Abs(tempFile.Name())
assert.NoError(t, err)
assert.NoError(t, tempFile.Close())
require.NoError(t, err)
require.NoError(t, tempFile.Close())

defer os.Remove(tempFile.Name())
// Setup for testing
procInfoPath = path

setContent(t, path, "processor : 0")
ncpu, err = getCPUCountFromProc()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(1), ncpu)

setContent(t, path, "processor : 0\nprocessor : 1")
ncpu, err = getCPUCountFromProc()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(2), ncpu)

setContent(t, path, "processor : 0\nprocessor : 1\nprocessor : 2")
ncpu, err = getCPUCountFromProc()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(3), ncpu)

setContent(t, path, "processor : 0\nprocessor : 1\nprocessor : 2\nprocessor : 3")
ncpu, err = getCPUCountFromProc()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(4), ncpu)

setContent(t, path, "processor : 0\n some text \nprocessor : 1")
ncpu, err = getCPUCountFromProc()
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(t, uint64(2), ncpu)

setNotReadable(t, path)
ncpu, err = getCPUCountFromProc()
assert.Error(t, err)
require.Error(t, err)
assert.Equal(t, uint64(0), ncpu)
}
5 changes: 3 additions & 2 deletions internal/pkg/instrumentation/kernel/lockdown_linux_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

func TestGetLockdownMode(t *testing.T) {
noFile, err := os.CreateTemp(t.TempDir(), "not_existent_fake_lockdown")
assert.NoError(t, err)
require.NoError(t, err)
notPath, err := filepath.Abs(noFile.Name())
assert.NoError(t, err)
assert.NoError(t, noFile.Close())
Expand All @@ -26,7 +27,7 @@ func TestGetLockdownMode(t *testing.T) {
assert.Equal(t, LockdownModeNone, getLockdownMode())

tempFile, err := os.CreateTemp(t.TempDir(), "fake_lockdown")
assert.NoError(t, err)
require.NoError(t, err)
path, err := filepath.Abs(tempFile.Name())
assert.NoError(t, err)
assert.NoError(t, tempFile.Close())
Expand Down
26 changes: 10 additions & 16 deletions internal/pkg/instrumentation/manager_load_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ func TestLoadProbes(t *testing.T) {
pid := process.ID(id)

info, err := process.NewInfo(pid, make(map[string]interface{}))
if info == nil {
t.Fatalf("failed to create process.Info: %v", err)
}
require.NotNil(t, info, "failed to create process.Info: %v", err)
// Reset Info module information.
info.Modules = make(map[string]*semver.Version)

Expand Down Expand Up @@ -110,31 +108,27 @@ func setupTestModule(t *testing.T) int {
// Initialize a Go module
cmd := exec.Command("go", "mod", "init", "example.com/testmodule")
cmd.Dir = tempDir
if err := cmd.Run(); err != nil {
t.Fatalf("failed to initialize Go module: %v", err)
}
require.NoError(t, cmd.Run(), "failed to initialize Go module")

mainGoPath := filepath.Join(tempDir, "main.go")
if err := os.WriteFile(mainGoPath, []byte(mainGoContent), 0o600); err != nil {
t.Fatalf("failed to write main.go: %v", err)
}
require.NoError(
t,
os.WriteFile(mainGoPath, []byte(mainGoContent), 0o600),
"failed to write main.go",
)

// Compile the Go program
binaryPath := filepath.Join(tempDir, "testbinary")
cmd = exec.Command("go", "build", "-o", binaryPath, mainGoPath)
cmd.Dir = tempDir
if err := cmd.Run(); err != nil {
t.Fatalf("failed to compile binary: %v", err)
}
require.NoError(t, cmd.Run(), "failed to compile binary")

// Run the compiled binary
cmd = exec.Command(binaryPath)
cmd.Dir = tempDir
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Start(); err != nil {
t.Fatalf("failed to start binary: %v", err)
}
require.NoError(t, cmd.Start(), "failed to start binary")

// Ensure the process is killed when the test ends
t.Cleanup(func() {
Expand Down Expand Up @@ -177,7 +171,7 @@ func ProbesLoad(t *testing.T, info *process.Info, p TestProbe) {
}

c, err := ebpf.NewCollectionWithOptions(spec, opts)
if !assert.NoError(t, err) {
if !assert.NoError(t, err) { //nolint:testifylint // Cannot use require here
var ve *ebpf.VerifierError
if errors.As(err, &ve) && v {
t.Logf("Verifier log: %-100v\n", ve)
Expand Down
2 changes: 1 addition & 1 deletion internal/pkg/instrumentation/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ func TestRunStoppingByStop(t *testing.T) {
return false
}
}, time.Second, 10*time.Millisecond)
assert.NoError(t, err)
require.NoError(t, err)
assert.True(t, p.closed.Load(), "Probe not closed")
}

Expand Down
Loading
Loading