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" <tytso@mit.edu>
maint-test
Theodore Ts'o 2014-01-12 20:18:55 -05:00
parent 3602197449
commit d954fa407b
2 changed files with 15 additions and 6 deletions

View File

@ -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)

View File

@ -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