OpenDNSSEC-enforcer 2.1.13
test_policy.c
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014 Jerry Lundström <lundstrom.jerry@gmail.com>
3 * Copyright (c) 2014 .SE (The Internet Infrastructure Foundation).
4 * Copyright (c) 2014 OpenDNSSEC AB (svb)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
22 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 */
29
30#include "CUnit/Basic.h"
31
32#include "../db_configuration.h"
33#include "../db_connection.h"
34#include "../policy.h"
35
36#include <string.h>
37
38static db_configuration_list_t* configuration_list = NULL;
39static db_configuration_t* configuration = NULL;
40static db_connection_t* connection = NULL;
41
42static policy_t* object = NULL;
43static policy_list_t* object_list = NULL;
44static db_value_t id = DB_VALUE_EMPTY;
45static db_clause_list_t* clause_list = NULL;
46
47static int db_sqlite = 0;
48static int db_mysql = 0;
49
50#if defined(ENFORCER_DATABASE_SQLITE3)
51int test_policy_init_suite_sqlite(void) {
52 if (configuration_list) {
53 return 1;
54 }
55 if (configuration) {
56 return 1;
57 }
58 if (connection) {
59 return 1;
60 }
61
62 /*
63 * Setup the configuration for the connection
64 */
65 if (!(configuration_list = db_configuration_list_new())) {
66 return 1;
67 }
68 if (!(configuration = db_configuration_new())
69 || db_configuration_set_name(configuration, "backend")
70 || db_configuration_set_value(configuration, "sqlite")
71 || db_configuration_list_add(configuration_list, configuration))
72 {
73 db_configuration_free(configuration);
74 configuration = NULL;
75 db_configuration_list_free(configuration_list);
76 configuration_list = NULL;
77 return 1;
78 }
79 configuration = NULL;
80 if (!(configuration = db_configuration_new())
81 || db_configuration_set_name(configuration, "file")
82 || db_configuration_set_value(configuration, "test.db")
83 || db_configuration_list_add(configuration_list, configuration))
84 {
85 db_configuration_free(configuration);
86 configuration = NULL;
87 db_configuration_list_free(configuration_list);
88 configuration_list = NULL;
89 return 1;
90 }
91 configuration = NULL;
92
93 /*
94 * Connect to the database
95 */
96 if (!(connection = db_connection_new())
97 || db_connection_set_configuration_list(connection, configuration_list))
98 {
99 db_connection_free(connection);
100 connection = NULL;
101 db_configuration_list_free(configuration_list);
102 configuration_list = NULL;
103 return 1;
104 }
105 configuration_list = NULL;
106
107 if (db_connection_setup(connection)
108 || db_connection_connect(connection))
109 {
110 db_connection_free(connection);
111 connection = NULL;
112 return 1;
113 }
114
115 db_sqlite = 1;
116 db_mysql = 0;
117
118 return 0;
119}
120#endif
121
122#if defined(ENFORCER_DATABASE_MYSQL)
123int test_policy_init_suite_mysql(void) {
124 if (configuration_list) {
125 return 1;
126 }
127 if (configuration) {
128 return 1;
129 }
130 if (connection) {
131 return 1;
132 }
133
134 /*
135 * Setup the configuration for the connection
136 */
137 if (!(configuration_list = db_configuration_list_new())) {
138 return 1;
139 }
140 if (!(configuration = db_configuration_new())
141 || db_configuration_set_name(configuration, "backend")
142 || db_configuration_set_value(configuration, "mysql")
143 || db_configuration_list_add(configuration_list, configuration))
144 {
145 db_configuration_free(configuration);
146 configuration = NULL;
147 db_configuration_list_free(configuration_list);
148 configuration_list = NULL;
149 return 1;
150 }
151 configuration = NULL;
152 if (!(configuration = db_configuration_new())
153 || db_configuration_set_name(configuration, "host")
154 || db_configuration_set_value(configuration, ENFORCER_DB_HOST)
155 || db_configuration_list_add(configuration_list, configuration))
156 {
157 db_configuration_free(configuration);
158 configuration = NULL;
159 db_configuration_list_free(configuration_list);
160 configuration_list = NULL;
161 return 1;
162 }
163 configuration = NULL;
164 if (!(configuration = db_configuration_new())
165 || db_configuration_set_name(configuration, "port")
166 || db_configuration_set_value(configuration, ENFORCER_DB_PORT_TEXT)
167 || db_configuration_list_add(configuration_list, configuration))
168 {
169 db_configuration_free(configuration);
170 configuration = NULL;
171 db_configuration_list_free(configuration_list);
172 configuration_list = NULL;
173 return 1;
174 }
175 configuration = NULL;
176 if (!(configuration = db_configuration_new())
177 || db_configuration_set_name(configuration, "user")
178 || db_configuration_set_value(configuration, ENFORCER_DB_USERNAME)
179 || db_configuration_list_add(configuration_list, configuration))
180 {
181 db_configuration_free(configuration);
182 configuration = NULL;
183 db_configuration_list_free(configuration_list);
184 configuration_list = NULL;
185 return 1;
186 }
187 configuration = NULL;
188 if (!(configuration = db_configuration_new())
189 || db_configuration_set_name(configuration, "pass")
190 || db_configuration_set_value(configuration, ENFORCER_DB_PASSWORD)
191 || db_configuration_list_add(configuration_list, configuration))
192 {
193 db_configuration_free(configuration);
194 configuration = NULL;
195 db_configuration_list_free(configuration_list);
196 configuration_list = NULL;
197 return 1;
198 }
199 configuration = NULL;
200 if (!(configuration = db_configuration_new())
201 || db_configuration_set_name(configuration, "db")
202 || db_configuration_set_value(configuration, ENFORCER_DB_DATABASE)
203 || db_configuration_list_add(configuration_list, configuration))
204 {
205 db_configuration_free(configuration);
206 configuration = NULL;
207 db_configuration_list_free(configuration_list);
208 configuration_list = NULL;
209 return 1;
210 }
211 configuration = NULL;
212
213 /*
214 * Connect to the database
215 */
216 if (!(connection = db_connection_new())
217 || db_connection_set_configuration_list(connection, configuration_list))
218 {
219 db_connection_free(connection);
220 connection = NULL;
221 db_configuration_list_free(configuration_list);
222 configuration_list = NULL;
223 return 1;
224 }
225 configuration_list = NULL;
226
227 if (db_connection_setup(connection)
228 || db_connection_connect(connection))
229 {
230 db_connection_free(connection);
231 connection = NULL;
232 return 1;
233 }
234
235 db_sqlite = 0;
236 db_mysql = 1;
237
238 return 0;
239}
240#endif
241
242static int test_policy_clean_suite(void) {
243 db_connection_free(connection);
244 connection = NULL;
245 db_configuration_free(configuration);
246 configuration = NULL;
247 db_configuration_list_free(configuration_list);
248 configuration_list = NULL;
249 db_value_reset(&id);
250 db_clause_list_free(clause_list);
251 clause_list = NULL;
252 return 0;
253}
254
255static void test_policy_new(void) {
256 CU_ASSERT_PTR_NOT_NULL_FATAL((object = policy_new(connection)));
257 CU_ASSERT_PTR_NOT_NULL_FATAL((object_list = policy_list_new(connection)));
258}
259
260static void test_policy_set(void) {
261 CU_ASSERT(!policy_set_name(object, "name 1"));
262 CU_ASSERT(!policy_set_description(object, "description 1"));
263 CU_ASSERT(!policy_set_signatures_resign(object, 1));
264 CU_ASSERT(!policy_set_signatures_refresh(object, 1));
265 CU_ASSERT(!policy_set_signatures_jitter(object, 1));
266 CU_ASSERT(!policy_set_signatures_inception_offset(object, 1));
267 CU_ASSERT(!policy_set_signatures_validity_default(object, 1));
268 CU_ASSERT(!policy_set_signatures_validity_denial(object, 1));
269 CU_ASSERT(!policy_set_signatures_max_zone_ttl(object, 1));
272 CU_ASSERT(!policy_set_denial_optout(object, 1));
273 CU_ASSERT(!policy_set_denial_ttl(object, 1));
274 CU_ASSERT(!policy_set_denial_resalt(object, 1));
275 CU_ASSERT(!policy_set_denial_algorithm(object, 1));
276 CU_ASSERT(!policy_set_denial_iterations(object, 1));
277 CU_ASSERT(!policy_set_denial_salt_length(object, 1));
278 CU_ASSERT(!policy_set_denial_salt(object, "denial_salt 1"));
279 CU_ASSERT(!policy_set_denial_salt_last_change(object, 1));
280 CU_ASSERT(!policy_set_keys_ttl(object, 1));
281 CU_ASSERT(!policy_set_keys_retire_safety(object, 1));
282 CU_ASSERT(!policy_set_keys_publish_safety(object, 1));
283 CU_ASSERT(!policy_set_keys_shared(object, 1));
284 CU_ASSERT(!policy_set_keys_purge_after(object, 1));
285 CU_ASSERT(!policy_set_zone_propagation_delay(object, 1));
286 CU_ASSERT(!policy_set_zone_soa_ttl(object, 1));
287 CU_ASSERT(!policy_set_zone_soa_minimum(object, 1));
288 CU_ASSERT(!policy_set_zone_soa_serial_text(object, "counter"));
289 CU_ASSERT(!policy_set_zone_soa_serial_text(object, "datecounter"));
290 CU_ASSERT(!policy_set_zone_soa_serial_text(object, "unixtime"));
291 CU_ASSERT(!policy_set_zone_soa_serial_text(object, "keep"));
292 CU_ASSERT(!policy_set_parent_registration_delay(object, 1));
293 CU_ASSERT(!policy_set_parent_propagation_delay(object, 1));
294 CU_ASSERT(!policy_set_parent_ds_ttl(object, 1));
295 CU_ASSERT(!policy_set_parent_soa_ttl(object, 1));
296 CU_ASSERT(!policy_set_parent_soa_minimum(object, 1));
297}
298
299static void test_policy_get(void) {
300 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_name(object));
301 CU_ASSERT(!strcmp(policy_name(object), "name 1"));
302 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_description(object));
303 CU_ASSERT(!strcmp(policy_description(object), "description 1"));
304 CU_ASSERT(policy_signatures_resign(object) == 1);
305 CU_ASSERT(policy_signatures_refresh(object) == 1);
306 CU_ASSERT(policy_signatures_jitter(object) == 1);
307 CU_ASSERT(policy_signatures_inception_offset(object) == 1);
308 CU_ASSERT(policy_signatures_validity_default(object) == 1);
309 CU_ASSERT(policy_signatures_validity_denial(object) == 1);
310 CU_ASSERT(policy_signatures_max_zone_ttl(object) == 1);
311 CU_ASSERT(policy_denial_type(object) == POLICY_DENIAL_TYPE_NSEC3);
312 CU_ASSERT(policy_denial_optout(object) == 1);
313 CU_ASSERT(policy_denial_ttl(object) == 1);
314 CU_ASSERT(policy_denial_resalt(object) == 1);
315 CU_ASSERT(policy_denial_algorithm(object) == 1);
316 CU_ASSERT(policy_denial_iterations(object) == 1);
317 CU_ASSERT(policy_denial_salt_length(object) == 1);
318 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_denial_salt(object));
319 CU_ASSERT(!strcmp(policy_denial_salt(object), "denial_salt 1"));
320 CU_ASSERT(policy_denial_salt_last_change(object) == 1);
321 CU_ASSERT(policy_keys_ttl(object) == 1);
322 CU_ASSERT(policy_keys_retire_safety(object) == 1);
323 CU_ASSERT(policy_keys_publish_safety(object) == 1);
324 CU_ASSERT(policy_keys_shared(object) == 1);
325 CU_ASSERT(policy_keys_purge_after(object) == 1);
326 CU_ASSERT(policy_zone_propagation_delay(object) == 1);
327 CU_ASSERT(policy_zone_soa_ttl(object) == 1);
328 CU_ASSERT(policy_zone_soa_minimum(object) == 1);
329 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_zone_soa_serial_text(object));
330 CU_ASSERT(!strcmp(policy_zone_soa_serial_text(object), "keep"));
331 CU_ASSERT(policy_parent_registration_delay(object) == 1);
332 CU_ASSERT(policy_parent_propagation_delay(object) == 1);
333 CU_ASSERT(policy_parent_ds_ttl(object) == 1);
334 CU_ASSERT(policy_parent_soa_ttl(object) == 1);
335 CU_ASSERT(policy_parent_soa_minimum(object) == 1);
336}
337
338static void test_policy_create(void) {
339 CU_ASSERT_FATAL(!policy_create(object));
340}
341
342static void test_policy_clauses(void) {
343 policy_list_t* new_list;
344
345 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
346 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
347 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
348 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
349 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
350 policy_list_free(new_list);
351 db_clause_list_free(clause_list);
352 clause_list = NULL;
353
354 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
355 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
356 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
357 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
358 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
359 policy_list_free(new_list);
360 db_clause_list_free(clause_list);
361 clause_list = NULL;
362
363 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
364 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
365 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
366 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
367 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
368 policy_list_free(new_list);
369 db_clause_list_free(clause_list);
370 clause_list = NULL;
371
372 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
373 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
374 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
375 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
376 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
377 policy_list_free(new_list);
378 db_clause_list_free(clause_list);
379 clause_list = NULL;
380
381 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
382 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
383 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
384 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
385 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
386 policy_list_free(new_list);
387 db_clause_list_free(clause_list);
388 clause_list = NULL;
389
390 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
391 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
392 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
393 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
394 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
395 policy_list_free(new_list);
396 db_clause_list_free(clause_list);
397 clause_list = NULL;
398
399 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
400 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
401 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
402 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
403 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
404 policy_list_free(new_list);
405 db_clause_list_free(clause_list);
406 clause_list = NULL;
407
408 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
409 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
410 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
411 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
412 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
413 policy_list_free(new_list);
414 db_clause_list_free(clause_list);
415 clause_list = NULL;
416
417 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
418 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
419 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
420 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
421 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
422 policy_list_free(new_list);
423 db_clause_list_free(clause_list);
424 clause_list = NULL;
425
426 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
427 CU_ASSERT_PTR_NOT_NULL(policy_denial_type_clause(clause_list, policy_denial_type(object)));
428 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
429 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
430 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
431 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
432 policy_list_free(new_list);
433 db_clause_list_free(clause_list);
434 clause_list = NULL;
435
436 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
437 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
438 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
439 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
440 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
441 policy_list_free(new_list);
442 db_clause_list_free(clause_list);
443 clause_list = NULL;
444
445 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
446 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
447 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
448 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
449 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
450 policy_list_free(new_list);
451 db_clause_list_free(clause_list);
452 clause_list = NULL;
453
454 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
455 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
456 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
457 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
458 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
459 policy_list_free(new_list);
460 db_clause_list_free(clause_list);
461 clause_list = NULL;
462
463 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
464 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
465 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
466 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
467 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
468 policy_list_free(new_list);
469 db_clause_list_free(clause_list);
470 clause_list = NULL;
471
472 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
473 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
474 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
475 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
476 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
477 policy_list_free(new_list);
478 db_clause_list_free(clause_list);
479 clause_list = NULL;
480
481 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
482 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
483 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
484 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
485 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
486 policy_list_free(new_list);
487 db_clause_list_free(clause_list);
488 clause_list = NULL;
489
490 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
491 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
492 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
493 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
494 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
495 policy_list_free(new_list);
496 db_clause_list_free(clause_list);
497 clause_list = NULL;
498
499 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
500 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
501 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
502 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
503 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
504 policy_list_free(new_list);
505 db_clause_list_free(clause_list);
506 clause_list = NULL;
507
508 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
509 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
510 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
511 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
512 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
513 policy_list_free(new_list);
514 db_clause_list_free(clause_list);
515 clause_list = NULL;
516
517 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
518 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
519 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
520 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
521 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
522 policy_list_free(new_list);
523 db_clause_list_free(clause_list);
524 clause_list = NULL;
525
526 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
527 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
528 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
529 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
530 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
531 policy_list_free(new_list);
532 db_clause_list_free(clause_list);
533 clause_list = NULL;
534
535 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
536 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
537 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
538 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
539 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
540 policy_list_free(new_list);
541 db_clause_list_free(clause_list);
542 clause_list = NULL;
543
544 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
545 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
546 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
547 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
548 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
549 policy_list_free(new_list);
550 db_clause_list_free(clause_list);
551 clause_list = NULL;
552
553 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
554 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
555 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
556 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
557 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
558 policy_list_free(new_list);
559 db_clause_list_free(clause_list);
560 clause_list = NULL;
561
562 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
563 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
564 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
565 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
566 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
567 policy_list_free(new_list);
568 db_clause_list_free(clause_list);
569 clause_list = NULL;
570
571 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
572 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
573 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
574 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
575 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
576 policy_list_free(new_list);
577 db_clause_list_free(clause_list);
578 clause_list = NULL;
579
580 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
581 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
582 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
583 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
584 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
585 policy_list_free(new_list);
586 db_clause_list_free(clause_list);
587 clause_list = NULL;
588
589 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
590 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
591 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
592 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
593 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
594 policy_list_free(new_list);
595 db_clause_list_free(clause_list);
596 clause_list = NULL;
597
598 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
599 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
600 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
601 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
602 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
603 policy_list_free(new_list);
604 db_clause_list_free(clause_list);
605 clause_list = NULL;
606
607 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
608 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
609 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
610 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
611 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
612 policy_list_free(new_list);
613 db_clause_list_free(clause_list);
614 clause_list = NULL;
615
616 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
617 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
618 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
619 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
620 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
621 policy_list_free(new_list);
622 db_clause_list_free(clause_list);
623 clause_list = NULL;
624
625 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
626 CU_ASSERT(!policy_list_get_by_clauses(object_list, clause_list));
627 CU_ASSERT_PTR_NOT_NULL(policy_list_next(object_list));
628 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get_by_clauses(connection, clause_list)));
629 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
630 policy_list_free(new_list);
631 db_clause_list_free(clause_list);
632 clause_list = NULL;
633}
634
635static void test_policy_list(void) {
636 const policy_t* item;
637 policy_t* item2;
638 policy_list_t* new_list;
639
640 CU_ASSERT_FATAL(!policy_list_get(object_list));
641 CU_ASSERT_PTR_NOT_NULL_FATAL((item = policy_list_next(object_list)));
642 CU_ASSERT_FATAL(!db_value_copy(&id, policy_id(item)));
643 CU_ASSERT_PTR_NOT_NULL_FATAL((item = policy_list_begin(object_list)));
644
645 CU_ASSERT_FATAL(!policy_list_get(object_list));
646 CU_ASSERT_PTR_NOT_NULL_FATAL((item2 = policy_list_get_next(object_list)));
647 policy_free(item2);
648 CU_PASS("policy_free");
649
650 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new_get(connection)));
651 CU_ASSERT_PTR_NOT_NULL(policy_list_next(new_list));
652 policy_list_free(new_list);
653}
654
655static void test_policy_list_store(void) {
656 policy_list_t* new_list;
657
658 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new(connection)));
659 CU_ASSERT_FATAL(!policy_list_object_store(new_list));
660 CU_ASSERT_FATAL(!policy_list_get(new_list));
661
662 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_list_next(new_list));
663 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_list_begin(new_list));
664
665 CU_PASS("policy_free");
666
667 policy_list_free(new_list);
668}
669
670static void test_policy_list_associated(void) {
671 policy_list_t* new_list;
672
673 CU_ASSERT_PTR_NOT_NULL((new_list = policy_list_new(connection)));
674 CU_ASSERT_FATAL(!policy_list_get(new_list));
675
676 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_list_next(new_list));
677 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_list_begin(new_list));
678
679 CU_PASS("policy_free");
680
681 policy_list_free(new_list);
682}
683
684static void test_policy_read(void) {
685 CU_ASSERT_FATAL(!policy_get_by_id(object, &id));
686}
687
688static void test_policy_verify(void) {
689 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_name(object));
690 CU_ASSERT(!strcmp(policy_name(object), "name 1"));
691 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_description(object));
692 CU_ASSERT(!strcmp(policy_description(object), "description 1"));
693 CU_ASSERT(policy_signatures_resign(object) == 1);
694 CU_ASSERT(policy_signatures_refresh(object) == 1);
695 CU_ASSERT(policy_signatures_jitter(object) == 1);
696 CU_ASSERT(policy_signatures_inception_offset(object) == 1);
697 CU_ASSERT(policy_signatures_validity_default(object) == 1);
698 CU_ASSERT(policy_signatures_validity_denial(object) == 1);
699 CU_ASSERT(policy_signatures_max_zone_ttl(object) == 1);
700 CU_ASSERT(policy_denial_type(object) == POLICY_DENIAL_TYPE_NSEC3);
701 CU_ASSERT(policy_denial_optout(object) == 1);
702 CU_ASSERT(policy_denial_ttl(object) == 1);
703 CU_ASSERT(policy_denial_resalt(object) == 1);
704 CU_ASSERT(policy_denial_algorithm(object) == 1);
705 CU_ASSERT(policy_denial_iterations(object) == 1);
706 CU_ASSERT(policy_denial_salt_length(object) == 1);
707 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_denial_salt(object));
708 CU_ASSERT(!strcmp(policy_denial_salt(object), "denial_salt 1"));
709 CU_ASSERT(policy_denial_salt_last_change(object) == 1);
710 CU_ASSERT(policy_keys_ttl(object) == 1);
711 CU_ASSERT(policy_keys_retire_safety(object) == 1);
712 CU_ASSERT(policy_keys_publish_safety(object) == 1);
713 CU_ASSERT(policy_keys_shared(object) == 1);
714 CU_ASSERT(policy_keys_purge_after(object) == 1);
715 CU_ASSERT(policy_zone_propagation_delay(object) == 1);
716 CU_ASSERT(policy_zone_soa_ttl(object) == 1);
717 CU_ASSERT(policy_zone_soa_minimum(object) == 1);
718 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_zone_soa_serial_text(object));
719 CU_ASSERT(!strcmp(policy_zone_soa_serial_text(object), "keep"));
720 CU_ASSERT(policy_parent_registration_delay(object) == 1);
721 CU_ASSERT(policy_parent_propagation_delay(object) == 1);
722 CU_ASSERT(policy_parent_ds_ttl(object) == 1);
723 CU_ASSERT(policy_parent_soa_ttl(object) == 1);
724 CU_ASSERT(policy_parent_soa_minimum(object) == 1);
725}
726
727static void test_policy_read_by_name(void) {
728 CU_ASSERT_FATAL(!policy_get_by_name(object, "name 1"));
729}
730
731static void test_policy_verify_name(void) {
732 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_name(object));
733 CU_ASSERT(!strcmp(policy_name(object), "name 1"));
734 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_description(object));
735 CU_ASSERT(!strcmp(policy_description(object), "description 1"));
736 CU_ASSERT(policy_signatures_resign(object) == 1);
737 CU_ASSERT(policy_signatures_refresh(object) == 1);
738 CU_ASSERT(policy_signatures_jitter(object) == 1);
739 CU_ASSERT(policy_signatures_inception_offset(object) == 1);
740 CU_ASSERT(policy_signatures_validity_default(object) == 1);
741 CU_ASSERT(policy_signatures_validity_denial(object) == 1);
742 CU_ASSERT(policy_signatures_max_zone_ttl(object) == 1);
743 CU_ASSERT(policy_denial_type(object) == POLICY_DENIAL_TYPE_NSEC3);
744 CU_ASSERT(policy_denial_optout(object) == 1);
745 CU_ASSERT(policy_denial_ttl(object) == 1);
746 CU_ASSERT(policy_denial_resalt(object) == 1);
747 CU_ASSERT(policy_denial_algorithm(object) == 1);
748 CU_ASSERT(policy_denial_iterations(object) == 1);
749 CU_ASSERT(policy_denial_salt_length(object) == 1);
750 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_denial_salt(object));
751 CU_ASSERT(!strcmp(policy_denial_salt(object), "denial_salt 1"));
752 CU_ASSERT(policy_denial_salt_last_change(object) == 1);
753 CU_ASSERT(policy_keys_ttl(object) == 1);
754 CU_ASSERT(policy_keys_retire_safety(object) == 1);
755 CU_ASSERT(policy_keys_publish_safety(object) == 1);
756 CU_ASSERT(policy_keys_shared(object) == 1);
757 CU_ASSERT(policy_keys_purge_after(object) == 1);
758 CU_ASSERT(policy_zone_propagation_delay(object) == 1);
759 CU_ASSERT(policy_zone_soa_ttl(object) == 1);
760 CU_ASSERT(policy_zone_soa_minimum(object) == 1);
761 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_zone_soa_serial_text(object));
762 CU_ASSERT(!strcmp(policy_zone_soa_serial_text(object), "keep"));
763 CU_ASSERT(policy_parent_registration_delay(object) == 1);
764 CU_ASSERT(policy_parent_propagation_delay(object) == 1);
765 CU_ASSERT(policy_parent_ds_ttl(object) == 1);
766 CU_ASSERT(policy_parent_soa_ttl(object) == 1);
767 CU_ASSERT(policy_parent_soa_minimum(object) == 1);
768}
769
770static void test_policy_change(void) {
771 CU_ASSERT(!policy_set_name(object, "name 2"));
772 CU_ASSERT(!policy_set_description(object, "description 2"));
773 CU_ASSERT(!policy_set_signatures_resign(object, 2));
774 CU_ASSERT(!policy_set_signatures_refresh(object, 2));
775 CU_ASSERT(!policy_set_signatures_jitter(object, 2));
776 CU_ASSERT(!policy_set_signatures_inception_offset(object, 2));
777 CU_ASSERT(!policy_set_signatures_validity_default(object, 2));
778 CU_ASSERT(!policy_set_signatures_validity_denial(object, 2));
779 CU_ASSERT(!policy_set_signatures_max_zone_ttl(object, 2));
781 CU_ASSERT(!policy_set_denial_optout(object, 2));
782 CU_ASSERT(!policy_set_denial_ttl(object, 2));
783 CU_ASSERT(!policy_set_denial_resalt(object, 2));
784 CU_ASSERT(!policy_set_denial_algorithm(object, 2));
785 CU_ASSERT(!policy_set_denial_iterations(object, 2));
786 CU_ASSERT(!policy_set_denial_salt_length(object, 2));
787 CU_ASSERT(!policy_set_denial_salt(object, "denial_salt 2"));
788 CU_ASSERT(!policy_set_denial_salt_last_change(object, 2));
789 CU_ASSERT(!policy_set_keys_ttl(object, 2));
790 CU_ASSERT(!policy_set_keys_retire_safety(object, 2));
791 CU_ASSERT(!policy_set_keys_publish_safety(object, 2));
792 CU_ASSERT(!policy_set_keys_shared(object, 2));
793 CU_ASSERT(!policy_set_keys_purge_after(object, 2));
794 CU_ASSERT(!policy_set_zone_propagation_delay(object, 2));
795 CU_ASSERT(!policy_set_zone_soa_ttl(object, 2));
796 CU_ASSERT(!policy_set_zone_soa_minimum(object, 2));
797 CU_ASSERT(!policy_set_zone_soa_serial_text(object, "counter"));
798 CU_ASSERT(!policy_set_parent_registration_delay(object, 2));
799 CU_ASSERT(!policy_set_parent_propagation_delay(object, 2));
800 CU_ASSERT(!policy_set_parent_ds_ttl(object, 2));
801 CU_ASSERT(!policy_set_parent_soa_ttl(object, 2));
802 CU_ASSERT(!policy_set_parent_soa_minimum(object, 2));
803}
804
805static void test_policy_update(void) {
806 CU_ASSERT_FATAL(!policy_update(object));
807}
808
809static void test_policy_read2(void) {
810 CU_ASSERT_FATAL(!policy_get_by_id(object, &id));
811}
812
813static void test_policy_verify2(void) {
814 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_name(object));
815 CU_ASSERT(!strcmp(policy_name(object), "name 2"));
816 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_description(object));
817 CU_ASSERT(!strcmp(policy_description(object), "description 2"));
818 CU_ASSERT(policy_signatures_resign(object) == 2);
819 CU_ASSERT(policy_signatures_refresh(object) == 2);
820 CU_ASSERT(policy_signatures_jitter(object) == 2);
821 CU_ASSERT(policy_signatures_inception_offset(object) == 2);
822 CU_ASSERT(policy_signatures_validity_default(object) == 2);
823 CU_ASSERT(policy_signatures_validity_denial(object) == 2);
824 CU_ASSERT(policy_signatures_max_zone_ttl(object) == 2);
825 CU_ASSERT(policy_denial_type(object) == POLICY_DENIAL_TYPE_NSEC);
826 CU_ASSERT(policy_denial_optout(object) == 2);
827 CU_ASSERT(policy_denial_ttl(object) == 2);
828 CU_ASSERT(policy_denial_resalt(object) == 2);
829 CU_ASSERT(policy_denial_algorithm(object) == 2);
830 CU_ASSERT(policy_denial_iterations(object) == 2);
831 CU_ASSERT(policy_denial_salt_length(object) == 2);
832 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_denial_salt(object));
833 CU_ASSERT(!strcmp(policy_denial_salt(object), "denial_salt 2"));
834 CU_ASSERT(policy_denial_salt_last_change(object) == 2);
835 CU_ASSERT(policy_keys_ttl(object) == 2);
836 CU_ASSERT(policy_keys_retire_safety(object) == 2);
837 CU_ASSERT(policy_keys_publish_safety(object) == 2);
838 CU_ASSERT(policy_keys_shared(object) == 2);
839 CU_ASSERT(policy_keys_purge_after(object) == 2);
840 CU_ASSERT(policy_zone_propagation_delay(object) == 2);
841 CU_ASSERT(policy_zone_soa_ttl(object) == 2);
842 CU_ASSERT(policy_zone_soa_minimum(object) == 2);
843 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_zone_soa_serial_text(object));
844 CU_ASSERT(!strcmp(policy_zone_soa_serial_text(object), "counter"));
845 CU_ASSERT(policy_parent_registration_delay(object) == 2);
846 CU_ASSERT(policy_parent_propagation_delay(object) == 2);
847 CU_ASSERT(policy_parent_ds_ttl(object) == 2);
848 CU_ASSERT(policy_parent_soa_ttl(object) == 2);
849 CU_ASSERT(policy_parent_soa_minimum(object) == 2);
850}
851
852static void test_policy_cmp(void) {
853 policy_t* local_object;
854
855 CU_ASSERT_PTR_NOT_NULL_FATAL((local_object = policy_new(connection)));
856}
857
858static void test_policy_read_by_name2(void) {
859 CU_ASSERT_FATAL(!policy_get_by_name(object, "name 2"));
860}
861
862static void test_policy_verify_name2(void) {
863 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_name(object));
864 CU_ASSERT(!strcmp(policy_name(object), "name 2"));
865 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_description(object));
866 CU_ASSERT(!strcmp(policy_description(object), "description 2"));
867 CU_ASSERT(policy_signatures_resign(object) == 2);
868 CU_ASSERT(policy_signatures_refresh(object) == 2);
869 CU_ASSERT(policy_signatures_jitter(object) == 2);
870 CU_ASSERT(policy_signatures_inception_offset(object) == 2);
871 CU_ASSERT(policy_signatures_validity_default(object) == 2);
872 CU_ASSERT(policy_signatures_validity_denial(object) == 2);
873 CU_ASSERT(policy_signatures_max_zone_ttl(object) == 2);
874 CU_ASSERT(policy_denial_type(object) == POLICY_DENIAL_TYPE_NSEC);
875 CU_ASSERT(policy_denial_optout(object) == 2);
876 CU_ASSERT(policy_denial_ttl(object) == 2);
877 CU_ASSERT(policy_denial_resalt(object) == 2);
878 CU_ASSERT(policy_denial_algorithm(object) == 2);
879 CU_ASSERT(policy_denial_iterations(object) == 2);
880 CU_ASSERT(policy_denial_salt_length(object) == 2);
881 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_denial_salt(object));
882 CU_ASSERT(!strcmp(policy_denial_salt(object), "denial_salt 2"));
883 CU_ASSERT(policy_denial_salt_last_change(object) == 2);
884 CU_ASSERT(policy_keys_ttl(object) == 2);
885 CU_ASSERT(policy_keys_retire_safety(object) == 2);
886 CU_ASSERT(policy_keys_publish_safety(object) == 2);
887 CU_ASSERT(policy_keys_shared(object) == 2);
888 CU_ASSERT(policy_keys_purge_after(object) == 2);
889 CU_ASSERT(policy_zone_propagation_delay(object) == 2);
890 CU_ASSERT(policy_zone_soa_ttl(object) == 2);
891 CU_ASSERT(policy_zone_soa_minimum(object) == 2);
892 CU_ASSERT_PTR_NOT_NULL_FATAL(policy_zone_soa_serial_text(object));
893 CU_ASSERT(!strcmp(policy_zone_soa_serial_text(object), "counter"));
894 CU_ASSERT(policy_parent_registration_delay(object) == 2);
895 CU_ASSERT(policy_parent_propagation_delay(object) == 2);
896 CU_ASSERT(policy_parent_ds_ttl(object) == 2);
897 CU_ASSERT(policy_parent_soa_ttl(object) == 2);
898 CU_ASSERT(policy_parent_soa_minimum(object) == 2);
899}
900
901static void test_policy_delete(void) {
902 CU_ASSERT_FATAL(!policy_delete(object));
903}
904
905static void test_policy_list2(void) {
906 CU_ASSERT_FATAL(!policy_list_get(object_list));
907 CU_ASSERT_PTR_NULL(policy_list_next(object_list));
908}
909
910static void test_policy_end(void) {
911 if (object) {
912 policy_free(object);
913 CU_PASS("policy_free");
914 }
915 if (object_list) {
916 policy_list_free(object_list);
917 CU_PASS("policy_list_free");
918 }
919}
920
921static int test_policy_add_tests(CU_pSuite pSuite) {
922 if (!CU_add_test(pSuite, "new object", test_policy_new)
923 || !CU_add_test(pSuite, "set fields", test_policy_set)
924 || !CU_add_test(pSuite, "get fields", test_policy_get)
925 || !CU_add_test(pSuite, "create object", test_policy_create)
926 || !CU_add_test(pSuite, "object clauses", test_policy_clauses)
927 || !CU_add_test(pSuite, "list objects", test_policy_list)
928 || !CU_add_test(pSuite, "list objects (store)", test_policy_list_store)
929 || !CU_add_test(pSuite, "list objects (associated)", test_policy_list_associated)
930 || !CU_add_test(pSuite, "read object by id", test_policy_read)
931 || !CU_add_test(pSuite, "verify fields", test_policy_verify)
932 || !CU_add_test(pSuite, "read object by name", test_policy_read_by_name)
933 || !CU_add_test(pSuite, "verify fields (name)", test_policy_verify_name)
934 || !CU_add_test(pSuite, "change object", test_policy_change)
935 || !CU_add_test(pSuite, "update object", test_policy_update)
936 || !CU_add_test(pSuite, "reread object by id", test_policy_read2)
937 || !CU_add_test(pSuite, "verify fields after update", test_policy_verify2)
938 || !CU_add_test(pSuite, "compare objects", test_policy_cmp)
939 || !CU_add_test(pSuite, "reread object by name", test_policy_read_by_name2)
940 || !CU_add_test(pSuite, "verify fields after update (name)", test_policy_verify_name2)
941 || !CU_add_test(pSuite, "delete object", test_policy_delete)
942 || !CU_add_test(pSuite, "list objects to verify delete", test_policy_list2)
943 || !CU_add_test(pSuite, "end test", test_policy_end))
944 {
945 return CU_get_error();
946 }
947 return 0;
948}
949
951 CU_pSuite pSuite = NULL;
952 int ret;
953
954#if defined(ENFORCER_DATABASE_SQLITE3)
955 pSuite = CU_add_suite("Test of policy (SQLite)", test_policy_init_suite_sqlite, test_policy_clean_suite);
956 if (!pSuite) {
957 return CU_get_error();
958 }
959 ret = test_policy_add_tests(pSuite);
960 if (ret) {
961 return ret;
962 }
963#endif
964#if defined(ENFORCER_DATABASE_MYSQL)
965 pSuite = CU_add_suite("Test of policy (MySQL)", test_policy_init_suite_mysql, test_policy_clean_suite);
966 if (!pSuite) {
967 return CU_get_error();
968 }
969 ret = test_policy_add_tests(pSuite);
970 if (ret) {
971 return ret;
972 }
973#endif
974 return 0;
975}
db_clause_list_t * db_clause_list_new(void)
Definition: db_clause.c:202
void db_clause_list_free(db_clause_list_t *clause_list)
Definition: db_clause.c:209
db_configuration_t * db_configuration_new(void)
db_configuration_list_t * db_configuration_list_new(void)
void db_configuration_free(db_configuration_t *configuration)
int db_configuration_set_name(db_configuration_t *configuration, const char *name)
int db_configuration_list_add(db_configuration_list_t *configuration_list, db_configuration_t *configuration)
int db_configuration_set_value(db_configuration_t *configuration, const char *value)
void db_configuration_list_free(db_configuration_list_t *configuration_list)
int db_connection_connect(const db_connection_t *connection)
Definition: db_connection.c:88
db_connection_t * db_connection_new(void)
Definition: db_connection.c:38
int db_connection_setup(db_connection_t *connection)
Definition: db_connection.c:66
void db_connection_free(db_connection_t *connection)
Definition: db_connection.c:45
int db_connection_set_configuration_list(db_connection_t *connection, const db_configuration_list_t *configuration_list)
Definition: db_connection.c:54
int db_value_copy(db_value_t *value, const db_value_t *from_value)
Definition: db_value.c:77
void db_value_reset(db_value_t *value)
Definition: db_value.c:60
#define DB_VALUE_EMPTY
Definition: db_value.h:60
unsigned int policy_denial_salt_length(const policy_t *policy)
Definition: policy.c:941
int policy_set_name(policy_t *policy, const char *name_text)
Definition: policy.c:1142
unsigned int policy_zone_propagation_delay(const policy_t *policy)
Definition: policy.c:1005
unsigned int policy_denial_iterations(const policy_t *policy)
Definition: policy.c:933
int policy_set_parent_ds_ttl(policy_t *policy, unsigned int parent_ds_ttl)
Definition: policy.c:1500
int policy_set_denial_type(policy_t *policy, policy_denial_type_t denial_type)
Definition: policy.c:1266
int policy_set_denial_ttl(policy_t *policy, unsigned int denial_ttl)
Definition: policy.c:1289
unsigned int policy_denial_optout(const policy_t *policy)
Definition: policy.c:901
unsigned int policy_parent_soa_minimum(const policy_t *policy)
Definition: policy.c:1077
int policy_set_signatures_resign(policy_t *policy, unsigned int signatures_resign)
Definition: policy.c:1186
unsigned int policy_signatures_validity_denial(const policy_t *policy)
Definition: policy.c:869
unsigned int policy_keys_purge_after(const policy_t *policy)
Definition: policy.c:997
policy_t * policy_new(const db_connection_t *connection)
Definition: policy.c:479
int policy_set_denial_iterations(policy_t *policy, unsigned int denial_iterations)
Definition: policy.c:1323
unsigned int policy_parent_ds_ttl(const policy_t *policy)
Definition: policy.c:1061
unsigned int policy_signatures_resign(const policy_t *policy)
Definition: policy.c:829
int policy_set_parent_soa_minimum(policy_t *policy, unsigned int parent_soa_minimum)
Definition: policy.c:1520
void policy_list_free(policy_list_t *policy_list)
Definition: policy.c:2664
const policy_t * policy_list_begin(policy_list_t *policy_list)
Definition: policy.c:3158
int policy_set_signatures_inception_offset(policy_t *policy, unsigned int signatures_inception_offset)
Definition: policy.c:1216
db_clause_t * policy_denial_type_clause(db_clause_list_t *clause_list, policy_denial_type_t denial_type)
Definition: policy.c:1540
int policy_set_zone_propagation_delay(policy_t *policy, unsigned int zone_propagation_delay)
Definition: policy.c:1433
unsigned int policy_keys_ttl(const policy_t *policy)
Definition: policy.c:965
const policy_t * policy_list_next(policy_list_t *policy_list)
Definition: policy.c:3214
policy_list_t * policy_list_new_get_by_clauses(const db_connection_t *connection, const db_clause_list_t *clause_list)
Definition: policy.c:3138
unsigned int policy_parent_propagation_delay(const policy_t *policy)
Definition: policy.c:1053
int policy_set_keys_purge_after(policy_t *policy, unsigned int keys_purge_after)
Definition: policy.c:1423
unsigned int policy_zone_soa_ttl(const policy_t *policy)
Definition: policy.c:1013
policy_list_t * policy_list_new_get(const db_connection_t *connection)
Definition: policy.c:3079
unsigned int policy_denial_salt_last_change(const policy_t *policy)
Definition: policy.c:957
unsigned int policy_zone_soa_minimum(const policy_t *policy)
Definition: policy.c:1021
const char * policy_denial_salt(const policy_t *policy)
Definition: policy.c:949
unsigned int policy_signatures_refresh(const policy_t *policy)
Definition: policy.c:837
unsigned int policy_denial_ttl(const policy_t *policy)
Definition: policy.c:909
unsigned int policy_signatures_max_zone_ttl(const policy_t *policy)
Definition: policy.c:885
int policy_get_by_name(policy_t *policy, const char *name)
Definition: policy.c:2040
int policy_set_parent_soa_ttl(policy_t *policy, unsigned int parent_soa_ttl)
Definition: policy.c:1510
const char * policy_name(const policy_t *policy)
Definition: policy.c:813
int policy_set_denial_resalt(policy_t *policy, unsigned int denial_resalt)
Definition: policy.c:1299
unsigned int policy_keys_shared(const policy_t *policy)
Definition: policy.c:989
int policy_create(policy_t *policy)
Definition: policy.c:1561
int policy_set_denial_salt_last_change(policy_t *policy, unsigned int denial_salt_last_change)
Definition: policy.c:1373
int policy_set_denial_algorithm(policy_t *policy, unsigned int denial_algorithm)
Definition: policy.c:1309
int policy_set_parent_registration_delay(policy_t *policy, unsigned int parent_registration_delay)
Definition: policy.c:1480
int policy_set_zone_soa_serial_text(policy_t *policy, const char *zone_soa_serial)
Definition: policy.c:1463
const db_value_t * policy_id(const policy_t *policy)
Definition: policy.c:805
unsigned int policy_signatures_jitter(const policy_t *policy)
Definition: policy.c:845
policy_list_t * policy_list_new(const db_connection_t *connection)
Definition: policy.c:2621
int policy_list_object_store(policy_list_t *policy_list)
Definition: policy.c:2654
unsigned int policy_parent_registration_delay(const policy_t *policy)
Definition: policy.c:1045
int policy_set_denial_salt(policy_t *policy, const char *denial_salt_text)
Definition: policy.c:1351
int policy_list_get_by_clauses(policy_list_t *policy_list, const db_clause_list_t *clause_list)
Definition: policy.c:3096
int policy_set_parent_propagation_delay(policy_t *policy, unsigned int parent_propagation_delay)
Definition: policy.c:1490
int policy_set_denial_optout(policy_t *policy, unsigned int denial_optout)
Definition: policy.c:1279
policy_t * policy_list_get_next(policy_list_t *policy_list)
Definition: policy.c:3280
unsigned int policy_signatures_inception_offset(const policy_t *policy)
Definition: policy.c:853
int policy_set_signatures_max_zone_ttl(policy_t *policy, unsigned int signatures_max_zone_ttl)
Definition: policy.c:1256
int policy_set_signatures_jitter(policy_t *policy, unsigned int signatures_jitter)
Definition: policy.c:1206
int policy_set_description(policy_t *policy, const char *description_text)
Definition: policy.c:1164
int policy_set_keys_shared(policy_t *policy, unsigned int keys_shared)
Definition: policy.c:1413
unsigned int policy_parent_soa_ttl(const policy_t *policy)
Definition: policy.c:1069
int policy_get_by_id(policy_t *policy, const db_value_t *id)
Definition: policy.c:1987
int policy_list_get(policy_list_t *policy_list)
Definition: policy.c:3040
int policy_set_denial_salt_length(policy_t *policy, unsigned int denial_salt_length)
Definition: policy.c:1337
const char * policy_zone_soa_serial_text(const policy_t *policy)
Definition: policy.c:1029
int policy_set_signatures_validity_default(policy_t *policy, unsigned int signatures_validity_default)
Definition: policy.c:1226
int policy_delete(policy_t *policy)
Definition: policy.c:2571
unsigned int policy_denial_algorithm(const policy_t *policy)
Definition: policy.c:925
unsigned int policy_signatures_validity_default(const policy_t *policy)
Definition: policy.c:861
int policy_set_signatures_refresh(policy_t *policy, unsigned int signatures_refresh)
Definition: policy.c:1196
void policy_free(policy_t *policy)
Definition: policy.c:518
int policy_set_keys_ttl(policy_t *policy, unsigned int keys_ttl)
Definition: policy.c:1383
const char * policy_description(const policy_t *policy)
Definition: policy.c:821
int policy_set_signatures_validity_denial(policy_t *policy, unsigned int signatures_validity_denial)
Definition: policy.c:1236
unsigned int policy_denial_resalt(const policy_t *policy)
Definition: policy.c:917
unsigned int policy_keys_publish_safety(const policy_t *policy)
Definition: policy.c:981
int policy_set_zone_soa_minimum(policy_t *policy, unsigned int zone_soa_minimum)
Definition: policy.c:1453
int policy_set_keys_publish_safety(policy_t *policy, unsigned int keys_publish_safety)
Definition: policy.c:1403
unsigned int policy_keys_retire_safety(const policy_t *policy)
Definition: policy.c:973
int policy_set_keys_retire_safety(policy_t *policy, unsigned int keys_retire_safety)
Definition: policy.c:1393
int policy_update(policy_t *policy)
Definition: policy.c:2110
int policy_set_zone_soa_ttl(policy_t *policy, unsigned int zone_soa_ttl)
Definition: policy.c:1443
policy_denial_type
Definition: policy.h:40
@ POLICY_DENIAL_TYPE_NSEC
Definition: policy.h:42
@ POLICY_DENIAL_TYPE_NSEC3
Definition: policy.h:43
Definition: policy.h:60
int test_policy_add_suite(void)
Definition: test_policy.c:950