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:
parent
15106c5064
commit
66392e6660
@ -135,7 +135,8 @@ RUBY=ruby1.9 -Ireport-generators/lib -Ireport-generators/test
|
|||||||
.PHONEY: unit-test ruby-test test-programs
|
.PHONEY: unit-test ruby-test test-programs
|
||||||
|
|
||||||
test-programs:
|
test-programs:
|
||||||
$(MAKE) unit-tests/regex
|
cd unit-tests/regex && $(MAKE)
|
||||||
|
cd unit-tests/datastruct && $(MAKE)
|
||||||
|
|
||||||
unit-test: test-programs
|
unit-test: test-programs
|
||||||
$(RUBY) report-generators/unit_test.rb $(shell find . -name TESTS)
|
$(RUBY) report-generators/unit_test.rb $(shell find . -name TESTS)
|
||||||
|
@ -1333,6 +1333,7 @@ test/Makefile
|
|||||||
test/api/Makefile
|
test/api/Makefile
|
||||||
tools/Makefile
|
tools/Makefile
|
||||||
udev/Makefile
|
udev/Makefile
|
||||||
|
unit-tests/datastruct/Makefile
|
||||||
unit-tests/regex/Makefile
|
unit-tests/regex/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
32
unit-tests/datastruct/Makefile.in
Normal file
32
unit-tests/datastruct/Makefile.in
Normal 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)
|
1
unit-tests/datastruct/TESTS
Normal file
1
unit-tests/datastruct/TESTS
Normal file
@ -0,0 +1 @@
|
|||||||
|
bitset iteration:$TEST_TOOL ./bitset_t
|
40
unit-tests/datastruct/bitset_t.c
Normal file
40
unit-tests/datastruct/bitset_t.c
Normal 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;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user