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
|
||||
|
||||
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)
|
||||
|
@ -1333,6 +1333,7 @@ test/Makefile
|
||||
test/api/Makefile
|
||||
tools/Makefile
|
||||
udev/Makefile
|
||||
unit-tests/datastruct/Makefile
|
||||
unit-tests/regex/Makefile
|
||||
])
|
||||
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