m.add(20, 10);
cout << m << std::endl;
ASSERT_EQ(1, m.ref_map.size());
- ASSERT_EQ(20, m.ref_map[10].length);
+ ASSERT_EQ(20u, m.ref_map[10].length);
ASSERT_EQ(2, m.ref_map[10].refs);
m.add(40, 10);
cout << m << std::endl;
- ASSERT_EQ(2, m.ref_map.size());
+ ASSERT_EQ(2u, m.ref_map.size());
m.add(30, 10);
cout << m << std::endl;
- ASSERT_EQ(1, m.ref_map.size());
+ ASSERT_EQ(1u, m.ref_map.size());
m.add(50, 10, 3);
cout << m << std::endl;
- ASSERT_EQ(2, m.ref_map.size());
+ ASSERT_EQ(2u, m.ref_map.size());
}
TEST(bluestore_extent_ref_map_t, get)
cout << m << std::endl;
m.get(10, 10);
cout << m << std::endl;
- ASSERT_EQ(3, m.ref_map.size());
- ASSERT_EQ(10, m.ref_map[0].length);
- ASSERT_EQ(2, m.ref_map[0].refs);
- ASSERT_EQ(10, m.ref_map[10].length);
- ASSERT_EQ(3, m.ref_map[10].refs);
- ASSERT_EQ(10, m.ref_map[20].length);
- ASSERT_EQ(2, m.ref_map[20].refs);
+ ASSERT_EQ(3u, m.ref_map.size());
+ ASSERT_EQ(10u, m.ref_map[0].length);
+ ASSERT_EQ(2u, m.ref_map[0].refs);
+ ASSERT_EQ(10u, m.ref_map[10].length);
+ ASSERT_EQ(3u, m.ref_map[10].refs);
+ ASSERT_EQ(10u, m.ref_map[20].length);
+ ASSERT_EQ(2u, m.ref_map[20].refs);
m.get(20, 5);
cout << m << std::endl;
- ASSERT_EQ(3, m.ref_map.size());
- ASSERT_EQ(15, m.ref_map[10].length);
- ASSERT_EQ(3, m.ref_map[10].refs);
- ASSERT_EQ(5, m.ref_map[25].length);
- ASSERT_EQ(2, m.ref_map[25].refs);
+ ASSERT_EQ(3u, m.ref_map.size());
+ ASSERT_EQ(15u, m.ref_map[10].length);
+ ASSERT_EQ(3u, m.ref_map[10].refs);
+ ASSERT_EQ(5u, m.ref_map[25].length);
+ ASSERT_EQ(2u, m.ref_map[25].refs);
m.get(5, 20);
cout << m << std::endl;
- ASSERT_EQ(4, m.ref_map.size());
- ASSERT_EQ(5, m.ref_map[0].length);
- ASSERT_EQ(2, m.ref_map[0].refs);
- ASSERT_EQ(5, m.ref_map[5].length);
- ASSERT_EQ(3, m.ref_map[5].refs);
- ASSERT_EQ(15, m.ref_map[10].length);
- ASSERT_EQ(4, m.ref_map[10].refs);
- ASSERT_EQ(5, m.ref_map[25].length);
- ASSERT_EQ(2, m.ref_map[25].refs);
+ ASSERT_EQ(4u, m.ref_map.size());
+ ASSERT_EQ(5u, m.ref_map[0].length);
+ ASSERT_EQ(2u, m.ref_map[0].refs);
+ ASSERT_EQ(5u, m.ref_map[5].length);
+ ASSERT_EQ(3u, m.ref_map[5].refs);
+ ASSERT_EQ(15u, m.ref_map[10].length);
+ ASSERT_EQ(4u, m.ref_map[10].refs);
+ ASSERT_EQ(5u, m.ref_map[25].length);
+ ASSERT_EQ(2u, m.ref_map[25].refs);
m.get(25, 3);
cout << m << std::endl;
- ASSERT_EQ(5, m.ref_map.size());
- ASSERT_EQ(5, m.ref_map[0].length);
- ASSERT_EQ(2, m.ref_map[0].refs);
- ASSERT_EQ(5, m.ref_map[5].length);
- ASSERT_EQ(3, m.ref_map[5].refs);
- ASSERT_EQ(15, m.ref_map[10].length);
- ASSERT_EQ(4, m.ref_map[10].refs);
- ASSERT_EQ(3, m.ref_map[25].length);
- ASSERT_EQ(3, m.ref_map[25].refs);
- ASSERT_EQ(2, m.ref_map[28].length);
- ASSERT_EQ(2, m.ref_map[28].refs);
+ ASSERT_EQ(5u, m.ref_map.size());
+ ASSERT_EQ(5u, m.ref_map[0].length);
+ ASSERT_EQ(2u, m.ref_map[0].refs);
+ ASSERT_EQ(5u, m.ref_map[5].length);
+ ASSERT_EQ(3u, m.ref_map[5].refs);
+ ASSERT_EQ(15u, m.ref_map[10].length);
+ ASSERT_EQ(4u, m.ref_map[10].refs);
+ ASSERT_EQ(3u, m.ref_map[25].length);
+ ASSERT_EQ(3u, m.ref_map[25].refs);
+ ASSERT_EQ(2u, m.ref_map[28].length);
+ ASSERT_EQ(2u, m.ref_map[28].refs);
}
TEST(bluestore_extent_ref_map_t, put)
ASSERT_EQ(33, r[0].offset);
ASSERT_EQ(2, r[0].length);
}
+
+TEST(bluestore_extent_ref_map_t, contains)
+{
+ bluestore_extent_ref_map_t m;
+ m.add(10, 30, 1);
+ ASSERT_TRUE(m.contains(10, 30));
+ ASSERT_TRUE(m.contains(10, 10));
+ ASSERT_TRUE(m.contains(30, 10));
+ ASSERT_FALSE(m.contains(0, 10));
+ ASSERT_FALSE(m.contains(0, 20));
+ ASSERT_FALSE(m.contains(0, 100));
+ ASSERT_FALSE(m.contains(40, 10));
+ ASSERT_FALSE(m.contains(30, 11));
+ m.add(40, 10, 2);
+ ASSERT_TRUE(m.contains(30, 11));
+ ASSERT_TRUE(m.contains(30, 20));
+ ASSERT_TRUE(m.contains(10, 40));
+ ASSERT_FALSE(m.contains(0, 50));
+ ASSERT_FALSE(m.contains(40, 20));
+ m.add(60, 100);
+ ASSERT_TRUE(m.contains(60, 10));
+ ASSERT_TRUE(m.contains(40, 10));
+ ASSERT_FALSE(m.contains(40, 11));
+ ASSERT_FALSE(m.contains(40, 20));
+ ASSERT_FALSE(m.contains(40, 30));
+ ASSERT_FALSE(m.contains(40, 3000));
+ ASSERT_FALSE(m.contains(4000, 30));
+}