summaryrefslogtreecommitdiff
path: root/test/BitfieldManTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-06-27 23:28:57 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-06-27 23:28:57 +0900
commitc30ea8adeb8887a7326e745ffdfebd75b6f2f2f3 (patch)
tree22dbb38eda2f9a751652afd3fe49447de40a9baf /test/BitfieldManTest.cc
parent68f225de0b66968e232d838b29dd1e12f10f3302 (diff)
Don't sum in-flight piece which does not intersect filtered ranges
When calculating completed length, don't sum the completed length of piece which does not intersect filtered ranges.
Diffstat (limited to 'test/BitfieldManTest.cc')
-rw-r--r--test/BitfieldManTest.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/BitfieldManTest.cc b/test/BitfieldManTest.cc
index eb03fad8..bc7ebcc2 100644
--- a/test/BitfieldManTest.cc
+++ b/test/BitfieldManTest.cc
@@ -18,6 +18,7 @@ class BitfieldManTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testGetFirstMissingIndex);
CPPUNIT_TEST(testIsAllBitSet);
CPPUNIT_TEST(testFilter);
+ CPPUNIT_TEST(testIsFilterBitSet);
CPPUNIT_TEST(testAddFilter_zeroLength);
CPPUNIT_TEST(testAddNotFilter);
CPPUNIT_TEST(testAddNotFilter_zeroLength);
@@ -51,6 +52,7 @@ public:
void testIsAllBitSet();
void testFilter();
+ void testIsFilterBitSet();
void testAddFilter_zeroLength();
void testAddNotFilter();
void testAddNotFilter_zeroLength();
@@ -244,6 +246,17 @@ void BitfieldManTest::testFilter()
CPPUNIT_ASSERT_EQUAL((int64_t)31ULL, btman2.getFilteredTotalLength());
}
+void BitfieldManTest::testIsFilterBitSet()
+{
+ BitfieldMan btman(2, 32);
+ CPPUNIT_ASSERT(!btman.isFilterBitSet(0));
+ btman.addFilter(0, 2);
+ CPPUNIT_ASSERT(btman.isFilterBitSet(0));
+ CPPUNIT_ASSERT(!btman.isFilterBitSet(1));
+ btman.addFilter(2, 4);
+ CPPUNIT_ASSERT(btman.isFilterBitSet(1));
+}
+
void BitfieldManTest::testAddFilter_zeroLength()
{
BitfieldMan bits(1024, 1024*1024);