mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-25 17:59:25 +01:00
unit: add test for band fallback
This test uses the same country/country3 values seen by an AP vendor which causes issues with IWD. The alpha2 is ES (Spain) and the 3rd byte is 4, indicating to use the E-4. The issue then comes when the neighbor report claims the BSS is under operating class 3 which is not part of E-4. With the fallback implemented, this test will pass since it will try and lookup only on ES (the EU table) which operating class 3 is part of.
This commit is contained in:
parent
70d1d71612
commit
fdbbd8b383
@ -670,6 +670,19 @@ static void test_conversions(const void *data)
|
|||||||
assert(!band_channel_to_freq(192, BAND_FREQ_5_GHZ));
|
assert(!band_channel_to_freq(192, BAND_FREQ_5_GHZ));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_conversion_fallback(const void *data)
|
||||||
|
{
|
||||||
|
enum band_freq band;
|
||||||
|
const uint8_t cc[] = {'E', 'S', 0x04};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Without a fallback, this would fail. There is no operclass 3 in the
|
||||||
|
* global operating table (E-4)
|
||||||
|
*/
|
||||||
|
band = band_oper_class_to_band(cc, 3);
|
||||||
|
assert(band == BAND_FREQ_5_GHZ);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
l_test_init(&argc, &argv);
|
l_test_init(&argc, &argv);
|
||||||
@ -736,6 +749,7 @@ int main(int argc, char *argv[])
|
|||||||
l_test_add("/band/6ghz/freq", test_6ghz_freqs, NULL);
|
l_test_add("/band/6ghz/freq", test_6ghz_freqs, NULL);
|
||||||
|
|
||||||
l_test_add("/band/conversions", test_conversions, NULL);
|
l_test_add("/band/conversions", test_conversions, NULL);
|
||||||
|
l_test_add("/band/conversion fallback", test_conversion_fallback, NULL);
|
||||||
|
|
||||||
return l_test_run();
|
return l_test_run();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user