8int main(
int argc,
char** argv) {
9 setvbuf(stdout, NULL, _IONBF, 0);
12 cw_page = (size_t)sysconf(_SC_PAGESIZE);
13 if (!cw_page || cw_page > 65536)
18 } families[] = {{
"selectors", cw_selectors}, {
"events", cw_events},
19 {
"lifetime", cw_lifetime}, {
"copyout", cw_copyout},
20 {
"errors", cw_errors}, {
"interruption", cw_interruption}};
22 for (
size_t i = 0; i <
sizeof(families) /
sizeof(families[0]); ++i) {
23 if (argc == 2 && strcmp(argv[1],
"all") && strcmp(argv[1], families[i].name))
26 printf(
"CHILD-WAIT-CONTRACT: BEGIN %s\n", families[i].name);
30 int result = families[i].run();
32 _exit(result ? 1 : 0);
34 int status = pid < 0 ? -1 : cw_reap(pid, 45000);
35 printf(
"CHILD-WAIT-CONTRACT: %s %s status=%d\n", status ?
"FAIL" :
"PASS", families[i].name,
42 puts(
"CHILD-WAIT-CONTRACT: END PASS");