summaryrefslogtreecommitdiff
path: root/integrationtests
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-19 10:32:32 +0300
committerPaul Buetow <paul@buetow.org>2026-05-19 10:32:32 +0300
commit9cc2c7b3c4c7a1f1837a4a5260f11ccea5814c83 (patch)
tree423ab8233039f23bee0d4fbcb98a0b0a68841476 /integrationtests
parent127516b4bf63dc922df222825a9a6a1d7eacc214 (diff)
u6: fix socketpair exit fd capture and socket filtering
Diffstat (limited to 'integrationtests')
-rw-r--r--integrationtests/socket_test.go58
1 files changed, 55 insertions, 3 deletions
diff --git a/integrationtests/socket_test.go b/integrationtests/socket_test.go
index a48d628..481ca86 100644
--- a/integrationtests/socket_test.go
+++ b/integrationtests/socket_test.go
@@ -1,21 +1,73 @@
package integrationtests
-import "testing"
+import (
+ "strings"
+ "testing"
+)
func TestSocketBasic(t *testing.T) {
- runScenario(t, "socket-basic", []ExpectedEvent{
+ result, _ := runScenarioResult(t, "socket-basic", []ExpectedEvent{
{
Tracepoint: "enter_socket",
MinCount: 1,
},
+ {
+ Tracepoint: "enter_close",
+ MinCount: 1,
+ },
})
+
+ assertTracepointPathPrefix(t, result, "enter_socket", "socket:1:")
+ assertTracepointPathPrefix(t, result, "enter_close", "socket:1:")
}
func TestSocketpairBasic(t *testing.T) {
- runScenario(t, "socketpair-basic", []ExpectedEvent{
+ result, _ := runScenarioResult(t, "socketpair-basic", []ExpectedEvent{
{
Tracepoint: "enter_socketpair",
MinCount: 1,
},
+ {
+ Tracepoint: "enter_close",
+ MinCount: 2,
+ },
})
+
+ assertTracepointPathPrefix(t, result, "enter_socketpair", "socket:1:")
+ if got := totalTracepointPathCount(result, "enter_close", "socket:1:"); got < 2 {
+ t.Fatalf("enter_close records with tracked socket descriptor prefix = %d, want >= 2", got)
+ }
+}
+
+func assertTracepointPathPrefix(t *testing.T, result TestResult, tracepoint, wantPrefix string) {
+ t.Helper()
+ if got := countTracepointPathPrefix(result, tracepoint, wantPrefix); got == 0 {
+ t.Fatalf("expected at least one %s record with path prefix %q", tracepoint, wantPrefix)
+ }
+}
+
+func countTracepointPathPrefix(result TestResult, tracepoint, wantPrefix string) int {
+ var count int
+ for _, rec := range result.Records {
+ if !strings.Contains(rec.TraceID.String(), tracepoint) {
+ continue
+ }
+ if strings.HasPrefix(rec.Path, wantPrefix) {
+ count++
+ }
+ }
+ return count
+}
+
+func totalTracepointPathCount(result TestResult, tracepoint, wantPrefix string) uint64 {
+ var total uint64
+ for _, rec := range result.Records {
+ if !strings.Contains(rec.TraceID.String(), tracepoint) {
+ continue
+ }
+ if strings.HasPrefix(rec.Path, wantPrefix) {
+ total += rec.Cnt.Count
+ }
+ }
+ return total
}