mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-14 06:35:12 +00:00
drm/tests: Split drm_test_dp_mst_calc_pbn_mode into parameterized tests
The drm_test_dp_mst_calc_pbn_mode is based on a loop that executes tests for a couple of test cases. This could be better represented by parameterized tests, provided by KUnit. So, convert the drm_test_dp_mst_calc_pbn_mode into parameterized tests. Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com> Signed-off-by: Maíra Canal <mairacanal@riseup.net> Link: https://patchwork.freedesktop.org/patch/msgid/20221001223422.857505-1-mcanal@igalia.com
This commit is contained in:
parent
202fb33be3
commit
d32f7960fb
1 changed files with 52 additions and 23 deletions
|
@ -16,33 +16,62 @@
|
|||
|
||||
#include "../display/drm_dp_mst_topology_internal.h"
|
||||
|
||||
struct drm_dp_mst_calc_pbn_mode_test {
|
||||
const int clock;
|
||||
const int bpp;
|
||||
const bool dsc;
|
||||
const int expected;
|
||||
};
|
||||
|
||||
static const struct drm_dp_mst_calc_pbn_mode_test drm_dp_mst_calc_pbn_mode_cases[] = {
|
||||
{
|
||||
.clock = 154000,
|
||||
.bpp = 30,
|
||||
.dsc = false,
|
||||
.expected = 689
|
||||
},
|
||||
{
|
||||
.clock = 234000,
|
||||
.bpp = 30,
|
||||
.dsc = false,
|
||||
.expected = 1047
|
||||
},
|
||||
{
|
||||
.clock = 297000,
|
||||
.bpp = 24,
|
||||
.dsc = false,
|
||||
.expected = 1063
|
||||
},
|
||||
{
|
||||
.clock = 332880,
|
||||
.bpp = 24,
|
||||
.dsc = true,
|
||||
.expected = 50
|
||||
},
|
||||
{
|
||||
.clock = 324540,
|
||||
.bpp = 24,
|
||||
.dsc = true,
|
||||
.expected = 49
|
||||
},
|
||||
};
|
||||
|
||||
static void drm_test_dp_mst_calc_pbn_mode(struct kunit *test)
|
||||
{
|
||||
int pbn, i;
|
||||
const struct {
|
||||
int rate;
|
||||
int bpp;
|
||||
int expected;
|
||||
bool dsc;
|
||||
} test_params[] = {
|
||||
{ 154000, 30, 689, false },
|
||||
{ 234000, 30, 1047, false },
|
||||
{ 297000, 24, 1063, false },
|
||||
{ 332880, 24, 50, true },
|
||||
{ 324540, 24, 49, true },
|
||||
};
|
||||
const struct drm_dp_mst_calc_pbn_mode_test *params = test->param_value;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(test_params); i++) {
|
||||
pbn = drm_dp_calc_pbn_mode(test_params[i].rate,
|
||||
test_params[i].bpp,
|
||||
test_params[i].dsc);
|
||||
KUNIT_EXPECT_EQ_MSG(test, pbn, test_params[i].expected,
|
||||
"Expected PBN %d for clock %d bpp %d, got %d\n",
|
||||
test_params[i].expected, test_params[i].rate,
|
||||
test_params[i].bpp, pbn);
|
||||
}
|
||||
KUNIT_EXPECT_EQ(test, drm_dp_calc_pbn_mode(params->clock, params->bpp, params->dsc),
|
||||
params->expected);
|
||||
}
|
||||
|
||||
static void dp_mst_calc_pbn_mode_desc(const struct drm_dp_mst_calc_pbn_mode_test *t, char *desc)
|
||||
{
|
||||
sprintf(desc, "Clock %d BPP %d DSC %s", t->clock, t->bpp, t->dsc ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
KUNIT_ARRAY_PARAM(drm_dp_mst_calc_pbn_mode, drm_dp_mst_calc_pbn_mode_cases,
|
||||
dp_mst_calc_pbn_mode_desc);
|
||||
|
||||
static bool
|
||||
sideband_msg_req_equal(const struct drm_dp_sideband_msg_req_body *in,
|
||||
const struct drm_dp_sideband_msg_req_body *out)
|
||||
|
@ -271,7 +300,7 @@ static void drm_test_dp_mst_sideband_msg_req_decode(struct kunit *test)
|
|||
}
|
||||
|
||||
static struct kunit_case drm_dp_mst_helper_tests[] = {
|
||||
KUNIT_CASE(drm_test_dp_mst_calc_pbn_mode),
|
||||
KUNIT_CASE_PARAM(drm_test_dp_mst_calc_pbn_mode, drm_dp_mst_calc_pbn_mode_gen_params),
|
||||
KUNIT_CASE(drm_test_dp_mst_sideband_msg_req_decode),
|
||||
{ }
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue