Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: ntsync: Add some tests for auto-reset event state.

Test event-specific ioctls NTSYNC_IOC_EVENT_SET, NTSYNC_IOC_EVENT_RESET,
NTSYNC_IOC_EVENT_PULSE, NTSYNC_IOC_EVENT_READ for auto-reset events, and
waiting on auto-reset events.

Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
Link: https://lore.kernel.org/r/20241213193511.457338-24-zfigura@codeweavers.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Elizabeth Figura and committed by
Greg Kroah-Hartman
b4e4dd5d d2083b5f

+56
+56
tools/testing/selftests/drivers/ntsync/ntsync.c
··· 426 426 close(fd); 427 427 } 428 428 429 + TEST(auto_event_state) 430 + { 431 + struct ntsync_event_args event_args; 432 + __u32 index, signaled; 433 + int fd, event, ret; 434 + 435 + fd = open("/dev/ntsync", O_CLOEXEC | O_RDONLY); 436 + ASSERT_LE(0, fd); 437 + 438 + event_args.manual = 0; 439 + event_args.signaled = 1; 440 + event = ioctl(fd, NTSYNC_IOC_CREATE_EVENT, &event_args); 441 + EXPECT_LE(0, event); 442 + 443 + check_event_state(event, 1, 0); 444 + 445 + signaled = 0xdeadbeef; 446 + ret = ioctl(event, NTSYNC_IOC_EVENT_SET, &signaled); 447 + EXPECT_EQ(0, ret); 448 + EXPECT_EQ(1, signaled); 449 + check_event_state(event, 1, 0); 450 + 451 + ret = wait_any(fd, 1, &event, 123, &index); 452 + EXPECT_EQ(0, ret); 453 + EXPECT_EQ(0, index); 454 + check_event_state(event, 0, 0); 455 + 456 + signaled = 0xdeadbeef; 457 + ret = ioctl(event, NTSYNC_IOC_EVENT_RESET, &signaled); 458 + EXPECT_EQ(0, ret); 459 + EXPECT_EQ(0, signaled); 460 + check_event_state(event, 0, 0); 461 + 462 + ret = wait_any(fd, 1, &event, 123, &index); 463 + EXPECT_EQ(-1, ret); 464 + EXPECT_EQ(ETIMEDOUT, errno); 465 + 466 + ret = ioctl(event, NTSYNC_IOC_EVENT_SET, &signaled); 467 + EXPECT_EQ(0, ret); 468 + EXPECT_EQ(0, signaled); 469 + 470 + ret = ioctl(event, NTSYNC_IOC_EVENT_PULSE, &signaled); 471 + EXPECT_EQ(0, ret); 472 + EXPECT_EQ(1, signaled); 473 + check_event_state(event, 0, 0); 474 + 475 + ret = ioctl(event, NTSYNC_IOC_EVENT_PULSE, &signaled); 476 + EXPECT_EQ(0, ret); 477 + EXPECT_EQ(0, signaled); 478 + check_event_state(event, 0, 0); 479 + 480 + close(event); 481 + 482 + close(fd); 483 + } 484 + 429 485 TEST(test_wait_any) 430 486 { 431 487 int objs[NTSYNC_MAX_WAIT_COUNT + 1], fd, ret;