diff options
| author | wangmenglan <[email protected]> | 2024-11-05 10:21:03 +0800 |
|---|---|---|
| committer | wangmenglan <[email protected]> | 2024-11-05 10:21:03 +0800 |
| commit | 02fae975edf31460d0838a86b30c4ce72f00220b (patch) | |
| tree | 64bea6e74ea65615c3288a5415348c78273307d6 /common/test/test_session_table.cpp | |
| parent | d2b7d30e96e81666f1563f27ae891ee0cf1fb84c (diff) | |
OMPUB-1508 For tunnel traffic, asymmetric traffic, and traffic matching the "no intercept" policy, only a session ID index flow table is createdv4.8.84-20241105dev-24.02
Diffstat (limited to 'common/test/test_session_table.cpp')
| -rw-r--r-- | common/test/test_session_table.cpp | 163 |
1 files changed, 143 insertions, 20 deletions
diff --git a/common/test/test_session_table.cpp b/common/test/test_session_table.cpp index 2ef913a..aa4895b 100644 --- a/common/test/test_session_table.cpp +++ b/common/test/test_session_table.cpp @@ -36,12 +36,12 @@ TEST(STREAM_TABLE, INSERT) INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == -1); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == -1); EXPECT_TRUE(session_table_count(table) == 1); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == -1); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == -1); EXPECT_TRUE(session_table_count(table) == 2); // TEST Destory @@ -61,8 +61,8 @@ TEST(STREAM_TABLE, SEARCH_BY_ID) INIT_ADDR_V4(addr3, "1.1.1.1", 1111, "2.2.2.2", 2222); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Search By Session ID @@ -93,8 +93,8 @@ TEST(STREAM_TABLE, SEARCH_BY_ADDR) INIT_ADDR_V4(addr3, "1.1.1.1", 1111, "2.2.2.2", 2222); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Search By Session Addr @@ -128,8 +128,8 @@ TEST(STREAM_TABLE, SEARCH_BY_REVERSE_ADDR) tuple4_reverse(&addr2, &addr2_reverse); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Search By Session Reverse Addr @@ -161,8 +161,8 @@ TEST(STREAM_TABLE, DELETE_BY_ID) tuple4_reverse(&addr2, &addr2_reverse); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Delete By Session ID @@ -198,8 +198,8 @@ TEST(STREAM_TABLE, DELETE_BY_ADDR) tuple4_reverse(&addr2, &addr2_reverse); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Delete By Session Addr @@ -235,8 +235,8 @@ TEST(STREAM_TABLE, DELETE_BY_REVERSE_ADDR) tuple4_reverse(&addr2, &addr2_reverse); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); EXPECT_TRUE(session_table_count(table) == 2); // TEST Delete By Session Reverse Addr @@ -268,8 +268,8 @@ TEST(STREAM_TABLE, RESET) INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); // TEST Insert - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == 0); - EXPECT_TRUE(session_table_insert(table, 1, &addr1, val_hello, free) == -1); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 1, &addr1, val_hello, free) == -1); EXPECT_TRUE(session_table_count(table) == 1); // TEST Reset @@ -278,8 +278,8 @@ TEST(STREAM_TABLE, RESET) EXPECT_TRUE(session_table_search_by_addr(table, &addr1) == nullptr); EXPECT_TRUE(session_table_count(table) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == 0); - EXPECT_TRUE(session_table_insert(table, 2, &addr2, val_world, free) == -1); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 0, 2, &addr2, val_world, free) == -1); EXPECT_TRUE(session_table_search_by_id(table, 2) != nullptr); EXPECT_TRUE(session_table_search_by_addr(table, &addr2) != nullptr); EXPECT_TRUE(session_table_count(table) == 1); @@ -288,6 +288,129 @@ TEST(STREAM_TABLE, RESET) session_table_destory(table); } +TEST(STREAM_TABLE_SESSION_ID_ONLY_KEY, INSERT) +{ + // TEST Create + struct session_table *table = session_table_create(); + EXPECT_TRUE(table != nullptr); + + char *val_hello = strdup("HELLO"); + char *val_world = strdup("WORLD"); + INIT_ADDR_V4(addr1, "1.2.3.4", 1234, "4.3.2.1", 4321); + INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); + + // TEST Insert + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == -1); + EXPECT_TRUE(session_table_count(table) == 1); + + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == -1); + EXPECT_TRUE(session_table_count(table) == 2); + + // TEST Destory + session_table_destory(table); +} + +TEST(STREAM_TABLE_SESSION_ID_ONLY_KEY, SEARCH_BY_ID) +{ + // TEST Create + struct session_table *table = session_table_create(); + EXPECT_TRUE(table != nullptr); + + char *val_hello = strdup("HELLO"); + char *val_world = strdup("WORLD"); + INIT_ADDR_V4(addr1, "1.2.3.4", 1234, "4.3.2.1", 4321); + INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); + INIT_ADDR_V4(addr3, "1.1.1.1", 1111, "2.2.2.2", 2222); + + // TEST Insert + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_count(table) == 2); + + // TEST Search By Session ID + struct session_node *node = NULL; + node = session_table_search_by_id(table, 1); + EXPECT_TRUE(node != nullptr); + EXPECT_STREQ((const char *)node->val_data, "HELLO"); + node = session_table_search_by_id(table, 2); + EXPECT_TRUE(node != nullptr); + EXPECT_STREQ((const char *)node->val_data, "WORLD"); + node = session_table_search_by_id(table, 3); + EXPECT_TRUE(node == nullptr); + + // TEST Destory + session_table_destory(table); +} + +TEST(STREAM_TABLE_SESSION_ID_ONLY_KEY, DELETE_BY_ID) +{ + // TEST Create + struct session_table *table = session_table_create(); + EXPECT_TRUE(table != nullptr); + + char *val_hello = strdup("HELLO"); + char *val_world = strdup("WORLD"); + INIT_ADDR_V4(addr1, "1.2.3.4", 1234, "4.3.2.1", 4321); + INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); + struct tuple4 addr1_reverse; + struct tuple4 addr2_reverse; + tuple4_reverse(&addr1, &addr1_reverse); + tuple4_reverse(&addr2, &addr2_reverse); + + // TEST Insert + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_count(table) == 2); + + // TEST Delete By Session ID + EXPECT_TRUE(session_table_delete_by_id(table, 1) == 0); + EXPECT_TRUE(session_table_search_by_id(table, 1) == NULL); + EXPECT_TRUE(session_table_search_by_addr(table, &addr1) == NULL); + EXPECT_TRUE(session_table_search_by_addr(table, &addr1_reverse) == NULL); + EXPECT_TRUE(session_table_count(table) == 1); + + EXPECT_TRUE(session_table_delete_by_id(table, 2) == 0); + EXPECT_TRUE(session_table_search_by_id(table, 2) == NULL); + EXPECT_TRUE(session_table_search_by_addr(table, &addr2) == NULL); + EXPECT_TRUE(session_table_search_by_addr(table, &addr2_reverse) == NULL); + EXPECT_TRUE(session_table_count(table) == 0); + + // TEST Destory + session_table_destory(table); +} + +TEST(STREAM_TABLE_SESSION_ID_ONLY_KEY, RESET) +{ + // TEST Create + struct session_table *table = session_table_create(); + EXPECT_TRUE(table != nullptr); + + char *val_hello = strdup("HELLO"); + char *val_world = strdup("WORLD"); + INIT_ADDR_V4(addr1, "1.2.3.4", 1234, "4.3.2.1", 4321); + INIT_ADDR_V6(addr2, "2:3:4::5", 2345, "5:4:3::2", 5342); + + // TEST Insert + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 1, &addr1, val_hello, free) == -1); + EXPECT_TRUE(session_table_count(table) == 1); + + // TEST Reset + session_table_reset(table); + EXPECT_TRUE(session_table_search_by_id(table, 1) == nullptr); + EXPECT_TRUE(session_table_count(table) == 0); + + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == 0); + EXPECT_TRUE(session_table_insert(table, 1, 2, &addr2, val_world, free) == -1); + EXPECT_TRUE(session_table_search_by_id(table, 2) != nullptr); + EXPECT_TRUE(session_table_count(table) == 1); + + // TEST Destory + session_table_destory(table); +} + int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); |
