17f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt/* 27f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt * wpa_supplicant module tests 37f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt * Copyright (c) 2014, Jouni Malinen <j@w1.fi> 47f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt * 57f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 67f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt * See README for more details. 77f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt */ 87f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 97f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt#include "utils/includes.h" 107f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 117f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt#include "utils/common.h" 12f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt#include "wpa_supplicant_i.h" 13f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt#include "blacklist.h" 14f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 15f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 16f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidtstatic int wpas_blacklist_module_tests(void) 17f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt{ 18f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt struct wpa_supplicant wpa_s; 19f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt int ret = -1; 20f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 21f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt os_memset(&wpa_s, 0, sizeof(wpa_s)); 22f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 23f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_clear(&wpa_s); 24f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 25f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (wpa_blacklist_get(NULL, NULL) != NULL || 26f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(NULL, (u8 *) "123456") != NULL || 27f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, NULL) != NULL || 28f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, (u8 *) "123456") != NULL) 29f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt goto fail; 30f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 31f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (wpa_blacklist_add(NULL, NULL) == 0 || 32f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(NULL, (u8 *) "123456") == 0 || 33f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, NULL) == 0) 34f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt goto fail; 35f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 36f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (wpa_blacklist_del(NULL, NULL) == 0 || 37f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(NULL, (u8 *) "123456") == 0 || 38f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, NULL) == 0 || 39f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "123456") == 0) 40f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt goto fail; 41f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 42f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 || 43f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 || 44f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "222222") < 0 || 45f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "333333") < 0 || 46f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "444444") < 0 || 47f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "333333") < 0 || 48f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "xxxxxx") == 0 || 49f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, (u8 *) "xxxxxx") != NULL || 50f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, (u8 *) "111111") == NULL || 51f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, (u8 *) "222222") == NULL || 52f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_get(&wpa_s, (u8 *) "444444") == NULL || 53f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "111111") < 0 || 54f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "222222") < 0 || 55f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_del(&wpa_s, (u8 *) "444444") < 0 || 56f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "111111") < 0 || 57f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "222222") < 0 || 58f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_add(&wpa_s, (u8 *) "333333") < 0) 59f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt goto fail; 60f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 61f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt ret = 0; 62f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidtfail: 63f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_blacklist_clear(&wpa_s); 64f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 65f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (ret) 66f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt wpa_printf(MSG_ERROR, "blacklist module test failure"); 67f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 68f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt return ret; 69f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt} 70f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 717f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 727f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidtint wpas_module_tests(void) 737f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt{ 747f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt int ret = 0; 757f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 767f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt wpa_printf(MSG_INFO, "wpa_supplicant module tests"); 777f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 78f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt if (wpas_blacklist_module_tests() < 0) 79f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt ret = -1; 80f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt 817f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt#ifdef CONFIG_WPS 827f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt { 837f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt int wps_module_tests(void); 847f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt if (wps_module_tests() < 0) 857f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt ret = -1; 867f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt } 877f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt#endif /* CONFIG_WPS */ 887f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt 8976cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt { 9076cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt int utils_module_tests(void); 9176cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt if (utils_module_tests() < 0) 9276cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt ret = -1; 9376cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt } 9476cd2cc44b62e858f1897ce58f4ce7d0174e8839Dmitry Shmidt 95717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt { 96717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt int common_module_tests(void); 97717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt if (common_module_tests() < 0) 98717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt ret = -1; 99717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt } 100717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt 1017f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt return ret; 1027f93d6fa14a343127754c33a03cf2f641b6ff6e4Dmitry Shmidt} 103