xref: /relibc/tests/unistd/brk.c (revision a2f2484e4559206922b0fcc16217598a6867c8a2)
1 #include <unistd.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 
5 #include "test_helpers.h"
6 
7 int main(void) {
8 	// sbrk report current brk
9     void * current = sbrk(0);
10     ERROR_IF(sbrk, current, == (void *)-1);
11 
12     // sbrk increment and report previous brk
13     void * prev = current;
14     current = sbrk(4096);
15     ERROR_IF(sbrk, current, != prev);
16 
17     // sbrk report current break
18     prev = current;
19     current = sbrk(0);
20     ERROR_IF(sbrk, current, != (void*)((uintptr_t)prev + 4096));
21 
22     // brk set break to new value
23     int status = brk((void*)((uintptr_t)current + 4096));
24     ERROR_IF(brk, status, == -1);
25     UNEXP_IF(brk, status, != 0);
26 }
27