blob: 986543e9dfbc3eadb39df2642fb8fa7a8fcffebb [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
#define NUM_PFDS 200
int main(void) {
int fds[2];
struct pollfd pfds[NUM_PFDS];
char ch = 'x';
int i;
pipe(fds);
for (i = 0; i < NUM_PFDS; ++i) {
pfds[i].fd = fds[0];
pfds[i].events = POLLIN;
}
if (fork() == 0) {
usleep(1000);
write(fds[1], &ch, 1);
return 0;
}
/* This should block */
test_assert(NUM_PFDS == poll(pfds, NUM_PFDS, -1));
test_assert(POLLIN & pfds[0].revents);
test_assert(1 == read(pfds[0].fd, &ch, 1));
atomic_puts("EXIT-SUCCESS");
return 0;
}