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 "wpa_supplicant_i.h"
13#include "blacklist.h"
14
15
16static int wpas_blacklist_module_tests(void)
17{
18	struct wpa_supplicant wpa_s;
19	int ret = -1;
20
21	os_memset(&wpa_s, 0, sizeof(wpa_s));
22
23	wpa_blacklist_clear(&wpa_s);
24
25	if (wpa_blacklist_get(NULL, NULL) != NULL ||
26	    wpa_blacklist_get(NULL, (u8 *) "123456") != NULL ||
27	    wpa_blacklist_get(&wpa_s, NULL) != NULL ||
28	    wpa_blacklist_get(&wpa_s, (u8 *) "123456") != NULL)
29		goto fail;
30
31	if (wpa_blacklist_add(NULL, NULL) == 0 ||
32	    wpa_blacklist_add(NULL, (u8 *) "123456") == 0 ||
33	    wpa_blacklist_add(&wpa_s, NULL) == 0)
34		goto fail;
35
36	if (wpa_blacklist_del(NULL, NULL) == 0 ||
37	    wpa_blacklist_del(NULL, (u8 *) "123456") == 0 ||
38	    wpa_blacklist_del(&wpa_s, NULL) == 0 ||
39	    wpa_blacklist_del(&wpa_s, (u8 *) "123456") == 0)
40		goto fail;
41
42	if (wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 ||
43	    wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 ||
44	    wpa_blacklist_add(&wpa_s, (u8 *) "222222") < 0 ||
45	    wpa_blacklist_add(&wpa_s, (u8 *) "333333") < 0 ||
46	    wpa_blacklist_add(&wpa_s, (u8 *) "444444") < 0 ||
47	    wpa_blacklist_del(&wpa_s, (u8 *) "333333") < 0 ||
48	    wpa_blacklist_del(&wpa_s, (u8 *) "xxxxxx") == 0 ||
49	    wpa_blacklist_get(&wpa_s, (u8 *) "xxxxxx") != NULL ||
50	    wpa_blacklist_get(&wpa_s, (u8 *) "111111") == NULL ||
51	    wpa_blacklist_get(&wpa_s, (u8 *) "222222") == NULL ||
52	    wpa_blacklist_get(&wpa_s, (u8 *) "444444") == NULL ||
53	    wpa_blacklist_del(&wpa_s, (u8 *) "111111") < 0 ||
54	    wpa_blacklist_del(&wpa_s, (u8 *) "222222") < 0 ||
55	    wpa_blacklist_del(&wpa_s, (u8 *) "444444") < 0 ||
56	    wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 ||
57	    wpa_blacklist_add(&wpa_s, (u8 *) "222222") < 0 ||
58	    wpa_blacklist_add(&wpa_s, (u8 *) "333333") < 0)
59		goto fail;
60
61	ret = 0;
62fail:
63	wpa_blacklist_clear(&wpa_s);
64
65	if (ret)
66		wpa_printf(MSG_ERROR, "blacklist module test failure");
67
68	return ret;
69}
70
71
72int wpas_module_tests(void)
73{
74	int ret = 0;
75
76	wpa_printf(MSG_INFO, "wpa_supplicant module tests");
77
78	if (wpas_blacklist_module_tests() < 0)
79		ret = -1;
80
81#ifdef CONFIG_WPS
82	{
83		int wps_module_tests(void);
84		if (wps_module_tests() < 0)
85			ret = -1;
86	}
87#endif /* CONFIG_WPS */
88
89	{
90		int utils_module_tests(void);
91		if (utils_module_tests() < 0)
92			ret = -1;
93	}
94
95	{
96		int common_module_tests(void);
97		if (common_module_tests() < 0)
98			ret = -1;
99	}
100
101	return ret;
102}
103