]> git.proxmox.com Git - mirror_frr.git/blame - pceplib/test/pcep_session_logic_tests.c
*: manual SPDX License ID conversions
[mirror_frr.git] / pceplib / test / pcep_session_logic_tests.c
CommitLineData
74971473
JG
1/*
2 * This file is part of the PCEPlib, a PCEP protocol library.
3 *
4 * Copyright (C) 2020 Volta Networks https://voltanet.io/
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 *
19 * Author : Brady Johnson <brady@voltanet.io>
20 *
21 */
22
23
1f8031f7
DL
24#ifdef HAVE_CONFIG_H
25#include "config.h"
26#endif
27
74971473
JG
28#include <CUnit/Basic.h>
29#include <CUnit/CUnit.h>
30#include <CUnit/TestDB.h>
31
32#include "pcep_session_logic_loop_test.h"
33#include "pcep_session_logic_states_test.h"
34#include "pcep_session_logic_test.h"
35
36
37int main(int argc, char **argv)
38{
39 /* Unused parameters cause compilation warnings */
40 (void)argc;
41 (void)argv;
42
43 CU_initialize_registry();
44
45 /*
46 * Tests defined in pcep_socket_comm_test.c
47 */
48 CU_pSuite test_session_logic_suite =
49 CU_add_suite_with_setup_and_teardown(
50 "PCEP Session Logic Test Suite",
51 pcep_session_logic_test_suite_setup, // suite setup and
52 // cleanup function
53 // pointers
54 pcep_session_logic_test_suite_teardown,
55 pcep_session_logic_test_setup, // test case setup
56 // function pointer
57 pcep_session_logic_test_teardown); // test case teardown
58 // function pointer
59
60 CU_add_test(test_session_logic_suite, "test_run_stop_session_logic",
61 test_run_stop_session_logic);
62 CU_add_test(test_session_logic_suite, "test_run_session_logic_twice",
63 test_run_session_logic_twice);
64 CU_add_test(test_session_logic_suite, "test_session_logic_without_run",
65 test_session_logic_without_run);
66 CU_add_test(test_session_logic_suite,
67 "test_create_pcep_session_null_params",
68 test_create_pcep_session_null_params);
69 CU_add_test(test_session_logic_suite,
70 "test_create_destroy_pcep_session",
71 test_create_destroy_pcep_session);
72 CU_add_test(test_session_logic_suite,
73 "test_create_destroy_pcep_session_ipv6",
74 test_create_destroy_pcep_session_ipv6);
75 CU_add_test(test_session_logic_suite,
76 "test_create_pcep_session_open_tlvs",
77 test_create_pcep_session_open_tlvs);
78 CU_add_test(test_session_logic_suite,
79 "test_destroy_pcep_session_null_session",
80 test_destroy_pcep_session_null_session);
81
82 CU_pSuite test_session_logic_loop_suite =
83 CU_add_suite_with_setup_and_teardown(
84 "PCEP Session Logic Loop Test Suite",
85 pcep_session_logic_loop_test_suite_setup, // suite setup
86 // and cleanup
87 // function
88 // pointers
89 pcep_session_logic_loop_test_suite_teardown,
90 pcep_session_logic_loop_test_setup, // test case setup
91 // function pointer
92 pcep_session_logic_loop_test_teardown); // test case
93 // teardown
94 // function
95 // pointer
96
97 CU_add_test(test_session_logic_loop_suite,
98 "test_session_logic_loop_null_data",
99 test_session_logic_loop_null_data);
100 CU_add_test(test_session_logic_loop_suite,
101 "test_session_logic_loop_inactive",
102 test_session_logic_loop_inactive);
103 CU_add_test(test_session_logic_loop_suite,
104 "test_session_logic_msg_ready_handler",
105 test_session_logic_msg_ready_handler);
106 CU_add_test(test_session_logic_loop_suite,
107 "test_session_logic_conn_except_notifier",
108 test_session_logic_conn_except_notifier);
109 CU_add_test(test_session_logic_loop_suite,
110 "test_session_logic_timer_expire_handler",
111 test_session_logic_timer_expire_handler);
112
113 CU_pSuite test_session_logic_states_suite =
114 CU_add_suite_with_setup_and_teardown(
115 "PCEP Session Logic States Test Suite",
116 pcep_session_logic_states_test_suite_setup, // suite
117 // setup and
118 // cleanup
119 // function
120 // pointers
121 pcep_session_logic_states_test_suite_teardown,
122 pcep_session_logic_states_test_setup, // test case setup
123 // function
124 // pointer
125 pcep_session_logic_states_test_teardown); // test case
126 // teardown
127 // function
128 // pointer
129
130 CU_add_test(test_session_logic_states_suite,
131 "test_handle_timer_event_dead_timer",
132 test_handle_timer_event_dead_timer);
133 CU_add_test(test_session_logic_states_suite,
134 "test_handle_timer_event_keep_alive",
135 test_handle_timer_event_keep_alive);
136 CU_add_test(test_session_logic_states_suite,
137 "test_handle_timer_event_open_keep_wait",
138 test_handle_timer_event_open_keep_wait);
139 CU_add_test(test_session_logic_states_suite,
140 "test_handle_socket_comm_event_null_params",
141 test_handle_socket_comm_event_null_params);
142 CU_add_test(test_session_logic_states_suite,
143 "test_handle_socket_comm_event_close",
144 test_handle_socket_comm_event_close);
145 CU_add_test(test_session_logic_states_suite,
146 "test_handle_socket_comm_event_open",
147 test_handle_socket_comm_event_open);
148 CU_add_test(test_session_logic_states_suite,
149 "test_handle_socket_comm_event_open_error",
150 test_handle_socket_comm_event_open_error);
151 CU_add_test(test_session_logic_states_suite,
152 "test_handle_socket_comm_event_keep_alive",
153 test_handle_socket_comm_event_keep_alive);
154 CU_add_test(test_session_logic_states_suite,
155 "test_handle_socket_comm_event_pcrep",
156 test_handle_socket_comm_event_pcrep);
157 CU_add_test(test_session_logic_states_suite,
158 "test_handle_socket_comm_event_pcreq",
159 test_handle_socket_comm_event_pcreq);
160 CU_add_test(test_session_logic_states_suite,
161 "test_handle_socket_comm_event_report",
162 test_handle_socket_comm_event_report);
163 CU_add_test(test_session_logic_states_suite,
164 "test_handle_socket_comm_event_update",
165 test_handle_socket_comm_event_update);
166 CU_add_test(test_session_logic_states_suite,
167 "test_handle_socket_comm_event_initiate",
168 test_handle_socket_comm_event_initiate);
169 CU_add_test(test_session_logic_states_suite,
170 "test_handle_socket_comm_event_notify",
171 test_handle_socket_comm_event_notify);
172 CU_add_test(test_session_logic_states_suite,
173 "test_handle_socket_comm_event_error",
174 test_handle_socket_comm_event_error);
175 CU_add_test(test_session_logic_states_suite,
176 "test_handle_socket_comm_event_unknown_msg",
177 test_handle_socket_comm_event_unknown_msg);
178 CU_add_test(test_session_logic_states_suite, "test_connection_failure",
179 test_connection_failure);
180
181 /*
182 * Run the tests and cleanup.
183 */
184 CU_basic_set_mode(CU_BRM_VERBOSE);
185 CU_basic_run_tests();
186 CU_FailureRecord *failure_record = CU_get_failure_list();
187 if (failure_record != NULL) {
188 printf("\nFailed tests:\n\t [Suite] [Test] [File:line-number]\n");
189 do {
190 printf("\t [%s] [%s] [%s:%d]\n",
191 failure_record->pSuite->pName,
192 failure_record->pTest->pName,
193 failure_record->strFileName,
194 failure_record->uiLineNumber);
195 failure_record = failure_record->pNext;
196
197 } while (failure_record != NULL);
198 }
199
200 CU_pRunSummary run_summary = CU_get_run_summary();
201 int result = run_summary->nTestsFailed;
202 CU_cleanup_registry();
203
204 return result;
205}