xref: /linux/drivers/net/wireless/intel/iwlwifi/mvm/tests/hcmd.c (revision 1b98f357dadd6ea613a435fbaef1a5dd7b35fd21)
1*0b897fbdSJohannes Berg // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2*0b897fbdSJohannes Berg /*
3*0b897fbdSJohannes Berg  * KUnit tests for channel helper functions
4*0b897fbdSJohannes Berg  *
5*0b897fbdSJohannes Berg  * Copyright (C) 2025 Intel Corporation
6*0b897fbdSJohannes Berg  */
7*0b897fbdSJohannes Berg #include <kunit/test.h>
8*0b897fbdSJohannes Berg 
9*0b897fbdSJohannes Berg #include <iwl-trans.h>
10*0b897fbdSJohannes Berg #include "../mvm.h"
11*0b897fbdSJohannes Berg 
12*0b897fbdSJohannes Berg MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");
13*0b897fbdSJohannes Berg 
14*0b897fbdSJohannes Berg static void test_hcmd_names_sorted(struct kunit *test)
15*0b897fbdSJohannes Berg {
16*0b897fbdSJohannes Berg 	for (int i = 0; i < iwl_mvm_groups_size; i++) {
17*0b897fbdSJohannes Berg 		const struct iwl_hcmd_arr *arr = &iwl_mvm_groups[i];
18*0b897fbdSJohannes Berg 
19*0b897fbdSJohannes Berg 		if (!arr->arr)
20*0b897fbdSJohannes Berg 			continue;
21*0b897fbdSJohannes Berg 
22*0b897fbdSJohannes Berg 		for (int j = 0; j < arr->size - 1; j++)
23*0b897fbdSJohannes Berg 			KUNIT_EXPECT_LE(test, arr->arr[j].cmd_id,
24*0b897fbdSJohannes Berg 					arr->arr[j + 1].cmd_id);
25*0b897fbdSJohannes Berg 	}
26*0b897fbdSJohannes Berg }
27*0b897fbdSJohannes Berg 
28*0b897fbdSJohannes Berg static struct kunit_case hcmd_names_cases[] = {
29*0b897fbdSJohannes Berg 	KUNIT_CASE(test_hcmd_names_sorted),
30*0b897fbdSJohannes Berg 	{},
31*0b897fbdSJohannes Berg };
32*0b897fbdSJohannes Berg 
33*0b897fbdSJohannes Berg static struct kunit_suite hcmd_names = {
34*0b897fbdSJohannes Berg 	.name = "iwlmvm-hcmd-names",
35*0b897fbdSJohannes Berg 	.test_cases = hcmd_names_cases,
36*0b897fbdSJohannes Berg };
37*0b897fbdSJohannes Berg 
38*0b897fbdSJohannes Berg kunit_test_suite(hcmd_names);
39