1*33629b82SAlex Bennée /* 2*33629b82SAlex Bennée * Test very large vma allocations. 3*33629b82SAlex Bennée * The qemu out-of-memory condition was within the mmap syscall itself. 4*33629b82SAlex Bennée * If the syscall actually returns with MAP_FAILED, the test succeeded. 5*33629b82SAlex Bennée */ 6*33629b82SAlex Bennée #include <sys/mman.h> 7*33629b82SAlex Bennée main()8*33629b82SAlex Bennéeint main() 9*33629b82SAlex Bennée { 10*33629b82SAlex Bennée int n = sizeof(size_t) == 4 ? 32 : 45; 11*33629b82SAlex Bennée 12*33629b82SAlex Bennée for (int i = 28; i < n; i++) { 13*33629b82SAlex Bennée size_t l = (size_t)1 << i; 14*33629b82SAlex Bennée void *p = mmap(0, l, PROT_NONE, 15*33629b82SAlex Bennée MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); 16*33629b82SAlex Bennée if (p == MAP_FAILED) { 17*33629b82SAlex Bennée break; 18*33629b82SAlex Bennée } 19*33629b82SAlex Bennée munmap(p, l); 20*33629b82SAlex Bennée } 21*33629b82SAlex Bennée return 0; 22*33629b82SAlex Bennée } 23