10static int run(
const char* name,
int (*function)(
void)) {
11 printf(
"REMAP-FILE-PAGES-CONTRACT: BEGIN %s\n", name);
18 int result = function();
21 _exit(result ? 1 : 0);
23 int result = rp_reap(child, 45000);
24 printf(
"REMAP-FILE-PAGES-CONTRACT: %s %s status=%d\n", result ?
"FAIL" :
"PASS", name, result);
29int main(
int argc,
char** argv) {
30 rp_page = (size_t)sysconf(_SC_PAGESIZE);
31 if (rp_page < 512 || rp_page > 65536 || (rp_page & (rp_page - 1)))
33 signal(SIGPIPE, SIG_IGN);
36 int (*function)(void);
37 } suites[] = {{
"offsets", rp_offsets},
38 {
"admission", rp_admission},
39 {
"lifetime", rp_lifetime},
41 {
"resize", rp_resize}};
43 for (
size_t n = 0; n <
sizeof(suites) /
sizeof(suites[0]); ++n) {
44 if (argc > 1 && strcmp(argv[1], suites[n].name))
47 if (run(suites[n].name, suites[n].function))
52 puts(
"REMAP-FILE-PAGES-CONTRACT: END PASS");