diff options
Diffstat (limited to 'integrationtests/aio_test.go')
| -rw-r--r-- | integrationtests/aio_test.go | 20 |
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) +} |
