From 5a7da1f7233305b77d8edc5b41f0f3be0aace803 Mon Sep 17 00:00:00 2001 From: Stephen Sun Date: Tue, 21 Jan 2025 08:28:39 +0000 Subject: [PATCH] Unit test Signed-off-by: Stephen Sun --- tests/mock_tests/routeorch_ut.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/mock_tests/routeorch_ut.cpp b/tests/mock_tests/routeorch_ut.cpp index 043b7b6b0a..f66fc9ac38 100644 --- a/tests/mock_tests/routeorch_ut.cpp +++ b/tests/mock_tests/routeorch_ut.cpp @@ -306,6 +306,11 @@ namespace routeorch_test {"mac_addr", "00:00:00:00:00:00" }}); intfTable.set("Ethernet4:11.0.0.1/32", { { "scope", "global" }, { "family", "IPv4" }}); + intfTable.set("Ethernet8", { {"NULL", "NULL" }, + {"vrf_name", "Vrf1"}, + {"mac_addr", "00:00:00:00:00:00" }}); + intfTable.set("Ethernet8:20.0.0.1/24", { { "scope", "global" }, + { "family", "IPv4" }}); gIntfsOrch->addExistingData(&intfTable); static_cast(gIntfsOrch)->doTask(); @@ -552,4 +557,30 @@ namespace routeorch_test ASSERT_EQ(current_create_count, create_route_count); ASSERT_EQ(current_set_count, set_route_count); } + + TEST_F(RouteOrchTest, RouteOrchTestVrfRoute) + { + std::deque entries; + entries.push_back({"Vrf2", "SET", { {"vni", "500200"}}}); + auto vrfConsumer = dynamic_cast(gVrfOrch->getExecutor(APP_VRF_TABLE_NAME)); + vrfConsumer->addToSync(entries); + static_cast(gVrfOrch)->doTask(); + entries.clear(); + entries.push_back({"Ethernet8", "SET", { {"vrf_name", "Vrf2"}}}); + auto intfConsumer = dynamic_cast(gIntfsOrch->getExecutor(APP_INTF_TABLE_NAME)); + intfConsumer->addToSync(entries); + static_cast(gIntfsOrch)->doTask(); + auto routeConsumer = dynamic_cast(gRouteOrch->getExecutor(APP_ROUTE_TABLE_NAME)); + entries.clear(); + entries.push_back({"Vrf2:fe80::/64", "DEL", {}}); + entries.push_back({"Vrf2:20.0.0.0/24", "DEL", {}}); + entries.push_back({"Vrf2:fe80::/64", "SET", { {"protocol", "kernel"}, + {"nexthop", "::"}, + {"ifname", "Ethernet8"}}}); + entries.push_back({"Vrf2:20.0.0.0/24", "SET", { {"protocol", "kernel"}, + {"nexthop", "0.0.0.0"}, + {"ifname", "Ethernet8"}}}); + routeConsumer->addToSync(entries); + static_cast(gRouteOrch)->doTask(); + } }