Add a test for brk() and sbrk().
authorDavid Given <dg@cowlark.com>
Wed, 23 Nov 2016 21:28:21 +0000 (22:28 +0100)
committerDavid Given <dg@cowlark.com>
Wed, 23 Nov 2016 21:28:21 +0000 (22:28 +0100)
plat/qemuppc/tests/brk_c.c [new file with mode: 0644]

diff --git a/plat/qemuppc/tests/brk_c.c b/plat/qemuppc/tests/brk_c.c
new file mode 100644 (file)
index 0000000..aa0f7ef
--- /dev/null
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <limits.h>
+#include "test.h"
+
+int main(int argc, const char* argv[])
+{
+    void* p;
+
+    ASSERT(-1 == (intptr_t)brk((void*)0xffffffff));
+    ASSERT(ENOMEM == errno);
+
+    p = sbrk(0);
+    ASSERT(p == sbrk(0));
+    ASSERT(p == sbrk(8));
+    ASSERT(p != sbrk(0));
+    ASSERT(p != sbrk(-8));
+    ASSERT(p == sbrk(0));
+
+    /* We assume the test environment has less than 2GB of RAM. */
+    ASSERT(-1 == (intptr_t)sbrk(INT_MAX));
+    ASSERT(-1 == (intptr_t)sbrk(INT_MIN));
+
+    finished();
+}
+