xref: /openbsd-src/regress/sys/kern/poll/pollretval.c (revision 6c9a98a4f49803cc6f09892b8442bf06757228f6)
1*6c9a98a4Sbluhm /*	$OpenBSD: pollretval.c,v 1.2 2021/12/26 13:32:05 bluhm Exp $	*/
2*6c9a98a4Sbluhm 
342ebeb7dSderaadt #include <stdio.h>
442ebeb7dSderaadt #include <poll.h>
542ebeb7dSderaadt #include <unistd.h>
642ebeb7dSderaadt #include <stdlib.h>
742ebeb7dSderaadt #include <err.h>
842ebeb7dSderaadt 
942ebeb7dSderaadt int
main(void)10*6c9a98a4Sbluhm main(void)
1142ebeb7dSderaadt {
1242ebeb7dSderaadt 	struct pollfd pfd[100];
1342ebeb7dSderaadt 	int i, r, r2 = 0;
1442ebeb7dSderaadt 
1542ebeb7dSderaadt 	for (i = 0; i < 100; i++) {
1642ebeb7dSderaadt 	    pfd[i].fd = 0;
1742ebeb7dSderaadt 	    pfd[i].events = arc4random() % 0x177;
1842ebeb7dSderaadt 	}
1942ebeb7dSderaadt 
2042ebeb7dSderaadt 	r = poll(pfd, 100, INFTIM);
2142ebeb7dSderaadt 
2242ebeb7dSderaadt 	if (r == -1)
2342ebeb7dSderaadt 		errx(1, "poll failed unexpectedly");
2442ebeb7dSderaadt 
2542ebeb7dSderaadt 	for (i = 0; i < 100; i++)
2642ebeb7dSderaadt 		if (pfd[i].revents)
2742ebeb7dSderaadt 			r2++;
2842ebeb7dSderaadt 	if (r != r2)
2942ebeb7dSderaadt 		errx(1, "poll return value %d miscounts .revents %d", r, r2);
30*6c9a98a4Sbluhm 
31*6c9a98a4Sbluhm 	return 0;
3242ebeb7dSderaadt }
33