diff options
author | Dimitri Staessens <[email protected]> | 2021-12-04 15:35:36 +0100 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2021-12-06 17:52:08 +0100 |
commit | 11d2ecc140486949c8d81e984137263ca48d5799 (patch) | |
tree | 3b9a61015cb86e75fa7284fb1f3e66d7b326025e /src/ipcpd/unicast/pol/tests | |
parent | b8ffe155228dd05f8097422349e8e6525288bbdb (diff) | |
download | ouroboros-11d2ecc140486949c8d81e984137263ca48d5799.tar.gz ouroboros-11d2ecc140486949c8d81e984137263ca48d5799.zip |
ipcpd: Restructure policy code
The policies were all in a single folder pol/, and have been moved to
a folder per component/mechanism to keep things a bit more orderly.
Signed-off-by: Dimitri Staessens <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/ipcpd/unicast/pol/tests')
-rw-r--r-- | src/ipcpd/unicast/pol/tests/CMakeLists.txt | 35 | ||||
-rw-r--r-- | src/ipcpd/unicast/pol/tests/graph_test.c | 351 | ||||
-rw-r--r-- | src/ipcpd/unicast/pol/tests/pft_test.c | 126 |
3 files changed, 0 insertions, 512 deletions
diff --git a/src/ipcpd/unicast/pol/tests/CMakeLists.txt b/src/ipcpd/unicast/pol/tests/CMakeLists.txt deleted file mode 100644 index 34d80e8d..00000000 --- a/src/ipcpd/unicast/pol/tests/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -get_filename_component(CURRENT_SOURCE_PARENT_DIR - ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) -get_filename_component(CURRENT_BINARY_PARENT_DIR - ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -include_directories(${CURRENT_SOURCE_PARENT_DIR}) -include_directories(${CURRENT_BINARY_PARENT_DIR}) - -include_directories(${CMAKE_SOURCE_DIR}/include) -include_directories(${CMAKE_BINARY_DIR}/include) - -get_filename_component(PARENT_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) -get_filename_component(PARENT_DIR ${PARENT_PATH} NAME) - -create_test_sourcelist(${PARENT_DIR}_tests test_suite.c - # Add new tests here - graph_test.c - pft_test.c - ) - -add_executable(${PARENT_DIR}_test EXCLUDE_FROM_ALL ${${PARENT_DIR}_tests}) -target_link_libraries(${PARENT_DIR}_test ouroboros-common) - -add_dependencies(check ${PARENT_DIR}_test) - -set(tests_to_run ${${PARENT_DIR}_tests}) -remove(tests_to_run test_suite.c) - -foreach (test ${tests_to_run}) - get_filename_component(test_name ${test} NAME_WE) - add_test(${test_name} ${C_TEST_PATH}/${PARENT_DIR}_test ${test_name}) -endforeach (test) diff --git a/src/ipcpd/unicast/pol/tests/graph_test.c b/src/ipcpd/unicast/pol/tests/graph_test.c deleted file mode 100644 index 217c7eab..00000000 --- a/src/ipcpd/unicast/pol/tests/graph_test.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Ouroboros - Copyright (C) 2016 - 2021 - * - * Test of the graph structure - * - * Dimitri Staessens <[email protected]> - * Sander Vrijders <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., http://www.fsf.org/about/contact/. - */ - -#define _POSIX_C_SOURCE 200112L - -#include <ouroboros/utils.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "graph.c" - -struct graph * graph; -struct list_head table; -qosspec_t qs; - -int graph_test_entries(int entries) -{ - struct list_head * p; - int i = 0; - - if (graph_routing_table(graph, ROUTING_SIMPLE, 1, &table)) { - printf("Failed to get routing table.\n"); - return -1; - } - - list_for_each(p, &table) - i++; - - if (i != entries) { - printf("Wrong number of entries.\n"); - graph_free_routing_table(graph, &table); - return -1; - } - - graph_free_routing_table(graph, &table); - - return 0; -} - -int graph_test_double_link(void) -{ - struct list_head * p; - int i = 0; - - if (graph_routing_table(graph, ROUTING_SIMPLE, 1, &table)) { - printf("Failed to get routing table.\n"); - return -1; - } - - list_for_each(p, &table) - i++; - - if (i != 2) { - printf("Wrong number of entries.\n"); - graph_free_routing_table(graph, &table); - return -1; - } - - list_for_each(p, &table) { - struct routing_table * t = - list_entry(p, struct routing_table, next); - struct nhop * n = - list_first_entry(&t->nhops, struct nhop, next); - - if ((t->dst != 2 && n->nhop != 2) || - (t->dst != 3 && n->nhop != 2)) { - printf("Wrong routing entry.\n"); - graph_free_routing_table(graph, &table); - return -1; - } - } - - graph_free_routing_table(graph, &table); - - return 0; -} - -int graph_test_single_link(void) -{ - struct list_head * p; - int i = 0; - - if (graph_routing_table(graph, ROUTING_SIMPLE, 1, &table)) { - printf("Failed to get routing table.\n"); - return -1; - } - - list_for_each(p, &table) - i++; - - if (i != 1) { - printf("Wrong number of entries.\n"); - graph_free_routing_table(graph, &table); - return -1; - } - - list_for_each(p, &table) { - struct routing_table * t = - list_entry(p, struct routing_table, next); - struct nhop * n = - list_first_entry(&t->nhops, struct nhop, next); - - if (t->dst != 2 && n->nhop != 2) { - printf("Wrong routing entry.\n"); - graph_free_routing_table(graph, &table); - return -1; - } - } - - graph_free_routing_table(graph, &table); - - return 0; -} - -static int distance_check(int dst, - int nhop, - enum routing_algo algo) -{ - (void) algo; - - /* Same distances for all algorithms at the moment. */ - if (dst == 2 && nhop != 2) { - printf("Wrong entry: 2.\n"); - return -1; - } - - if (dst == 3 && nhop != 3) { - printf("Wrong entry: 3.\n"); - return -1; - } - - if (dst == 4 && nhop != 3) { - printf("Wrong entry: 4.\n"); - return -1; - } - - if (dst == 5 && nhop != 3) { - printf("Wrong entry: 5.\n"); - return -1; - } - - if (dst == 6 && nhop != 2) { - printf("Wrong entry: 6.\n"); - return -1; - } - - if (dst == 7 && nhop != 3) { - printf("Wrong entry: 7.\n"); - return -1; - } - - return 0; -} - -int graph_test(int argc, - char ** argv) -{ - int nhop; - int dst; - struct list_head * p; - - (void) argc; - (void) argv; - - memset(&qs, 0, sizeof(qs)); - - graph = graph_create(); - if (graph == NULL) { - printf("Failed to create graph.\n"); - return -1; - } - - graph_destroy(graph); - - graph = graph_create(); - if (graph == NULL) { - printf("Failed to create graph.\n"); - return -1; - } - - if (graph_update_edge(graph, 1, 2, qs)) { - printf("Failed to add edge.\n"); - graph_destroy(graph); - return -1; - } - - if (graph_update_edge(graph, 2, 1, qs)) { - printf("Failed to add edge.\n"); - graph_destroy(graph); - return -1; - } - - if (graph_test_single_link()) { - graph_destroy(graph); - return -1; - } - - if (graph_update_edge(graph, 2, 3, qs)) { - printf("Failed to add edge.\n"); - graph_destroy(graph); - return -1; - } - - if (graph_update_edge(graph, 3, 2, qs)) { - printf("Failed to add edge.\n"); - graph_destroy(graph); - return -1; - } - - if (graph_test_double_link()) { - graph_destroy(graph); - return -1; - } - - if (graph_del_edge(graph, 2, 3)) { - printf("Failed to delete edge.\n"); - goto fail_graph; - } - - if (graph_del_edge(graph, 3, 2)) { - printf("Failed to delete edge.\n"); - goto fail_graph; - } - - if (graph_test_single_link()) - goto fail_graph; - - graph_update_edge(graph, 2, 3, qs); - graph_update_edge(graph, 3, 2, qs); - graph_update_edge(graph, 1, 3, qs); - graph_update_edge(graph, 3, 1, qs); - - if (graph_test_entries(2)) - goto fail_graph; - - graph_update_edge(graph, 3, 4, qs); - graph_update_edge(graph, 4, 3, qs); - graph_update_edge(graph, 4, 5, qs); - graph_update_edge(graph, 5, 4, qs); - - if (graph_test_entries(4)) - goto fail_graph; - - graph_update_edge(graph, 2, 6, qs); - graph_update_edge(graph, 6, 2, qs); - graph_update_edge(graph, 6, 7, qs); - graph_update_edge(graph, 7, 6, qs); - graph_update_edge(graph, 3, 7, qs); - graph_update_edge(graph, 7, 3, qs); - - if (graph_test_entries(6)) - goto fail_graph; - - - if (graph_routing_table(graph, ROUTING_SIMPLE, 1, &table)) { - printf("Failed to get routing table.\n"); - goto fail_graph; - } - - list_for_each(p, &table) { - struct routing_table * t = - list_entry(p, struct routing_table, next); - struct nhop * n = - list_first_entry(&t->nhops, struct nhop, next); - - dst = t->dst; - nhop = n->nhop; - - if (distance_check(dst, nhop, ROUTING_SIMPLE)) { - printf("Simple distance check failed.\n"); - goto fail_routing; - } - } - - graph_free_routing_table(graph, &table); - - if (graph_routing_table(graph, ROUTING_LFA, 1, &table)) { - printf("Failed to get routing table for LFA.\n"); - goto fail_graph; - } - - list_for_each(p, &table) { - struct routing_table * t = - list_entry(p, struct routing_table, next); - struct nhop * n = - list_first_entry(&t->nhops, struct nhop, next); - - dst = t->dst; - nhop = n->nhop; - - if (distance_check(dst, nhop, ROUTING_LFA)) { - printf("LFA distance check failed.\n"); - goto fail_routing; - } - } - - graph_free_routing_table(graph, &table); - - if (graph_routing_table(graph, ROUTING_ECMP, 1, &table)) { - printf("Failed to get routing table for ECMP.\n"); - goto fail_graph; - } - - list_for_each(p, &table) { - struct routing_table * t = - list_entry(p, struct routing_table, next); - struct nhop * n = - list_first_entry(&t->nhops, struct nhop, next); - - dst = t->dst; - nhop = n->nhop; - - if (distance_check(dst, nhop, ROUTING_LFA)) { - printf("LFA distance check failed.\n"); - goto fail_routing; - } - } - - graph_free_routing_table(graph, &table); - - graph_destroy(graph); - - return 0; - - fail_routing: - graph_free_routing_table(graph, &table); - fail_graph: - graph_destroy(graph); - return -1; -} diff --git a/src/ipcpd/unicast/pol/tests/pft_test.c b/src/ipcpd/unicast/pol/tests/pft_test.c deleted file mode 100644 index c48267eb..00000000 --- a/src/ipcpd/unicast/pol/tests/pft_test.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Ouroboros - Copyright (C) 2016 - 2021 - * - * Test of the hash table - * - * Dimitri Staessens <[email protected]> - * Sander Vrijders <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., http://www.fsf.org/about/contact/. - */ - -#include "pft.c" - -#include <stdio.h> - -#define TBL_SIZE 256 -#define INT_TEST 4 - -int pft_test(int argc, - char ** argv) -{ - struct pft * pft; - int i; - int * j; - size_t len; - - (void) argc; - (void) argv; - - pft = pft_create(TBL_SIZE, true); - if (pft == NULL) { - printf("Failed to create.\n"); - return -1; - } - - pft_destroy(pft); - - pft = pft_create(TBL_SIZE, false); - if (pft == NULL) { - printf("Failed to create.\n"); - return -1; - } - - for (i = 0; i < TBL_SIZE + INT_TEST + 2; i++) { - j = malloc(sizeof(*j)); - if (j == NULL) { - printf("Failed to malloc.\n"); - pft_destroy(pft); - return -1; - } - *j = i; - - if (pft_insert(pft, i, j, 1)) { - printf("Failed to insert.\n"); - pft_destroy(pft); - free(j); - return -1; - } - } - - if (pft_lookup(pft, INT_TEST, &j, &len)) { - printf("Failed to lookup.\n"); - pft_destroy(pft); - return -1; - } - - if (*j != INT_TEST) { - printf("Lookup returned wrong value (%d != %d).\n", - INT_TEST, *j); - pft_destroy(pft); - return -1; - } - - if (pft_lookup(pft, TBL_SIZE + INT_TEST, &j, &len)) { - printf("Failed to lookup.\n"); - pft_destroy(pft); - return -1; - } - - if (*j != TBL_SIZE + INT_TEST) { - printf("Lookup returned wrong value (%d != %d).\n", - INT_TEST, *j); - pft_destroy(pft); - return -1; - } - - if (pft_delete(pft, INT_TEST)) { - printf("Failed to delete.\n"); - pft_destroy(pft); - return -1; - } - - if (pft_lookup(pft, INT_TEST, &j, &len) == 0) { - printf("Failed to delete properly.\n"); - pft_destroy(pft); - return -1; - } - - if (pft_lookup(pft, TBL_SIZE + INT_TEST, &j, &len)) { - printf("Failed to lookup after deletion.\n"); - pft_destroy(pft); - return -1; - } - - if (*j != TBL_SIZE + INT_TEST) { - printf("Lookup returned wrong value (%d != %d).\n", - INT_TEST, *j); - pft_destroy(pft); - return -1; - } - - pft_destroy(pft); - - return 0; -} |