diff --git a/pkg/resource/perf_test.go b/pkg/resource/perf_test.go index 0344800..e56316f 100644 --- a/pkg/resource/perf_test.go +++ b/pkg/resource/perf_test.go @@ -1,50 +1,42 @@ package resource import ( + "bufio" "context" "os" "os/exec" + "strconv" "testing" "time" "log/slog" ) -func TestHasPerfEvent(t *testing.T) { +func TestPerfExecutor(t *testing.T) { t.Parallel() + var timeout = 10 * time.Second - logger := slog.Default() - perfExecuter, err := NewPerfExecuter(logger) + f, err := os.Open("/proc/sys/kernel/perf_event_paranoid") if err != nil { t.Fatal(err) } - if perfExecuter.binPath == "" { - t.Skip("Skip test because perf is not installed") - } - ctx := context.Background() - buf, err := perfExecuter.GetEvent(ctx, "./testdata/no_event.data") + scanner := bufio.NewScanner(f) + + + paranoid, err := strconv.Atoi(string(bytes)) if err != nil { t.Fatal(err) } - if perfExecuter.HasPerfEvent(ctx, buf) { - t.Fatalf("Expecting false, but got true") + if paranoid >= 0 { + t.Skipf("Skip test because perf_event_paranoid is %q", paranoid) } - buf, err = perfExecuter.GetEvent(ctx, "./testdata/has_events.data") + _, err = exec.LookPath("perf") if err != nil { - t.Fatal(err) - } - - if !perfExecuter.HasPerfEvent(ctx, buf) { - t.Fatalf("Expecting true, but got false") + t.Skip("Skip test because perf is not installed") } -} - -func TestPerfExecutor(t *testing.T) { - var timeout = 10 * time.Second - t.Parallel() logger := slog.Default() perfExecuter, err := NewPerfExecuter(logger)