File Index
Files and directories
Sign in
FILE

utils.c

File preview with syntax highlighting.

linux-6.19.14/drivers/net/wireless/intel/iwlwifi/tests/utils.c C
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * KUnit tests for utilities
  4 *
  5 * Copyright (C) 2024-2025 Intel Corporation
  6 */
  7#include "../iwl-utils.h"
  8#include <kunit/test.h>
  9
 10MODULE_IMPORT_NS("IWLWIFI");
 11
 12static const struct average_neg_db_case {
 13	const char *desc;
 14	u8 neg_dbm[22];
 15	s8 result;
 16} average_neg_db_cases[] = {
 17	{
 18		.desc = "Smallest possible value, all filled",
 19		.neg_dbm = {
 20			128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
 21			128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
 22			128, 128
 23		},
 24		.result = -128,
 25	},
 26	{
 27		.desc = "Biggest possible value, all filled",
 28		.neg_dbm = {
 29			0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 30			0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 31			0, 0,
 32		},
 33		.result = 0,
 34	},
 35	{
 36		.desc = "Smallest possible value, partial filled",
 37		.neg_dbm = {
 38			128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
 39			0xff, 0xff, 0xff, 0xff, 0xff,
 40			0xff, 0xff, 0xff, 0xff, 0xff,
 41			0xff, 0xff,
 42		},
 43		.result = -128,
 44	},
 45	{
 46		.desc = "Biggest possible value, partial filled",
 47		.neg_dbm = {
 48			0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 49			0xff, 0xff, 0xff, 0xff, 0xff,
 50			0xff, 0xff, 0xff, 0xff, 0xff,
 51			0xff, 0xff,
 52		},
 53		.result = 0,
 54	},
 55	{
 56		.desc = "Adding -80dBm to -75dBm until it is still rounded to -79dBm",
 57		.neg_dbm = {
 58			75, 80, 80, 80, 80, 80, 80, 80, 80, 80,
 59			80, 80, 80, 80, 80, 80, 80, 0xff, 0xff, 0xff,
 60			0xff, 0xff,
 61		},
 62		.result = -79,
 63	},
 64	{
 65		.desc = "Adding -80dBm to -75dBm until it is just rounded to -80dBm",
 66		.neg_dbm = {
 67			75, 80, 80, 80, 80, 80, 80, 80, 80, 80,
 68			80, 80, 80, 80, 80, 80, 80, 80, 0xff, 0xff,
 69			0xff, 0xff,
 70		},
 71		.result = -80,
 72	},
 73};
 74
 75KUNIT_ARRAY_PARAM_DESC(average_neg_db, average_neg_db_cases, desc)
 76
 77static void test_average_neg_db(struct kunit *test)
 78{
 79	const struct average_neg_db_case *params = test->param_value;
 80	u8 reversed[ARRAY_SIZE(params->neg_dbm)];
 81	int i;
 82
 83	/* Test the values in the given order */
 84	KUNIT_ASSERT_EQ(test,
 85			iwl_average_neg_dbm(params->neg_dbm,
 86					    ARRAY_SIZE(params->neg_dbm)),
 87			params->result);
 88
 89	/* Test in reverse order */
 90	for (i = 0; i < ARRAY_SIZE(params->neg_dbm); i++)
 91		reversed[ARRAY_SIZE(params->neg_dbm) - i - 1] =
 92			params->neg_dbm[i];
 93	KUNIT_ASSERT_EQ(test,
 94			iwl_average_neg_dbm(reversed,
 95					    ARRAY_SIZE(params->neg_dbm)),
 96			params->result);
 97}
 98
 99static struct kunit_case average_db_case[] = {
100	KUNIT_CASE_PARAM(test_average_neg_db, average_neg_db_gen_params),
101	{}
102};
103
104static struct kunit_suite average_db = {
105	.name = "iwl-average-db",
106	.test_cases = average_db_case,
107};
108
109kunit_test_suite(average_db);
~/ Read-only file preview.