]> granicus.if.org Git - gc/commitdiff
tests: Add missing checks of GC_malloc result (for out-of-memory)
authorIvan Maidanski <ivmai@mail.ru>
Fri, 30 Sep 2011 12:17:31 +0000 (16:17 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 30 Sep 2011 12:17:31 +0000 (16:17 +0400)
* tests/test.c (mktree): Insert CHECK_OUT_OF_MEMORY to report mktree()
out-of-memory failures.
* tests/trace_test.c (mktree): Test whether GC_MALLOC_ATOMIC returns
NULL (exit with an error code and the appropriate message printed in
this case).

tests/test.c
tests/trace_test.c

index 70a05762baea62e17b8c9d09d694cb485fb3a737..6fd8898d5b95ed32a28676caff0a7a00f27e453c 100644 (file)
@@ -726,8 +726,11 @@ tn * mktree(int n)
     result -> lchild = mktree(n-1);
     result -> rchild = mktree(n-1);
     if (counter++ % 17 == 0 && n >= 2) {
-        tn * tmp = result -> lchild -> rchild;
+        tn * tmp;
 
+        CHECK_OUT_OF_MEMORY(result->lchild);
+        tmp = result -> lchild -> rchild;
+        CHECK_OUT_OF_MEMORY(result->rchild);
         result -> lchild -> rchild = result -> rchild -> lchild;
         result -> rchild -> lchild = tmp;
     }
index bb8b813a16d0c462d529964ab33329d41f250b3e..923e0f88a3a34b77c3831804d76cbdaf4a1eb8d2 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <stdlib.h>
 
 #ifndef GC_DEBUG
 # define GC_DEBUG
@@ -16,6 +17,10 @@ struct treenode * mktree(int i) {
   struct treenode * r = GC_MALLOC(sizeof(struct treenode));
   if (0 == i) return 0;
   if (1 == i) r = GC_MALLOC_ATOMIC(sizeof(struct treenode));
+  if (r == NULL) {
+    printf("Out of memory\n");
+    exit(1);
+  }
   r -> x = mktree(i-1);
   r -> y = mktree(i-1);
   return r;