mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

We used to have a test built into the code for this internally, but now we can put that into kunit and let everyone run it, to verify the devinfo table ordering if it's changed. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Benjamin Berg <benjamin.berg@intel.com> Reviewed-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://msgid.link/20240123200528.a4a8af7c091f.I0fb09083317b331168b99b8db39656a126a5cc4d@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
|
/*
|
|
* KUnit tests for the iwlwifi device info table
|
|
*
|
|
* Copyright (C) 2023 Intel Corporation
|
|
*/
|
|
#include <kunit/test.h>
|
|
#include "iwl-drv.h"
|
|
#include "iwl-config.h"
|
|
|
|
MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING);
|
|
|
|
static void iwl_pci_print_dev_info(const char *pfx, const struct iwl_dev_info *di)
|
|
{
|
|
printk(KERN_DEBUG "%sdev=%.4x,subdev=%.4x,mac_type=%.4x,mac_step=%.4x,rf_type=%.4x,cdb=%d,jacket=%d,rf_id=%.2x,no_160=%d,cores=%.2x\n",
|
|
pfx, di->device, di->subdevice, di->mac_type, di->mac_step,
|
|
di->rf_type, di->cdb, di->jacket, di->rf_id, di->no_160,
|
|
di->cores);
|
|
}
|
|
|
|
static void devinfo_table_order(struct kunit *test)
|
|
{
|
|
int idx;
|
|
|
|
for (idx = 0; idx < iwl_dev_info_table_size; idx++) {
|
|
const struct iwl_dev_info *di = &iwl_dev_info_table[idx];
|
|
const struct iwl_dev_info *ret;
|
|
|
|
ret = iwl_pci_find_dev_info(di->device, di->subdevice,
|
|
di->mac_type, di->mac_step,
|
|
di->rf_type, di->cdb,
|
|
di->jacket, di->rf_id,
|
|
di->no_160, di->cores, di->rf_step);
|
|
if (ret != di) {
|
|
iwl_pci_print_dev_info("searched: ", di);
|
|
iwl_pci_print_dev_info("found: ", ret);
|
|
KUNIT_FAIL(test,
|
|
"unusable entry at index %d (found index %d instead)\n",
|
|
idx, (int)(ret - iwl_dev_info_table));
|
|
}
|
|
}
|
|
}
|
|
|
|
static struct kunit_case devinfo_test_cases[] = {
|
|
KUNIT_CASE(devinfo_table_order),
|
|
{}
|
|
};
|
|
|
|
static struct kunit_suite iwlwifi_devinfo = {
|
|
.name = "iwlwifi-devinfo",
|
|
.test_cases = devinfo_test_cases,
|
|
};
|
|
|
|
kunit_test_suite(iwlwifi_devinfo);
|