diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-04 20:19:37 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-04 20:20:25 +0200 |
| commit | 96225fb6159212a8851043a08d781aba721b4e78 (patch) | |
| tree | abebcaa74594886c3f130a6c03b7aa2691849cf5 /integrationtests/readwrite_test.go | |
| parent | 1f8b6804f69632914ad0ab64892021315e99f421 (diff) | |
Fix Go mistake findings and stabilize integration timing
Diffstat (limited to 'integrationtests/readwrite_test.go')
| -rw-r--r-- | integrationtests/readwrite_test.go | 35 |
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. |
