1 /*
2 * wpa_supplicant module tests
3 * Copyright (c) 2014, Jouni Malinen <j@w1.fi>
4 *
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
7 */
8
9 #include "utils/includes.h"
10
11 #include "utils/common.h"
12 #include "utils/module_tests.h"
13 #include "wpa_supplicant_i.h"
14 #include "bssid_ignore.h"
15
16
wpas_bssid_ignore_module_tests(void)17 static int wpas_bssid_ignore_module_tests(void)
18 {
19 struct wpa_supplicant wpa_s;
20 struct wpa_global global;
21 int ret = -1;
22
23 os_memset(&wpa_s, 0, sizeof(wpa_s));
24 os_memset(&global, 0, sizeof(global));
25 wpa_s.global = &global;
26
27 wpa_bssid_ignore_clear(&wpa_s);
28
29 if (wpa_bssid_ignore_get(NULL, NULL) != NULL ||
30 wpa_bssid_ignore_get(NULL, (u8 *) "123456") != NULL ||
31 wpa_bssid_ignore_get(&wpa_s, NULL) != NULL ||
32 wpa_bssid_ignore_get(&wpa_s, (u8 *) "123456") != NULL)
33 goto fail;
34
35 if (wpa_bssid_ignore_add(NULL, NULL) == 0 ||
36 wpa_bssid_ignore_add(NULL, (u8 *) "123456") == 0 ||
37 wpa_bssid_ignore_add(&wpa_s, NULL) == 0)
38 goto fail;
39
40 if (wpa_bssid_ignore_del(NULL, NULL) == 0 ||
41 wpa_bssid_ignore_del(NULL, (u8 *) "123456") == 0 ||
42 wpa_bssid_ignore_del(&wpa_s, NULL) == 0 ||
43 wpa_bssid_ignore_del(&wpa_s, (u8 *) "123456") == 0)
44 goto fail;
45
46 if (wpa_bssid_ignore_add(&wpa_s, (u8 *) "111111") < 0 ||
47 wpa_bssid_ignore_add(&wpa_s, (u8 *) "111111") < 0 ||
48 wpa_bssid_ignore_add(&wpa_s, (u8 *) "222222") < 0 ||
49 wpa_bssid_ignore_add(&wpa_s, (u8 *) "333333") < 0 ||
50 wpa_bssid_ignore_add(&wpa_s, (u8 *) "444444") < 0 ||
51 wpa_bssid_ignore_del(&wpa_s, (u8 *) "333333") < 0 ||
52 wpa_bssid_ignore_del(&wpa_s, (u8 *) "xxxxxx") == 0 ||
53 wpa_bssid_ignore_get(&wpa_s, (u8 *) "xxxxxx") != NULL ||
54 wpa_bssid_ignore_get(&wpa_s, (u8 *) "111111") == NULL ||
55 wpa_bssid_ignore_get(&wpa_s, (u8 *) "222222") == NULL ||
56 wpa_bssid_ignore_get(&wpa_s, (u8 *) "444444") == NULL ||
57 wpa_bssid_ignore_del(&wpa_s, (u8 *) "111111") < 0 ||
58 wpa_bssid_ignore_del(&wpa_s, (u8 *) "222222") < 0 ||
59 wpa_bssid_ignore_del(&wpa_s, (u8 *) "444444") < 0 ||
60 wpa_bssid_ignore_add(&wpa_s, (u8 *) "111111") < 0 ||
61 wpa_bssid_ignore_add(&wpa_s, (u8 *) "222222") < 0 ||
62 wpa_bssid_ignore_add(&wpa_s, (u8 *) "333333") < 0)
63 goto fail;
64
65 wpa_bssid_ignore_clear(&wpa_s);
66
67 if (wpa_bssid_ignore_add(&wpa_s, (u8 *) "111111") < 0 ||
68 wpa_bssid_ignore_add(&wpa_s, (u8 *) "222222") < 0 ||
69 wpa_bssid_ignore_add(&wpa_s, (u8 *) "333333") < 0 ||
70 wpa_bssid_ignore_add(&wpa_s, (u8 *) "444444") < 0 ||
71 !wpa_bssid_ignore_is_listed(&wpa_s, (u8 *) "111111") ||
72 wpa_bssid_ignore_del(&wpa_s, (u8 *) "111111") < 0 ||
73 wpa_bssid_ignore_is_listed(&wpa_s, (u8 *) "111111") ||
74 wpa_bssid_ignore_add(&wpa_s, (u8 *) "111111") < 0)
75 goto fail;
76
77 wpa_bssid_ignore_update(&wpa_s);
78
79 if (!wpa_bssid_ignore_is_listed(&wpa_s, (u8 *) "111111"))
80 goto fail;
81
82 ret = 0;
83 fail:
84 wpa_bssid_ignore_clear(&wpa_s);
85
86 if (ret)
87 wpa_printf(MSG_ERROR, "bssid_ignore module test failure");
88
89 return ret;
90 }
91
92
wpas_module_tests(void)93 int wpas_module_tests(void)
94 {
95 int ret = 0;
96
97 wpa_printf(MSG_INFO, "wpa_supplicant module tests");
98
99 if (wpas_bssid_ignore_module_tests() < 0)
100 ret = -1;
101
102 #ifdef CONFIG_WPS
103 if (wps_module_tests() < 0)
104 ret = -1;
105 #endif /* CONFIG_WPS */
106
107 if (utils_module_tests() < 0)
108 ret = -1;
109
110 if (common_module_tests() < 0)
111 ret = -1;
112
113 if (crypto_module_tests() < 0)
114 ret = -1;
115
116 return ret;
117 }
118