From: Bart Van Assche Date: Thu, 23 Apr 2009 15:39:46 +0000 (+0000) Subject: - Added more tests. X-Git-Tag: svn/VALGRIND_3_5_0~799 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5f5b60c2753fad330a0ae603a7dc5ddd0365ed9f;p=thirdparty%2Fvalgrind.git - Added more tests. - Extended error reporting. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9587 --- diff --git a/drd/tests/drd_bitmap_test.c b/drd/tests/drd_bitmap_test.c index 9013c6f8f5..544b01f4d2 100644 --- a/drd/tests/drd_bitmap_test.c +++ b/drd/tests/drd_bitmap_test.c @@ -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);