From: Theodore Ts'o Date: Mon, 13 Jan 2014 01:18:55 +0000 (-0500) Subject: libext2fs: build tst_bitmaps with rep invariants checking enabled X-Git-Tag: v1.42.10~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d954fa407b4c7699b6bde635de45fda63e8d343a;p=thirdparty%2Fe2fsprogs.git libext2fs: build tst_bitmaps with rep invariants checking enabled When building tst_bitmaps, enable #define DEBUG_RB, so we are always testing the sanity of the in-memory representation of the bitmap when using red-black trees as part of a "make check" run. Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in index ef55e08cf..090b89a8d 100644 --- a/lib/ext2fs/Makefile.in +++ b/lib/ext2fs/Makefile.in @@ -372,10 +372,11 @@ tst_bitmaps_cmd.c: tst_bitmaps_cmd.ct $(E) " MK_CMDS $@" $(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/tst_bitmaps_cmd.ct -tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(STATIC_LIBEXT2FS) \ - $(DEPSTATIC_LIBSS) $(DEPSTATIC_LIBCOM_ERR) +tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(srcdir)/blkmap64_rb.c \ + $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBSS) $(DEPSTATIC_LIBCOM_ERR) $(E) " LD $@" - $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o $(ALL_CFLAGS) \ + $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o \ + -DDEBUG_RB $(srcdir)/blkmap64_rb.c $(ALL_CFLAGS) \ $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) $(STATIC_LIBCOM_ERR) \ $(SYSLIBS) diff --git a/lib/ext2fs/blkmap64_rb.c b/lib/ext2fs/blkmap64_rb.c index a18959084..0e0a21753 100644 --- a/lib/ext2fs/blkmap64_rb.c +++ b/lib/ext2fs/blkmap64_rb.c @@ -135,7 +135,7 @@ err_out: } #else #define check_tree(root, msg) do {} while (0) -#define print_tree(root, msg) do {} while (0) +#define print_tree(root) do {} while (0) #endif static void rb_get_new_extent(struct bmap_rb_extent **ext, __u64 start, @@ -569,11 +569,14 @@ static int rb_remove_extent(__u64 start, __u64 count, static int rb_mark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg) { struct ext2fs_rb_private *bp; + int retval; bp = (struct ext2fs_rb_private *) bitmap->private; arg -= bitmap->start; - return rb_insert_extent(arg, 1, bp); + retval = rb_insert_extent(arg, 1, bp); + check_tree(&bp->root, __func__); + return retval; } static int rb_unmark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg) @@ -610,6 +613,7 @@ static void rb_mark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg, arg -= bitmap->start; rb_insert_extent(arg, num, bp); + check_tree(&bp->root, __func__); } static void rb_unmark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg, @@ -714,11 +718,14 @@ static errcode_t rb_set_bmap_range(ext2fs_generic_bitmap bitmap, rb_insert_extent(start + first_set - bitmap->start, i - first_set, bp); + check_tree(&bp->root, __func__); first_set = -1; } - if (first_set != -1) + if (first_set != -1) { rb_insert_extent(start + first_set - bitmap->start, num - first_set, bp); + check_tree(&bp->root, __func__); + } return 0; } @@ -799,6 +806,7 @@ static void rb_clear_bmap(ext2fs_generic_bitmap bitmap) bp->rcursor = NULL; bp->rcursor_next = NULL; bp->wcursor = NULL; + check_tree(&bp->root, __func__); } #ifdef BMAP_STATS