generator now has its generator_context which is used to generate more
[strongswan.git] / Source / charon / tests.c
1 /**
2 * @file tests.c
3 *
4 * @brief Main for all tests
5 *
6 */
7
8 /*
9 * Copyright (C) 2005 Jan Hutter, Martin Willi
10 * Hochschule fuer Technik Rapperswil
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 * for more details.
21 */
22
23
24 #include <stdio.h>
25
26 #include "logger.h"
27 #include "allocator.h"
28 #include "tester.h"
29 #include "job_queue.h"
30 #include "event_queue.h"
31 #include "send_queue.h"
32 #include "socket.h"
33 #include "tests/linked_list_test.h"
34 #include "tests/thread_pool_test.h"
35 #include "tests/job_queue_test.h"
36 #include "tests/event_queue_test.h"
37 #include "tests/send_queue_test.h"
38 #include "tests/socket_test.h"
39 #include "tests/sender_test.h"
40 #include "tests/scheduler_test.h"
41 #include "tests/receiver_test.h"
42 #include "tests/ike_sa_id_test.h"
43 #include "tests/ike_sa_test.h"
44 #include "tests/ike_sa_manager_test.h"
45 #include "tests/generator_test.h"
46 #include "tests/packet_test.h"
47
48
49 /* output for test messages */
50 extern FILE * stderr;
51
52 /**
53 * Test for linked_list_t
54 */
55 test_t linked_list_test = {test_linked_list,"Linked List"};
56
57 /**
58 * Test for linked_list_t with iterator
59 */
60 test_t linked_list_iterator_test = {test_linked_list_iterator,"Linked List Iterator"};
61
62 /**
63 * Test for linked_list_t insert and remove
64 */
65 test_t linked_list_insert_and_remove_test = {test_linked_list_insert_and_remove,"Linked List Insert and remove"};
66
67 /**
68 * Test for event_queue_t
69 */
70 test_t event_queue_test = {test_event_queue,"Event-Queue"};
71
72 /**
73 * Test 1 for job_queue_t
74 */
75 test_t job_queue_test1 = {test_job_queue,"Job-Queue"};
76
77 /**
78 * Test 1 for linked_list_t
79 */
80 test_t send_queue_test = {test_send_queue,"Send-Queue"};
81
82 /**
83 * Test for socket_t
84 */
85 test_t socket_test = {test_socket,"Socket"};
86
87 /**
88 * Test for thread_pool_t
89 */
90 test_t thread_pool_test = {test_thread_pool,"Thread Pool"};
91
92 /**
93 * Test for sender_t
94 */
95 test_t sender_test = {test_sender,"Sender"};
96
97 /**
98 * Test for scheduler_t
99 */
100 test_t scheduler_test = {test_scheduler,"Scheduler"};
101
102 /**
103 * Test for receiver_t
104 */
105 test_t receiver_test = {test_receiver,"Receiver"};
106
107 /**
108 * Test for ike_sa_id_t
109 */
110 test_t ike_sa_id_test = {test_ike_sa_id,"IKE_SA-Identifier"};
111
112 /**
113 * Test for ike_sa_t
114 */
115 test_t ike_sa_test = {test_ike_sa,"IKE_SA"};
116
117
118 /**
119 * Test for ike_sa_manager_t
120 */
121 test_t ike_sa_manager_test = {test_ike_sa_manager, "IKE_SA-Manager"};
122
123 /**
124 * Test for generator_t
125 */
126 test_t generator_test1 = {test_generator_with_unsupported_payload,"Generator: unsupported payload"};
127
128 /**
129 * Test 2 for generator_t
130 */
131 test_t generator_test2 = {test_generator_with_header_payload,"Generator: header payload"};
132
133 /**
134 * Test for packet_t
135 */
136 test_t packet_test = {test_packet,"Packet"};
137
138
139 /**
140 * Global job-queue
141 */
142 job_queue_t *global_job_queue;
143
144 /**
145 * Global event-queue
146 */
147 event_queue_t *global_event_queue;
148
149 /**
150 * Global send-queue
151 */
152 send_queue_t *global_send_queue;
153
154 /**
155 * Global socket
156 */
157 socket_t *global_socket;
158
159
160 /**
161 * Global logger
162 */
163 logger_t *global_logger;
164
165 int main()
166 {
167 FILE * test_output = stderr;
168
169 test_t *all_tests[] ={
170 &linked_list_test,
171 &linked_list_iterator_test,
172 &linked_list_insert_and_remove_test,
173 &thread_pool_test,
174 &job_queue_test1,
175 &event_queue_test,
176 &send_queue_test,
177 &scheduler_test,
178 &socket_test,
179 &sender_test,
180 &receiver_test,
181 &ike_sa_id_test,
182 &ike_sa_test,
183 &generator_test1,
184 &generator_test2,
185 &ike_sa_manager_test,
186 &packet_test,
187 NULL
188 };
189 global_logger = logger_create("Tester",ALL);
190
191 global_socket = socket_create(4600);
192
193 global_job_queue = job_queue_create();
194 global_event_queue = event_queue_create();
195 global_send_queue = send_queue_create();
196
197
198
199 tester_t *tester = tester_create(test_output, FALSE);
200
201 /*tester->perform_tests(tester,all_tests);*/
202 tester->perform_test(tester,&generator_test2);
203
204 tester->destroy(tester);
205
206
207 /* Destroy all queues */
208 global_job_queue->destroy(global_job_queue);
209 global_event_queue->destroy(global_event_queue);
210 global_send_queue->destroy(global_send_queue);
211
212 global_socket->destroy(global_socket);
213
214 global_logger->destroy(global_logger);
215
216 #ifdef LEAK_DETECTIVE
217 /* Leaks are reported on stderr */
218 report_memory_leaks();
219 #endif
220
221 return 0;
222 }