]> git.ipfire.org Git - thirdparty/strongswan.git/blame - src/charon-tkm/tests/kernel_sad_tests.c
Update copyright headers after acquisition by secunet
[thirdparty/strongswan.git] / src / charon-tkm / tests / kernel_sad_tests.c
CommitLineData
1e13904f 1/*
f5fc592a 2 * Copyright (C) 2012-2014 Reto Buerki
1e13904f 3 * Copyright (C) 2012 Adrian-Ken Rueegsegger
19ef2aec
TB
4 *
5 * Copyright (C) secunet Security Networks AG
1e13904f
AKR
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * for more details.
16 */
17
d6032bff 18#include <tests/test_suite.h>
1e13904f
AKR
19
20#include "tkm_kernel_sad.h"
21
22START_TEST(test_sad_creation)
23{
24 tkm_kernel_sad_t *sad = NULL;
25
26 sad = tkm_kernel_sad_create();
27 fail_if(!sad, "Error creating tkm kernel SAD");
28
29 sad->destroy(sad);
30}
31END_TEST
32
33START_TEST(test_insert)
34{
35 host_t *addr = host_create_from_string("127.0.0.1", 1024);
36 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
37
38b65d71 38 fail_unless(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
1e13904f
AKR
39 "Error inserting SAD entry");
40
41 sad->destroy(sad);
42 addr->destroy(addr);
43}
44END_TEST
45
46START_TEST(test_insert_duplicate)
47{
48 host_t *addr = host_create_from_string("127.0.0.1", 1024);
49 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
50
38b65d71 51 fail_unless(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
1e13904f 52 "Error inserting SAD entry");
38b65d71 53 fail_if(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
1e13904f
AKR
54 "Expected error inserting duplicate entry");
55
56 sad->destroy(sad);
57 addr->destroy(addr);
58}
59END_TEST
60
61START_TEST(test_get_esa_id)
62{
63 host_t *addr = host_create_from_string("127.0.0.1", 1024);
64 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
38b65d71 65 fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
1e13904f 66 "Error inserting SAD entry");
77295777
TB
67 fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 23,
68 "Error getting esa id");
69 sad->destroy(sad);
70 addr->destroy(addr);
71}
72END_TEST
73
74START_TEST(test_get_esa_id_local)
75{
76 host_t *addr = host_create_from_string("127.0.0.1", 1024);
77 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
78 fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
79 "Error inserting SAD entry");
80 fail_unless(sad->get_esa_id(sad, addr, addr, 27, 50, TRUE) == 23,
1e13904f
AKR
81 "Error getting esa id");
82 sad->destroy(sad);
83 addr->destroy(addr);
84}
85END_TEST
86
87START_TEST(test_get_esa_id_nonexistent)
88{
89 host_t *addr = host_create_from_string("127.0.0.1", 1024);
90 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
77295777 91 fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 0,
1e13904f
AKR
92 "Got esa id for nonexistent SAD entry");
93 sad->destroy(sad);
94 addr->destroy(addr);
95}
96END_TEST
97
e12ff07c
RB
98START_TEST(test_get_dst_host)
99{
100 host_t *addr = host_create_from_string("127.0.0.1", 1024);
101 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
38b65d71 102 fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
e12ff07c
RB
103 "Error inserting SAD entry");
104
105 host_t *dst = sad->get_dst_host(sad, 54, 42, 50);
106 fail_unless(addr->equals(addr, dst), "Error getting dst host");
107 sad->destroy(sad);
108 addr->destroy(addr);
109}
110END_TEST
111
112START_TEST(test_get_dst_host_nonexistent)
113{
114 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
115 fail_unless(sad->get_dst_host(sad, 1, 12, 50) == NULL,
116 "Got dst for nonexistent SAD entry");
117 sad->destroy(sad);
118}
119END_TEST
120
1e13904f
AKR
121START_TEST(test_remove)
122{
123 host_t *addr = host_create_from_string("127.0.0.1", 1024);
124 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
38b65d71 125 fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
1e13904f 126 "Error inserting SAD entry");
c15dbfaf 127 fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 23,
1e13904f
AKR
128 "Error getting esa id");
129 fail_unless(sad->remove(sad, 23),
130 "Error removing SAD entry");
c15dbfaf 131 fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 0,
1e13904f
AKR
132 "Got esa id for removed SAD entry");
133 sad->destroy(sad);
134 addr->destroy(addr);
135}
136END_TEST
137
138START_TEST(test_remove_nonexistent)
139{
140 tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
141 fail_if(sad->remove(sad, 1),
142 "Expected error removing nonexistent SAD entry");
143 sad->destroy(sad);
144}
145END_TEST
146
d6032bff 147Suite *make_kernel_sad_tests()
1e13904f 148{
d6032bff
TB
149 Suite *s;
150 TCase *tc;
151
152 s = suite_create("kernel SAD tests");
153
154 tc = tcase_create("creation");
1e13904f 155 tcase_add_test(tc, test_sad_creation);
d6032bff
TB
156 suite_add_tcase(s, tc);
157
158 tc = tcase_create("insert");
1e13904f
AKR
159 tcase_add_test(tc, test_insert);
160 tcase_add_test(tc, test_insert_duplicate);
d6032bff
TB
161 suite_add_tcase(s, tc);
162
163 tc = tcase_create("get_esa_id");
1e13904f 164 tcase_add_test(tc, test_get_esa_id);
77295777 165 tcase_add_test(tc, test_get_esa_id_local);
1e13904f 166 tcase_add_test(tc, test_get_esa_id_nonexistent);
d6032bff
TB
167 suite_add_tcase(s, tc);
168
e12ff07c
RB
169 tc = tcase_create("get_dst_host");
170 tcase_add_test(tc, test_get_dst_host);
171 tcase_add_test(tc, test_get_dst_host_nonexistent);
172 suite_add_tcase(s, tc);
173
d6032bff 174 tc = tcase_create("remove");
1e13904f
AKR
175 tcase_add_test(tc, test_remove);
176 tcase_add_test(tc, test_remove_nonexistent);
d6032bff 177 suite_add_tcase(s, tc);
1e13904f 178
d6032bff 179 return s;
1e13904f 180}