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:
James Prestwood 2024-05-14 07:19:23 -07:00 committed by Denis Kenzior
parent 70d1d71612
commit fdbbd8b383
1 changed files with 14 additions and 0 deletions

View File

@ -670,6 +670,19 @@ static void test_conversions(const void *data)
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[])
{
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/conversions", test_conversions, NULL);
l_test_add("/band/conversion fallback", test_conversion_fallback, NULL);
return l_test_run();
}