summaryrefslogtreecommitdiff
path: root/integrationtests/aio_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'integrationtests/aio_test.go')
-rw-r--r--integrationtests/aio_test.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/integrationtests/aio_test.go b/integrationtests/aio_test.go
index e41e854..b38e20b 100644
--- a/integrationtests/aio_test.go
+++ b/integrationtests/aio_test.go
@@ -31,3 +31,23 @@ func TestAioSetupEinval(t *testing.T) {
},
}, aioTraceArgs)
}
+
+// aioSubmitTraceArgs additionally traces io_submit so the submit scenario can
+// assert on its enter tracepoint. io_submit is KindNull (FamilyAIO): the enter
+// event captures no fd/path (ctx_id is an AIO context handle, not an fd, and
+// iocbpp is an opaque userspace pointer) and the exit event carries the raw
+// return value (a count of iocbs submitted, classified UNCLASSIFIED).
+var aioSubmitTraceArgs = []string{"-trace-syscalls", "io_setup,io_submit,io_destroy,close"}
+
+// TestAioSubmit exercises io_submit(2) end-to-end: the workload sets up an AIO
+// context and submits one real iocb (a positional write). ior must record the
+// enter_io_submit tracepoint for the AIO family workload.
+func TestAioSubmit(t *testing.T) {
+ runScenarioResultWithIorArgs(t, "aio-submit", []ExpectedEvent{
+ {
+ Tracepoint: "enter_io_submit",
+ Comm: "ioworkload",
+ MinCount: 1,
+ },
+ }, aioSubmitTraceArgs)
+}