]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
- Added more tests.
authorBart Van Assche <bvanassche@acm.org>
Thu, 23 Apr 2009 15:39:46 +0000 (15:39 +0000)
committerBart Van Assche <bvanassche@acm.org>
Thu, 23 Apr 2009 15:39:46 +0000 (15:39 +0000)
- Extended error reporting.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9587

drd/tests/drd_bitmap_test.c

index 9013c6f8f5d06af020fb9ea456b13413ae001ff0..544b01f4d256ab5e1d3ca6917f55f25cb13fd55d 100644 (file)
@@ -66,6 +66,28 @@ struct { Addr address; SizeT size; BmAccessTypeT access_type; }
 #endif
   };
 
+/**
+ * Compare two bitmaps and if different, print the differences.
+ */
+int bm_equal_print_diffs(struct bitmap* bm1, struct bitmap* bm2)
+{
+  int equal;
+
+  equal = DRD_(bm_equal)(bm1, bm2);
+  if (! equal)
+  {
+    VG_(printf)("Bitmaps are different.\n");
+    VG_(printf)("Bitmap 1:\n");
+    DRD_(bm_print)(bm1);
+    VG_(printf)("\n");
+    VG_(printf)("Bitmap 2:\n");
+    DRD_(bm_print)(bm2);
+    VG_(printf)("\n");
+  }
+
+  return equal;
+}
+
 void bm_test1(void)
 {
   struct bitmap* bm;
@@ -106,7 +128,7 @@ void bm_test1(void)
   if (s_verbose)
     DRD_(bm_print)(bm2);
   //assert(bm_equal(bm, bm2));
-  assert(DRD_(bm_equal)(bm2, bm));
+  assert(bm_equal_print_diffs(bm2, bm));
 
   if (s_verbose)
     VG_(printf)("Deleting bitmap bm\n");
@@ -158,34 +180,56 @@ void bm_test3(const int outer_loop_step, const int inner_loop_step)
     {
       DRD_(bm_access_range_load)(bm1, i, j);
       DRD_(bm_clear_load)(bm1, i, j);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_load_1)(bm1, i);
       DRD_(bm_clear_load)(bm1, i, i+1);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_load_2)(bm1, i);
       DRD_(bm_clear_load)(bm1, i, i+2);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_load_4)(bm1, i);
       DRD_(bm_clear_load)(bm1, i, i+4);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_load_8)(bm1, i);
       DRD_(bm_clear_load)(bm1, i, i+8);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
+
       DRD_(bm_access_range_store)(bm1, i, j);
       DRD_(bm_clear_store)(bm1, i, j);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_store_1)(bm1, i);
       DRD_(bm_clear_store)(bm1, i, i + 1);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_store_2)(bm1, i);
       DRD_(bm_clear_store)(bm1, i, i + 2);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_store_4)(bm1, i);
       DRD_(bm_clear_store)(bm1, i, i + 4);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_access_store_8)(bm1, i);
       DRD_(bm_clear_store)(bm1, i, i + 8);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
+
+      DRD_(bm_access_range_load)(bm1, i, j);
+      DRD_(bm_access_range_store)(bm1, i, j);
+      DRD_(bm_clear)(bm1, i, j);
+      assert(bm_equal_print_diffs(bm1, bm2));
+      DRD_(bm_access_load_1)(bm1, i);
+      DRD_(bm_access_store_1)(bm1, i);
+      DRD_(bm_clear)(bm1, i, i+1);
+      assert(bm_equal_print_diffs(bm1, bm2));
+      DRD_(bm_access_load_2)(bm1, i);
+      DRD_(bm_access_store_2)(bm1, i);
+      DRD_(bm_clear)(bm1, i, i+2);
+      assert(bm_equal_print_diffs(bm1, bm2));
+      DRD_(bm_access_load_4)(bm1, i);
+      DRD_(bm_access_store_4)(bm1, i);
+      DRD_(bm_clear)(bm1, i, i+4);
+      assert(bm_equal_print_diffs(bm1, bm2));
+      DRD_(bm_access_load_8)(bm1, i);
+      DRD_(bm_access_store_8)(bm1, i);
+      DRD_(bm_clear)(bm1, i, i+8);
+      assert(bm_equal_print_diffs(bm1, bm2));
     }
   }
   DRD_(bm_access_range_load)(bm1, 0, 2 * ADDR0_COUNT + 2 * BITS_PER_UWORD);
@@ -200,34 +244,34 @@ void bm_test3(const int outer_loop_step, const int inner_loop_step)
     {
       DRD_(bm_clear_load)(bm1, i, j);
       DRD_(bm_access_range_load)(bm1, i, j);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_load)(bm1, i, i+1);
       DRD_(bm_access_load_1)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_load)(bm1, i, i+2);
       DRD_(bm_access_load_2)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_load)(bm1, i, i+4);
       DRD_(bm_access_load_4)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_load)(bm1, i, i+8);
       DRD_(bm_access_load_8)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_store)(bm1, i, j);
       DRD_(bm_access_range_store)(bm1, i, j);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_store)(bm1, i, i+1);
       DRD_(bm_access_store_1)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_store)(bm1, i, i+2);
       DRD_(bm_access_store_2)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_store)(bm1, i, i+4);
       DRD_(bm_access_store_4)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
       DRD_(bm_clear_store)(bm1, i, i+8);
       DRD_(bm_access_store_8)(bm1, i);
-      assert(DRD_(bm_equal)(bm1, bm2));
+      assert(bm_equal_print_diffs(bm1, bm2));
     }
   }
   DRD_(bm_delete)(bm2);