summaryrefslogtreecommitdiff
path: root/integrationtests/readwrite_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-04 20:19:37 +0200
committerPaul Buetow <paul@buetow.org>2026-03-04 20:20:25 +0200
commit96225fb6159212a8851043a08d781aba721b4e78 (patch)
treeabebcaa74594886c3f130a6c03b7aa2691849cf5 /integrationtests/readwrite_test.go
parent1f8b6804f69632914ad0ab64892021315e99f421 (diff)
Fix Go mistake findings and stabilize integration timing
Diffstat (limited to 'integrationtests/readwrite_test.go')
-rw-r--r--integrationtests/readwrite_test.go35
1 files changed, 27 insertions, 8 deletions
diff --git a/integrationtests/readwrite_test.go b/integrationtests/readwrite_test.go
index a55bf78..4e8cbef 100644
--- a/integrationtests/readwrite_test.go
+++ b/integrationtests/readwrite_test.go
@@ -98,11 +98,11 @@ func TestReadwriteWronlyRead(t *testing.T) {
MinCount: 1,
},
})
- assertEventBytesAtLeast(t, result, ExpectedEvent{
+ assertEventBytesEqual(t, result, ExpectedEvent{
PathContains: "wronlyfile.txt",
Tracepoint: "enter_read",
Comm: "ioworkload",
- }, 1)
+ }, 0)
assertEventBytesReasonable(t, result, ExpectedEvent{
PathContains: "wronlyfile.txt",
Tracepoint: "enter_read",
@@ -119,11 +119,11 @@ func TestReadwriteRdonlyWrite(t *testing.T) {
MinCount: 1,
},
})
- assertEventBytesAtLeast(t, result, ExpectedEvent{
+ assertEventBytesEqual(t, result, ExpectedEvent{
PathContains: "rdonlywritefile.txt",
Tracepoint: "enter_write",
Comm: "ioworkload",
- }, 1)
+ }, 0)
assertEventBytesReasonable(t, result, ExpectedEvent{
PathContains: "rdonlywritefile.txt",
Tracepoint: "enter_write",
@@ -140,11 +140,11 @@ func TestReadwritePreadInvalid(t *testing.T) {
MinCount: 1,
},
})
- assertEventBytesAtLeast(t, result, ExpectedEvent{
+ assertEventBytesEqual(t, result, ExpectedEvent{
PathContains: "preadinvalid.txt",
Tracepoint: "enter_pread64",
Comm: "ioworkload",
- }, 1)
+ }, 0)
assertEventBytesReasonable(t, result, ExpectedEvent{
PathContains: "preadinvalid.txt",
Tracepoint: "enter_pread64",
@@ -161,11 +161,11 @@ func TestReadwritePwriteInvalid(t *testing.T) {
MinCount: 1,
},
})
- assertEventBytesAtLeast(t, result, ExpectedEvent{
+ assertEventBytesEqual(t, result, ExpectedEvent{
PathContains: "pwriteinvalid.txt",
Tracepoint: "enter_pwrite64",
Comm: "ioworkload",
- }, 1)
+ }, 0)
assertEventBytesReasonable(t, result, ExpectedEvent{
PathContains: "pwriteinvalid.txt",
Tracepoint: "enter_pwrite64",
@@ -192,6 +192,25 @@ func assertEventBytesAtLeast(t *testing.T, result TestResult, exp ExpectedEvent,
}
}
+func assertEventBytesEqual(t *testing.T, result TestResult, exp ExpectedEvent, wantBytes uint64) {
+ t.Helper()
+ var matched bool
+ var totalBytes uint64
+ for _, rec := range result.Records {
+ if !matchesExpectation(rec, exp) {
+ continue
+ }
+ matched = true
+ totalBytes += rec.Cnt.Bytes
+ }
+ if !matched {
+ t.Fatalf("expected event not found while asserting bytes: %+v", exp)
+ }
+ if totalBytes != wantBytes {
+ t.Fatalf("bytes for %+v mismatch: got=%d want=%d", exp, totalBytes, wantBytes)
+ }
+}
+
func assertEventBytesReasonable(t *testing.T, result TestResult, exp ExpectedEvent) {
t.Helper()
const maxReasonableBytes = 1 << 20 // 1MiB is far above any bytes used in these scenarios.