]> Git Repo - linux.git/blob - drivers/net/wireless/intel/iwlwifi/mvm/tests/scan.c
Linux 6.14-rc3
[linux.git] / drivers / net / wireless / intel / iwlwifi / mvm / tests / scan.c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * KUnit tests for channel helper functions
4  *
5  * Copyright (C) 2024 Intel Corporation
6  */
7 #include <net/mac80211.h>
8 #include "../mvm.h"
9 #include <kunit/test.h>
10
11 MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");
12
13 static const struct acs_average_db_case {
14         const char *desc;
15         u8 neg_dbm[22];
16         s8 result;
17 } acs_average_db_cases[] = {
18         {
19                 .desc = "Smallest possible value, all filled",
20                 .neg_dbm = {
21                         128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
22                         128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
23                         128, 128
24                 },
25                 .result = -128,
26         },
27         {
28                 .desc = "Biggest possible value, all filled",
29                 .neg_dbm = {
30                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32                         0, 0,
33                 },
34                 .result = 0,
35         },
36         {
37                 .desc = "Smallest possible value, partial filled",
38                 .neg_dbm = {
39                         128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
40                         0xff, 0xff, 0xff, 0xff, 0xff,
41                         0xff, 0xff, 0xff, 0xff, 0xff,
42                         0xff, 0xff,
43                 },
44                 .result = -128,
45         },
46         {
47                 .desc = "Biggest possible value, partial filled",
48                 .neg_dbm = {
49                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50                         0xff, 0xff, 0xff, 0xff, 0xff,
51                         0xff, 0xff, 0xff, 0xff, 0xff,
52                         0xff, 0xff,
53                 },
54                 .result = 0,
55         },
56         {
57                 .desc = "Adding -80dBm to -75dBm until it is still rounded to -79dBm",
58                 .neg_dbm = {
59                         75, 80, 80, 80, 80, 80, 80, 80, 80, 80,
60                         80, 80, 80, 80, 80, 80, 80, 0xff, 0xff, 0xff,
61                         0xff, 0xff,
62                 },
63                 .result = -79,
64         },
65         {
66                 .desc = "Adding -80dBm to -75dBm until it is just rounded to -80dBm",
67                 .neg_dbm = {
68                         75, 80, 80, 80, 80, 80, 80, 80, 80, 80,
69                         80, 80, 80, 80, 80, 80, 80, 80, 0xff, 0xff,
70                         0xff, 0xff,
71                 },
72                 .result = -80,
73         },
74 };
75
76 KUNIT_ARRAY_PARAM_DESC(acs_average_db, acs_average_db_cases, desc)
77
78 static void test_acs_average_db(struct kunit *test)
79 {
80         const struct acs_average_db_case *params = test->param_value;
81         struct iwl_umac_scan_channel_survey_notif notif;
82         int i;
83
84         /* Test the values in the given order */
85         for (i = 0; i < ARRAY_SIZE(params->neg_dbm); i++)
86                 notif.noise[i] = params->neg_dbm[i];
87         KUNIT_ASSERT_EQ(test,
88                         iwl_mvm_average_dbm_values(&notif),
89                         params->result);
90
91         /* Test in reverse order */
92         for (i = 0; i < ARRAY_SIZE(params->neg_dbm); i++)
93                 notif.noise[ARRAY_SIZE(params->neg_dbm) - i - 1] =
94                         params->neg_dbm[i];
95         KUNIT_ASSERT_EQ(test,
96                         iwl_mvm_average_dbm_values(&notif),
97                         params->result);
98 }
99
100 static struct kunit_case acs_average_db_case[] = {
101         KUNIT_CASE_PARAM(test_acs_average_db, acs_average_db_gen_params),
102         {}
103 };
104
105 static struct kunit_suite acs_average_db = {
106         .name = "iwlmvm-acs-average-db",
107         .test_cases = acs_average_db_case,
108 };
109
110 kunit_test_suite(acs_average_db);
This page took 0.034654 seconds and 4 git commands to generate.