From 96225fb6159212a8851043a08d781aba721b4e78 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 4 Mar 2026 20:19:37 +0200 Subject: Fix Go mistake findings and stabilize integration timing --- integrationtests/readwrite_test.go | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'integrationtests/readwrite_test.go') 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. -- cgit v1.2.3