From d81de65533dad020aec271883f8c9429980a2b04 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 24 Oct 2024 11:43:38 -0700 Subject: [PATCH] unit: add test with list of known unsupported frequencies These frequencies were seen being advertised by a driver and IWD has no operating class/channel mapping for them. Specifically 5960 was causing issues due to a few bugs and mapping to channel 2 of the 6ghz band. Those bugs have now been resolved. If these frequencies can be supported in a clean manor we can remove this test, but until then ensure IWD does not parse them. --- unit/test-band.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/unit/test-band.c b/unit/test-band.c index 606bb854..edf1e02e 100644 --- a/unit/test-band.c +++ b/unit/test-band.c @@ -683,6 +683,26 @@ static void test_conversion_fallback(const void *data) assert(band == BAND_FREQ_5_GHZ); } +static void test_unsupported_freqs(const void *data) +{ + /* + * These are frequencies that were seen advertised by some drivers + * but that don't match any global operating classes IWD has. They may + * be valid, but IWD should not parse them correctly without added + * support in band.c. + */ + uint32_t unsupported[] = { + 5920, 5940, 5960, 5980, 6000, 6020, 6040, 6060, 6080, + }; + unsigned int i; + + for (i = 0; i < L_ARRAY_SIZE(unsupported); i++) { + uint8_t channel = band_freq_to_channel(unsupported[i], NULL); + + assert(!channel); + } +} + int main(int argc, char *argv[]) { l_test_init(&argc, &argv); @@ -750,6 +770,7 @@ int main(int argc, char *argv[]) l_test_add("/band/conversions", test_conversions, NULL); l_test_add("/band/conversion fallback", test_conversion_fallback, NULL); + l_test_add("/band/unsupported freqs", test_unsupported_freqs, NULL); return l_test_run(); }