1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-02 01:18:26 +03:00

Add a unit test for the recent changes to dm_bit_get_next()

This commit is contained in:
Joe Thornber 2010-07-20 15:25:39 +00:00
parent 15106c5064
commit 66392e6660
5 changed files with 76 additions and 1 deletions

View File

@ -135,7 +135,8 @@ RUBY=ruby1.9 -Ireport-generators/lib -Ireport-generators/test
.PHONEY: unit-test ruby-test test-programs
test-programs:
$(MAKE) unit-tests/regex
cd unit-tests/regex && $(MAKE)
cd unit-tests/datastruct && $(MAKE)
unit-test: test-programs
$(RUBY) report-generators/unit_test.rb $(shell find . -name TESTS)

View File

@ -1333,6 +1333,7 @@ test/Makefile
test/api/Makefile
tools/Makefile
udev/Makefile
unit-tests/datastruct/Makefile
unit-tests/regex/Makefile
])
AC_OUTPUT

View File

@ -0,0 +1,32 @@
#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
# Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
SOURCES=\
bitset_t.c
TARGETS=\
bitset_t
include $(top_builddir)/make.tmpl
INCLUDES += -I$(top_srcdir)/libdm
DM_DEPS = $(top_builddir)/libdm/libdevmapper.so
DM_LIBS = -ldevmapper $(LIBS)
bitset_t: bitset_t.o $(DM_DEPS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ bitset_t.o $(DM_LIBS)

View File

@ -0,0 +1 @@
bitset iteration:$TEST_TOOL ./bitset_t

View File

@ -0,0 +1,40 @@
#include "libdevmapper.h"
#include <assert.h>
enum {
NR_BITS = 137
};
int main(int argc, char **argv)
{
int i, j, last, first;
dm_bitset_t bs;
struct dm_pool *mem = dm_pool_create("bitset test", 1024);
assert(mem);
bs = dm_bitset_create(mem, NR_BITS);
for (i = 0; i < NR_BITS; i++)
assert(!dm_bit(bs, i));
for (i = 0, j = 1; i < NR_BITS; i += j, j++)
dm_bit_set(bs, i);
first = 1;
for (i = 0, j = 1; i < NR_BITS; i += j, j++) {
if (first) {
last = dm_bit_get_first(bs);
first = 0;
} else
last = dm_bit_get_next(bs, last);
assert(last == i);
}
assert(dm_bit_get_next(bs, last) == -1);
dm_pool_destroy(mem);
return 0;
}