1717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt/*
2717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt * common module tests
3a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt * Copyright (c) 2014-2015, Jouni Malinen <j@w1.fi>
4717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt *
5717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt * This software may be distributed under the terms of the BSD license.
6717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt * See README for more details.
7717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt */
8717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
9717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt#include "utils/includes.h"
10717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
11717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt#include "utils/common.h"
12717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt#include "ieee802_11_common.h"
13a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt#include "ieee802_11_defs.h"
14a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt#include "gas.h"
15717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt#include "wpa_common.h"
16717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
17717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
18717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstruct ieee802_11_parse_test_data {
19717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	u8 *data;
20717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	size_t len;
21717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	ParseRes result;
22717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	int count;
23717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt};
24717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
25717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstatic const struct ieee802_11_parse_test_data parse_tests[] = {
26717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "", 0, ParseOK, 0 },
27717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) " ", 1, ParseFailed, 0 },
28717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xff\x00", 2, ParseUnknown, 1 },
29717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xff\x01", 2, ParseFailed, 0 },
30717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x03\x01\x02\x03", 5, ParseUnknown, 1 },
31717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x01\x02\x03\x04", 6, ParseUnknown, 1 },
32717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x00\x50\xf2\x02", 6, ParseUnknown, 1 },
33717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x05\x00\x50\xf2\x02\x02", 7, ParseOK, 1 },
34717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x05\x00\x50\xf2\x02\xff", 7, ParseUnknown, 1 },
35717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x00\x50\xf2\xff", 6, ParseUnknown, 1 },
36717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x50\x6f\x9a\xff", 6, ParseUnknown, 1 },
37717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x00\x90\x4c\x33", 6, ParseOK, 1 },
38717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xdd\x04\x00\x90\x4c\xff\xdd\x04\x00\x90\x4c\x33", 12,
39717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  ParseUnknown, 2 },
40717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x10\x01\x00\x21\x00", 5, ParseOK, 2 },
41717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x24\x00", 2, ParseOK, 1 },
42717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x38\x00", 2, ParseOK, 1 },
43717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x54\x00", 2, ParseOK, 1 },
44717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x5a\x00", 2, ParseOK, 1 },
45717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x65\x00", 2, ParseOK, 1 },
46717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x65\x12\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11",
47717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  20, ParseOK, 1 },
48717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x6e\x00", 2, ParseOK, 1 },
49717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xc7\x00", 2, ParseOK, 1 },
50717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\xc7\x01\x00", 3, ParseOK, 1 },
51a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	{ (u8 *) "\x03\x00\x2a\x00\x36\x00\x37\x00\x38\x00\x2d\x00\x3d\x00\xbf\x00\xc0\x00",
52a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	  18, ParseOK, 9 },
53a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	{ (u8 *) "\x8b\x00", 2, ParseOK, 1 },
54a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	{ (u8 *) "\xdd\x04\x00\x90\x4c\x04", 6, ParseUnknown, 1 },
55717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ NULL, 0, ParseOK, 0 }
56717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt};
57717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
58717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstatic int ieee802_11_parse_tests(void)
59717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt{
60717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	int i, ret = 0;
61717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
62717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	wpa_printf(MSG_INFO, "ieee802_11_parse tests");
63717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
64717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	for (i = 0; parse_tests[i].data; i++) {
65717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		const struct ieee802_11_parse_test_data *test;
66717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		struct ieee802_11_elems elems;
67717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		ParseRes res;
68717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
69717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		test = &parse_tests[i];
70717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		res = ieee802_11_parse_elems(test->data, test->len, &elems, 1);
71717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		if (res != test->result ||
72717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		    ieee802_11_ie_count(test->data, test->len) != test->count) {
73717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt			wpa_printf(MSG_ERROR, "ieee802_11_parse test %d failed",
74717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt				   i);
75717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt			ret = -1;
76717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		}
77717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	}
78717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
79717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	if (ieee802_11_vendor_ie_concat((const u8 *) "\x00\x01", 2, 0) != NULL)
80717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{
81717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		wpa_printf(MSG_ERROR,
82717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt			   "ieee802_11_vendor_ie_concat test failed");
83717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		ret = -1;
84717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	}
85717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
86717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	return ret;
87717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt}
88717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
89717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
90717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstruct rsn_ie_parse_test_data {
91717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	u8 *data;
92717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	size_t len;
93717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	int result;
94717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt};
95717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
96717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstatic const struct rsn_ie_parse_test_data rsn_parse_tests[] = {
97717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "", 0, -1 },
98717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x00", 2, -1 },
99717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x02\x01\x00", 4, 0 },
100717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x02\x00\x00", 4, -2 },
101717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x02\x02\x00", 4, -2 },
102717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x02\x00\x01", 4, -2 },
103717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x02\x00\x00\x00", 5, -2 },
104717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x03\x01\x00\x00", 5, -3 },
105717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x06\x01\x00\x00\x00\x00\x00", 8, -1 },
106717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x06\x01\x00\x00\x0f\xac\x04", 8, 0 },
107717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x07\x01\x00\x00\x0f\xac\x04\x00", 9, -5 },
108717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x08\x01\x00\x00\x0f\xac\x04\x00\x00", 10, -4 },
109717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x08\x01\x00\x00\x0f\xac\x04\x00\x01", 10, -4 },
110717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0c\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04",
111717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  14, 0 },
112717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0c\x01\x00\x00\x0f\xac\x04\x00\x01\x00\x0f\xac\x04",
113717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  14, -4 },
114717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0c\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x06",
115717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  14, -1 },
116717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x10\x01\x00\x00\x0f\xac\x04\x02\x00\x00\x0f\xac\x04\x00\x0f\xac\x08",
117717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  18, 0 },
118717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0d\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x00",
119717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  15, -7 },
120717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0e\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x00\x00",
121717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  16, -6 },
122717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x0e\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x00\x01",
123717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  16, -6 },
124717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x12\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01",
125717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  20, 0 },
126717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x16\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x02\x00\x00\x0f\xac\x01\x00\x0f\xac\x02",
127717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  24, 0 },
128717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x13\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00",
129717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  21, 0 },
130717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x14\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00",
131717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  22, 0 },
132717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x16\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00\x00\x00",
133717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  24, 0 },
134717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x16\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00\x00\x01",
135717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  24, -9 },
136717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x1a\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00\x00\x00\x00\x00\x00\x00",
137717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  28, -10 },
138717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x1a\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00\x00\x00\x00\x0f\xac\x06",
139717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  28, 0 },
140717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ (u8 *) "\x30\x1c\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00\x00\x00\x00\x0f\xac\x06\x01\x02",
141717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	  30, 0 },
142717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	{ NULL, 0, 0 }
143717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt};
144717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
145717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtstatic int rsn_ie_parse_tests(void)
146717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt{
147717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	int i, ret = 0;
148717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
149717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	wpa_printf(MSG_INFO, "rsn_ie_parse tests");
150717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
151717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	for (i = 0; rsn_parse_tests[i].data; i++) {
152717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		const struct rsn_ie_parse_test_data *test;
153717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		struct wpa_ie_data data;
154717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
155717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		test = &rsn_parse_tests[i];
156717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		if (wpa_parse_wpa_ie_rsn(test->data, test->len, &data) !=
157717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		    test->result) {
158717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt			wpa_printf(MSG_ERROR, "rsn_ie_parse test %d failed", i);
159717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt			ret = -1;
160717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		}
161717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	}
162717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
163717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	return ret;
164717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt}
165717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
166717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
167a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidtstatic int gas_tests(void)
168a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt{
169a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	struct wpabuf *buf;
170a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
171a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpa_printf(MSG_INFO, "gas tests");
172a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	gas_anqp_set_len(NULL);
173a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
174a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	buf = wpabuf_alloc(1);
175a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	if (buf == NULL)
176a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt		return -1;
177a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	gas_anqp_set_len(buf);
178a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_free(buf);
179a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
180a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	buf = wpabuf_alloc(20);
181a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	if (buf == NULL)
182a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt		return -1;
183a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_put_u8(buf, WLAN_ACTION_PUBLIC);
184a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_put_u8(buf, WLAN_PA_GAS_INITIAL_REQ);
185a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_put_u8(buf, 0);
186a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_put_be32(buf, 0);
187a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_put_u8(buf, 0);
188a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	gas_anqp_set_len(buf);
189a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	wpabuf_free(buf);
190a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
191a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	return 0;
192a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt}
193a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
194a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt
195717574375e969e8272c6d1a26137286eac158abbDmitry Shmidtint common_module_tests(void)
196717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt{
197717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	int ret = 0;
198717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
199717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	wpa_printf(MSG_INFO, "common module tests");
200717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
201717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	if (ieee802_11_parse_tests() < 0 ||
202a3dc30964aa24aea2b518246f6812663a1103490Dmitry Shmidt	    gas_tests() < 0 ||
203717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	    rsn_ie_parse_tests() < 0)
204717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt		ret = -1;
205717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt
206717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt	return ret;
207717574375e969e8272c6d1a26137286eac158abbDmitry Shmidt}
208