2011-06-03 Ivan Maidanski <ivmai@mail.ru>
authorivmai <ivmai>
Fri, 3 Jun 2011 13:25:31 +0000 (13:25 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 25 Jul 2011 12:03:26 +0000 (16:03 +0400)
* tests/test_malloc.c (run_one_test): Test AO_malloc() result
(if out of memory then print the message and abort).
* tests/test_stack.c (add_elements): Ditto.

ChangeLog
tests/test_malloc.c
tests/test_stack.c

index c4b963d..42883eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
 
+       * tests/test_malloc.c (run_one_test): Test AO_malloc() result
+       (if out of memory then print the message and abort).
+       * tests/test_stack.c (add_elements): Ditto.
+
+2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
+
        * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
        definition.
        * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
index f7df342..4bf6e6c 100644 (file)
@@ -150,6 +150,12 @@ void * run_one_test(void * arg) {
   } else {
     p[0] = p[LARGE_OBJ_SIZE/2] = p[LARGE_OBJ_SIZE-1] = 'a';
     q = AO_malloc(LARGE_OBJ_SIZE);
+    if (q == 0)
+      {
+        fprintf(stderr, "Out of memory\n");
+          /* Normal for more than about 10 threads without mmap? */
+        abort();
+      }
     q[0] = q[LARGE_OBJ_SIZE/2] = q[LARGE_OBJ_SIZE-1] = 'b';
     if (p[0] != 'a' || p[LARGE_OBJ_SIZE/2] != 'a'
         || p[LARGE_OBJ_SIZE-1] != 'a') {
index a190a78..a51d244 100644 (file)
@@ -54,6 +54,11 @@ void add_elements(int n)
   if (n == 0) return;
   add_elements(n-1);
   le = malloc(sizeof(list_element));
+  if (le == 0)
+    {
+      fprintf(stderr, "Out of memory\n");
+      abort();
+    }
   le -> data = n;
   AO_stack_push(&the_list, (AO_t *)le);
 }