blob: 6b0fb3ebbbb2ee2b0643ed17b6ef3ca18f1ef477 [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
int main(void) {
int fds[2];
int ret;
size_t page_size = sysconf(_SC_PAGESIZE);
ret = pipe(fds);
test_assert(ret == 0);
size_t new_size = 2 * page_size;
ret = fcntl(fds[0], F_SETPIPE_SZ, new_size);
if (ret == -EPERM) {
// Pipe resource buffer exhausted, e.g. due to
// /proc/sys/fs/pipe-max-size or /proc/sys/fs/pipe-user-pages-{hard, soft}.
atomic_puts("Pipe buffer exhausted during F_SETPIPE_SZ. Skipping.");
new_size = page_size;
} else {
test_assert(ret == (int)(new_size));
}
ret = fcntl(fds[1], F_GETPIPE_SZ);
test_assert(ret == (int)(new_size));
atomic_puts("EXIT-SUCCESS");
return 0;
}