aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/test/test-fib.cc
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/test/test-fib.cc')
-rw-r--r--hicn-light/src/hicn/test/test-fib.cc60
1 files changed, 52 insertions, 8 deletions
diff --git a/hicn-light/src/hicn/test/test-fib.cc b/hicn-light/src/hicn/test/test-fib.cc
index 125515e41..d2c5d1e1c 100644
--- a/hicn-light/src/hicn/test/test-fib.cc
+++ b/hicn-light/src/hicn/test/test-fib.cc
@@ -55,20 +55,30 @@ void _fib_add_prefix(fib_t *fib, const hicn_prefix_t *prefix) {
fib_add(fib, entry);
}
+#if 0
static const hicn_prefix_t p0010 = (hicn_prefix_t){
.name = {.v6 = {.as_u64 = {0x1122334455667788, 0x9900aabbccddeeff}}},
.len = 4};
+#endif
+
+#define HICN_PREFIX(P, STR) \
+ hicn_prefix_t P; \
+ hicn_ip_prefix_t _##P; \
+ EXPECT_EQ(hicn_ip_prefix_pton(STR, &_##P), 0); \
+ EXPECT_EQ(hicn_prefix_create_from_ip_prefix(&_##P, &P), 0);
/* TEST: Fib allocation and initialization */
TEST_F(FibTest, FibAddOne) {
/* Empty fib should be valid */
+ HICN_PREFIX(pfx, "1122:3344:5566:7788:9900:aabb:ccdd:eeff/4");
+
const hicn_prefix_t *empty_prefix_array[] = {};
bool empty_used_array[] = {};
EXPECT_TRUE(fib_is_valid(fib));
EXPECT_TRUE(fib_check_preorder(fib, empty_prefix_array, empty_used_array));
- const hicn_prefix_t *prefix_array[] = {&p0010};
+ const hicn_prefix_t *prefix_array[] = {&pfx};
bool used_array[] = {true};
for (unsigned i = 0; i < ARRAY_SIZE(prefix_array); i++) {
@@ -84,10 +94,44 @@ TEST_F(FibTest, FibAddOne) {
/* Check that free indices and bitmaps are correctly updated */
}
-#if 0
-22-09-2022 13:07:57 fib_entry_on_event: b002::/64
-22-09-2022 13:08:01 fib_entry_on_event: b002::abcd:0:0:0/128
-22-09-2022 13:08:01 fib_entry_on_event: b002::2/128
-22-09-2022 13:08:01 fib_entry_on_event: b002::abcd:0:0:1/128
-22-09-2022 13:08:01 fib_entry_on_event: b002::3/128
-#endif
+TEST_F(FibTest, FibAddTwo) {
+ HICN_PREFIX(b001, "b001::/64");
+ HICN_PREFIX(c001, "c001::/64");
+ HICN_PREFIX(inner_8000_1, "8000::/1");
+
+ const hicn_prefix_t *prefix_array[] = {&b001, &inner_8000_1, &c001};
+ bool used_array[] = {true, false, true};
+
+ _fib_add_prefix(fib, &b001);
+ _fib_add_prefix(fib, &c001);
+
+ fib_dump(fib);
+
+ EXPECT_TRUE(fib_is_valid(fib));
+ EXPECT_TRUE(fib_check_preorder(fib, prefix_array, used_array));
+}
+
+TEST_F(FibTest, FibAddFive) {
+ HICN_PREFIX(b002, "b002::/64");
+ HICN_PREFIX(b002_abcd_0, "b002::abcd:0:0:0/128");
+ HICN_PREFIX(b002_2, "b002::2/128");
+ HICN_PREFIX(b002_abcd_1, "b002::abcd:0:0:1/128");
+ HICN_PREFIX(b002_3, "b002::3/128");
+ HICN_PREFIX(inner_b002_2, "b002::2/127");
+ HICN_PREFIX(inner_b002_abcd_0, "b002::abcd:0:0:0/127");
+ const hicn_prefix_t *prefix_array[] = {
+ &b002_2, &inner_b002_2, &b002_3, &b002,
+ &b002_abcd_0, &inner_b002_abcd_0, &b002_abcd_1};
+ bool used_array[] = {true, false, true, true, true, false, true};
+
+ _fib_add_prefix(fib, &b002);
+ _fib_add_prefix(fib, &b002_abcd_0);
+ _fib_add_prefix(fib, &b002_2);
+ _fib_add_prefix(fib, &b002_abcd_1);
+ _fib_add_prefix(fib, &b002_3);
+
+ fib_dump(fib);
+
+ EXPECT_TRUE(fib_is_valid(fib));
+ EXPECT_TRUE(fib_check_preorder(fib, prefix_array, used_array));
+}