Re: [PATCH 3/4] selftests: ntsync: add wait argument validation tests
Elizabeth Figura <[email protected]> Wed, 01 Jul 2026 11:38:35 -0500
| Newsgroups | gmane.linux.kernel,gmane.comp.emulators.wine.devel |
|---|---|
| Message-ID | <4743910.LvFx2qVVIh@camazotz> |
On Saturday, 27 June 2026 21:42:38 CDT Iv=C3=A1n Ezequiel Rodriguez wrote: > Add coverage for documented EINVAL cases: zero owner on wait any/all, > non-zero pad, and objects from a different /dev/ntsync instance. >=20 > Signed-off-by: Iv=C3=A1n Ezequiel Rodriguez <[email protected]> > --- > .../testing/selftests/drivers/ntsync/ntsync.c | 44 +++++++++++++++++++ > 1 file changed, 44 insertions(+) >=20 > diff --git a/tools/testing/selftests/drivers/ntsync/ntsync.c b/tools/test= ing/selftests/drivers/ntsync/ntsync.c > index 12b4b81edf7f..c9fe4d5987ec 100644 > --- a/tools/testing/selftests/drivers/ntsync/ntsync.c > +++ b/tools/testing/selftests/drivers/ntsync/ntsync.c > @@ -1340,4 +1340,48 @@ TEST(stress_wait) > close(stress_device); > } > =20 > +TEST(wait_args_validation) > +{ > + struct ntsync_sem_args sem_args =3D { .count =3D 1, .max =3D 1 }; > + struct ntsync_wait_args wait_args =3D {0}; > + struct timespec timeout; > + int fd, fd2, sem, ret; > + __u32 index; > + > + fd =3D open("/dev/ntsync", O_CLOEXEC | O_RDONLY); > + ASSERT_GE(fd, 0); > + > + fd2 =3D open("/dev/ntsync", O_CLOEXEC | O_RDONLY); > + ASSERT_GE(fd2, 0); > + > + sem =3D ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); > + EXPECT_GE(sem, 0); > + > + ret =3D wait_any(fd, 1, &sem, 0, &index); > + EXPECT_EQ(-1, ret); > + EXPECT_EQ(EINVAL, errno); > + > + ret =3D wait_all(fd, 1, &sem, 0, &index); > + EXPECT_EQ(-1, ret); > + EXPECT_EQ(EINVAL, errno); > + > + clock_gettime(CLOCK_MONOTONIC, &timeout); > + wait_args.timeout =3D timeout.tv_sec * 1000000000ULL + timeout.tv_nsec; > + wait_args.count =3D 0; > + wait_args.objs =3D 0; > + wait_args.owner =3D 123; > + wait_args.pad =3D 1; > + ret =3D ioctl(fd, NTSYNC_IOC_WAIT_ANY, &wait_args); > + EXPECT_EQ(-1, ret); > + EXPECT_EQ(EINVAL, errno); > + > + ret =3D wait_any(fd2, 1, &sem, 123, &index); > + EXPECT_EQ(-1, ret); > + EXPECT_EQ(EINVAL, errno); > + > + close(sem); > + close(fd2); > + close(fd); > +} > + > TEST_HARNESS_MAIN >=20 Reviewed-by: Elizabeth Figura <[email protected]>