aboutsummaryrefslogtreecommitdiffstats
path: root/src/scvpp/tests/scvpp_ip_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scvpp/tests/scvpp_ip_test.c')
-rw-r--r--src/scvpp/tests/scvpp_ip_test.c184
1 files changed, 0 insertions, 184 deletions
diff --git a/src/scvpp/tests/scvpp_ip_test.c b/src/scvpp/tests/scvpp_ip_test.c
deleted file mode 100644
index 5e28123..0000000
--- a/src/scvpp/tests/scvpp_ip_test.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (c) 2019 Cisco
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <unistd.h>
-#include <setjmp.h>
-#include <stdarg.h>
-#include <cmocka.h>
-
-#include "scvpp_test.h"
-
-#include <scvpp/ip.h>
-#include <scvpp/interface.h>
-#include <scvpp/comm.h>
-
-static void test_add_remove_ipv4(void **state)
-{
- UNUSED(state);
- const char ip_q[VPP_IP4_ADDRESS_STRING_LEN] = "192.168.100.144";
- char ip_r[VPP_IP4_ADDRESS_STRING_LEN];
- u8 prefix_q = 24;
- u8 prefix_r;
- int rc;
-
- //add ipv4 on tap0
- rc = ipv46_config_add_remove("tap0", ip_q, prefix_q, false, true);
- assert_int_equal(rc, SCVPP_OK);
-
- //dump ipv4 on tap0 and check if it mach
- rc = ipv46_address_dump("tap0", ip_r, &prefix_r, false);
- assert_int_equal(rc, SCVPP_OK);
- assert_string_equal(ip_q, ip_r);
- assert_int_equal(prefix_q, prefix_r);
-
- //remove ipv4 on tap0
- rc = ipv46_config_add_remove("tap0", ip_q, prefix_q, false, false);
- assert_int_equal(rc, SCVPP_OK);
-
- //dump ipv4 after removal and check if equals 0.0.0.0
- rc = ipv46_address_dump("tap0", ip_r, &prefix_r, false);
- assert_int_equal(rc, SCVPP_OK);
- assert_string_equal(ip_r, "0.0.0.0");
-}
-
-static void test_ipv4_add_del_route_no_iface(void **state)
-{
- UNUSED(state);
- int rc;
- char dst_address[VPP_IP4_ADDRESS_STRING_LEN] = "192.168.100.0";
- uint8_t prefix_len = 24;
- char next_hop[VPP_IP4_ADDRESS_STRING_LEN] = "192.168.100.100";
- uint32_t table_id = 0;
- fib_dump_t *dump;
- struct elt *stack;
- bool route_found = false;
-
- /* Must fail, can not have both interface and next hop IP null */
- rc = ipv46_config_add_del_route(dst_address, prefix_len, NULL, true,
- table_id, NULL);
- assert_int_equal(rc, -SCVPP_EINVAL);
-
- rc = ipv46_config_add_del_route(dst_address, prefix_len, next_hop, true,
- table_id, NULL);
- assert_int_equal(rc, SCVPP_OK);
-
- /* Dump all FIB routes and check if we find ours */
- stack = ipv4_fib_dump_all();
- assert_non_null(stack);
- foreach_stack_elt(stack) {
- dump = (fib_dump_t *) data;
-
- if (strncmp(sc_ntoa(dump->address), dst_address,
- VPP_IP4_ADDRESS_STRING_LEN) == 0 &&
- dump->address_length == prefix_len) {
- route_found = true;
- assert_int_equal(dump->table_id, table_id);
- assert_int_equal(dump->count, 1);
- assert_string_equal(sc_ntoa(dump->path[0].next_hop), next_hop);
- }
- free(dump);
- }
- assert_true(route_found);
-
- /* Delete previously set route */
- rc = ipv46_config_add_del_route(dst_address, prefix_len, next_hop, false,
- table_id, NULL);
- assert_int_equal(rc, SCVPP_OK);
-
- /* Check our route has been deleted */
- route_found = false;
- stack = ipv4_fib_dump_all();
- assert_non_null(stack);
- foreach_stack_elt(stack) {
- dump = (fib_dump_t *) data;
- if (strncmp(sc_ntoa(dump->address), dst_address,
- VPP_IP4_ADDRESS_STRING_LEN) == 0 &&
- dump->address_length == prefix_len) {
- route_found = true;
- }
- free(dump);
- }
- assert_false(route_found);
-}
-
-static void test_ipv4_add_del_route_no_next_hop_ip(void **state)
-{
- UNUSED(state);
- int rc;
- char dst_address[VPP_IP4_ADDRESS_STRING_LEN] = "192.168.100.0";
- uint8_t prefix_len = 24;
- char interface[VPP_IP4_ADDRESS_STRING_LEN] = "tap0";
- uint32_t table_id = 0;
- uint32_t sw_if_index;
- fib_dump_t *dump;
- struct elt *stack;
- bool route_found = false;
-
- //Add a new route
- rc = ipv46_config_add_del_route(dst_address, prefix_len, NULL, true,
- table_id, interface);
- assert_int_equal(rc, SCVPP_OK);
-
- //Dump all FIB routes and check we find ours
- stack = ipv4_fib_dump_all();
- assert_non_null(stack);
-
- rc = get_interface_id(interface, &sw_if_index);
- assert_int_equal(rc, SCVPP_OK);
-
- foreach_stack_elt(stack) {
- dump = (fib_dump_t *) data;
-
- if (strncmp(sc_ntoa(dump->address), dst_address,
- VPP_IP4_ADDRESS_STRING_LEN) == 0 &&
- dump->address_length == prefix_len) {
- route_found = true;
- assert_int_equal(dump->table_id, table_id);
- assert_int_equal(dump->count, 1);
- assert_int_equal(dump->path[0].sw_if_index, sw_if_index);
- }
- free(dump);
- }
- assert_true(route_found);
-
- //Delete route
- rc = ipv46_config_add_del_route(dst_address, prefix_len, NULL, false,
- table_id, interface);
- assert_int_equal(rc, SCVPP_OK);
-
- //Check our route has been deleted
- route_found = false;
- stack = ipv4_fib_dump_all();
- assert_non_null(stack);
-
- foreach_stack_elt(stack) {
- dump = (fib_dump_t *) data;
- if (strncmp(sc_ntoa(dump->address), dst_address,
- VPP_IP4_ADDRESS_STRING_LEN) == 0 &&
- dump->address_length == prefix_len) {
- route_found = true;
- }
- free(dump);
- }
- assert_false(route_found);
-}
-
-
-const struct CMUnitTest ip_tests[IP_TEST_SIZE] = {
- cmocka_unit_test(test_add_remove_ipv4),
- cmocka_unit_test(test_ipv4_add_del_route_no_next_hop_ip),
- cmocka_unit_test(test_ipv4_add_del_route_no_iface),
-};