#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/devpoll.h>
#include "common.h"
int
main(void)
{
sigset_t mask;
assert(sigemptyset(&mask) == 0);
int sigfd1 = signalfd(-1, &mask, 0);
int sigfd2 = signalfd(-1, &mask, 0);
if (sigfd1 == -1 || sigfd2 == -1) {
test_fail("unable to initialize signalfd resources");
}
int pfd = open("/dev/poll", O_RDWR);
if (pfd == -1) {
test_fail("unable to initialize devpoll resource");
}
struct pollfd buf[2] = {
{
.fd = sigfd1,
.events = POLLIN,
},
{
.fd = sigfd2,
.events = POLLIN,
}
};
ssize_t wrote = write(pfd, buf, sizeof (buf));
if (wrote != sizeof (buf)) {
test_fail("unable to establish polling");
}
(void) close(sigfd1);
(void) close(sigfd2);
test_pass();
}