1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
From: Reinhard Tartler <siretart@tauware.de>
Date: Sun, 24 Aug 2025 06:27:19 -0400
Subject: Skip tests that require permissions not found inside user namespaces
Forwarded: not-needed
---
internal/testutils/bpffs.go | 4 ++++
internal/tracefs/kprobe_test.go | 4 ++++
internal/tracefs/perf_event_test.go | 4 ++++
rlimit/rlimit_linux_test.go | 4 ++++
4 files changed, 16 insertions(+)
diff --git a/internal/testutils/bpffs.go b/internal/testutils/bpffs.go
index 7df15a3..2e46596 100644
--- a/internal/testutils/bpffs.go
+++ b/internal/testutils/bpffs.go
@@ -2,6 +2,7 @@ package testutils
import (
"os"
+ "strings"
"testing"
)
@@ -13,6 +14,9 @@ func TempBPFFS(tb testing.TB) string {
tmp, err := os.MkdirTemp("/sys/fs/bpf", "ebpf-test")
if err != nil {
+ if strings.Contains(err.Error(), "permission denied") {
+ tb.Skipf("Skipping test: %v", err)
+ }
tb.Fatal("Create temporary directory on BPFFS:", err)
}
tb.Cleanup(func() { os.RemoveAll(tmp) })
diff --git a/internal/tracefs/kprobe_test.go b/internal/tracefs/kprobe_test.go
index 78b60c6..7912164 100644
--- a/internal/tracefs/kprobe_test.go
+++ b/internal/tracefs/kprobe_test.go
@@ -3,6 +3,7 @@ package tracefs
import (
"fmt"
"os"
+ "strings"
"testing"
"github.com/go-quicktest/qt"
@@ -66,6 +67,9 @@ func TestNewEvent(t *testing.T) {
evt, err := NewEvent(args)
testutils.SkipIfNotSupportedOnOS(t, err)
+ if err != nil && strings.Contains(err.Error(), "permission denied") {
+ t.Skipf("Skipping test: %v", err)
+ }
qt.Assert(t, qt.IsNil(err))
defer evt.Close()
diff --git a/internal/tracefs/perf_event_test.go b/internal/tracefs/perf_event_test.go
index 1164ef7..a03fede 100644
--- a/internal/tracefs/perf_event_test.go
+++ b/internal/tracefs/perf_event_test.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"os"
+ "strings"
"testing"
"github.com/go-quicktest/qt"
@@ -14,6 +15,9 @@ import (
func TestEventID(t *testing.T) {
eid, err := EventID("syscalls", "sys_enter_mmap")
testutils.SkipIfNotSupportedOnOS(t, err)
+ if err != nil && strings.Contains(err.Error(), "permission denied") {
+ t.Skipf("Skipping test: %v", err)
+ }
qt.Assert(t, qt.IsNil(err))
qt.Assert(t, qt.Not(qt.Equals(eid, 0)))
}
diff --git a/rlimit/rlimit_linux_test.go b/rlimit/rlimit_linux_test.go
index 95f1cfc..bcfbaad 100644
--- a/rlimit/rlimit_linux_test.go
+++ b/rlimit/rlimit_linux_test.go
@@ -1,6 +1,7 @@
package rlimit
import (
+ "strings"
"testing"
"github.com/cilium/ebpf/internal/linux"
@@ -14,6 +15,9 @@ func TestRemoveMemlock(t *testing.T) {
qt.Assert(t, qt.IsNil(unix.Prlimit(0, unix.RLIMIT_MEMLOCK, nil, &before)))
err := RemoveMemlock()
+ if err != nil && strings.Contains(err.Error(), "operation not permitted") {
+ t.Skipf("Skipping test: %v", err)
+ }
qt.Assert(t, qt.IsNil(err))
var after unix.Rlimit
|