From: Arthur Grillo <arthur.grillo@xxxxxx> Refactor the tests by modularizing the functions to avoid code repetition. Co-developed-by: Maíra Canal <maira.canal@xxxxxx> Signed-off-by: Arthur Grillo <arthur.grillo@xxxxxx> Signed-off-by: Maíra Canal <maira.canal@xxxxxx> --- .../drm/selftests/test-drm_cmdline_parser.c | 579 +++++------------- 1 file changed, 156 insertions(+), 423 deletions(-) diff --git a/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c b/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c index d96cd890def6..57a229c5fc35 100644 --- a/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c +++ b/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2019 Bootlin + * Copyright (c) 2021 Ma� Canal <maira.canal@xxxxxx>, + * Copyright (c) 2021 Arthur Grillo <arthur.grillo@xxxxxx> */ #define pr_fmt(fmt) "drm_cmdline: " fmt @@ -17,13 +19,25 @@ static const struct drm_connector no_connector = {}; -static int drm_cmdline_test_force_e_only(void *ignored) +static int drm_cmdline_test_properties(void *ignored, + struct drm_cmdline_mode *mode, enum drm_connector_force force) +{ + FAIL_ON(mode->rb); + FAIL_ON(mode->cvt); + FAIL_ON(mode->interlace); + FAIL_ON(mode->margins); + FAIL_ON(mode->force != force); + + return 0; +} + +static int drm_cmdline_test_force_only(void *ignored, char *cmdline, + const struct drm_connector *connector, enum drm_connector_force force) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("e", - &no_connector, - &mode)); + FAIL_ON(!drm_mode_parse_command_line_for_connector(cmdline, + connector, &mode)); FAIL_ON(mode.specified); FAIL_ON(mode.refresh_specified); FAIL_ON(mode.bpp_specified); @@ -32,95 +46,101 @@ static int drm_cmdline_test_force_e_only(void *ignored) FAIL_ON(mode.cvt); FAIL_ON(mode.interlace); FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + FAIL_ON(mode.force != force); return 0; } -static int drm_cmdline_test_force_D_only_not_digital(void *ignored) +static int drm_cmdline_test_freestanding(void *ignored, + struct drm_cmdline_mode *mode, char *cmdline, + const struct drm_connector *connector) { - struct drm_cmdline_mode mode = { }; + FAIL_ON(!drm_mode_parse_command_line_for_connector(cmdline, + connector, mode)); + FAIL_ON(mode->specified); + FAIL_ON(mode->refresh_specified); + FAIL_ON(mode->bpp_specified); - FAIL_ON(!drm_mode_parse_command_line_for_connector("D", - &no_connector, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); + FAIL_ON(mode->tv_margins.right != 14); + FAIL_ON(mode->tv_margins.left != 24); + FAIL_ON(mode->tv_margins.bottom != 36); + FAIL_ON(mode->tv_margins.top != 42); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + return 0; +} + +static int drm_cmdline_test_res_init(void *ignored, + struct drm_cmdline_mode *mode, char *cmdline) +{ + FAIL_ON(!drm_mode_parse_command_line_for_connector(cmdline, + &no_connector, mode)); + FAIL_ON(!mode->specified); + FAIL_ON(mode->xres != 720); + FAIL_ON(mode->yres != 480); + + return 0; +} + +static int drm_cmdline_test_res_bpp_init(void *ignored, + struct drm_cmdline_mode *mode, char *cmdline) +{ + FAIL_ON(!drm_mode_parse_command_line_for_connector(cmdline, + &no_connector, mode)); + FAIL_ON(!mode->specified); + FAIL_ON(mode->xres != 720); + FAIL_ON(mode->yres != 480); + + FAIL_ON(!mode->refresh_specified); + FAIL_ON(mode->refresh != 60); + FAIL_ON(!mode->bpp_specified); + FAIL_ON(mode->bpp != 24); + + return 0; +} + +static int drm_cmdline_test_force_e_only(void *ignored) +{ + drm_cmdline_test_force_only(ignored, "e", &no_connector, DRM_FORCE_ON); + + return 0; +} + +static int drm_cmdline_test_force_D_only_not_digital(void *ignored) +{ + drm_cmdline_test_force_only(ignored, "D", &no_connector, DRM_FORCE_ON); return 0; } static const struct drm_connector connector_hdmi = { .connector_type = DRM_MODE_CONNECTOR_HDMIB, + }; static int drm_cmdline_test_force_D_only_hdmi(void *ignored) { - struct drm_cmdline_mode mode = { }; - - FAIL_ON(!drm_mode_parse_command_line_for_connector("D", - &connector_hdmi, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON_DIGITAL); + drm_cmdline_test_force_only(ignored, "D", &connector_hdmi, + DRM_FORCE_ON_DIGITAL); return 0; } static const struct drm_connector connector_dvi = { .connector_type = DRM_MODE_CONNECTOR_DVII, + }; static int drm_cmdline_test_force_D_only_dvi(void *ignored) { - struct drm_cmdline_mode mode = { }; - - FAIL_ON(!drm_mode_parse_command_line_for_connector("D", - &connector_dvi, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON_DIGITAL); + drm_cmdline_test_force_only(ignored, "D", &connector_dvi, + DRM_FORCE_ON_DIGITAL); return 0; } static int drm_cmdline_test_force_d_only(void *ignored) { - struct drm_cmdline_mode mode = { }; - - FAIL_ON(!drm_mode_parse_command_line_for_connector("d", - &no_connector, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_OFF); + drm_cmdline_test_force_only(ignored, "d", &no_connector, DRM_FORCE_OFF); return 0; } @@ -151,15 +171,9 @@ static int drm_cmdline_test_res(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(mode.rb); @@ -219,15 +233,9 @@ static int drm_cmdline_test_res_vesa(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480M", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480M"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(mode.rb); @@ -243,15 +251,9 @@ static int drm_cmdline_test_res_vesa_rblank(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480MR", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480MR"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(!mode.rb); @@ -267,15 +269,9 @@ static int drm_cmdline_test_res_rblank(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480R", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480R"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(!mode.rb); @@ -291,23 +287,13 @@ static int drm_cmdline_test_res_bpp(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480-24"); FAIL_ON(mode.refresh_specified); - FAIL_ON(!mode.bpp_specified); FAIL_ON(mode.bpp != 24); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -327,23 +313,13 @@ static int drm_cmdline_test_res_refresh(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480@60", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480@60"); FAIL_ON(!mode.refresh_specified); FAIL_ON(mode.refresh != 60); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -363,24 +339,8 @@ static int drm_cmdline_test_res_bpp_refresh(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60"); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -389,18 +349,7 @@ static int drm_cmdline_test_res_bpp_refresh_interlaced(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60i", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60i"); FAIL_ON(mode.rb); FAIL_ON(mode.cvt); @@ -415,18 +364,7 @@ static int drm_cmdline_test_res_bpp_refresh_margins(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60m", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60m"); FAIL_ON(mode.rb); FAIL_ON(mode.cvt); @@ -441,24 +379,8 @@ static int drm_cmdline_test_res_bpp_refresh_force_off(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60d", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_OFF); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60d"); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_OFF); return 0; } @@ -478,24 +400,8 @@ static int drm_cmdline_test_res_bpp_refresh_force_on(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60e", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60e"); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON); return 0; } @@ -504,24 +410,8 @@ static int drm_cmdline_test_res_bpp_refresh_force_on_analog(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60D", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60D"); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON); return 0; } @@ -534,8 +424,7 @@ static int drm_cmdline_test_res_bpp_refresh_force_on_digital(void *ignored) }; FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60D", - &connector, - &mode)); + &connector, &mode)); FAIL_ON(!mode.specified); FAIL_ON(mode.xres != 720); FAIL_ON(mode.yres != 480); @@ -546,11 +435,7 @@ static int drm_cmdline_test_res_bpp_refresh_force_on_digital(void *ignored) FAIL_ON(!mode.bpp_specified); FAIL_ON(mode.bpp != 24); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON_DIGITAL); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON_DIGITAL); return 0; } @@ -559,18 +444,7 @@ static int drm_cmdline_test_res_bpp_refresh_interlaced_margins_force_on(void *ig { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24@60ime", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - - FAIL_ON(!mode.refresh_specified); - FAIL_ON(mode.refresh != 60); - - FAIL_ON(!mode.bpp_specified); - FAIL_ON(mode.bpp != 24); + drm_cmdline_test_res_bpp_init(ignored, &mode, "720x480-24@60ime"); FAIL_ON(mode.rb); FAIL_ON(mode.cvt); @@ -585,15 +459,9 @@ static int drm_cmdline_test_res_margins_force_on(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480me", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480me"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(mode.rb); @@ -609,15 +477,9 @@ static int drm_cmdline_test_res_vesa_margins(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480Mm", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, "720x480Mm"); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); FAIL_ON(mode.rb); @@ -673,10 +535,9 @@ static int drm_cmdline_test_name_bpp(void *ignored) &no_connector, &mode)); FAIL_ON(strcmp(mode.name, "NTSC")); - FAIL_ON(mode.refresh_specified); - FAIL_ON(!mode.bpp_specified); + FAIL_ON(mode.bpp != 24); return 0; @@ -760,23 +621,13 @@ static int drm_cmdline_test_rotate_0(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,rotate=0", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_0); + drm_cmdline_test_res_init(ignored, &mode, "720x480,rotate=0"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_0); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -785,23 +636,13 @@ static int drm_cmdline_test_rotate_90(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,rotate=90", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_90); + drm_cmdline_test_res_init(ignored, &mode, "720x480,rotate=90"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_90); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -810,23 +651,13 @@ static int drm_cmdline_test_rotate_180(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,rotate=180", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); + drm_cmdline_test_res_init(ignored, &mode, "720x480,rotate=180"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -835,23 +666,13 @@ static int drm_cmdline_test_rotate_270(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,rotate=270", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_270); + drm_cmdline_test_res_init(ignored, &mode, "720x480,rotate=270"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_270); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -860,9 +681,8 @@ static int drm_cmdline_test_rotate_multiple(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,rotate=0,rotate=90", - &no_connector, - &mode)); + FAIL_ON(drm_mode_parse_command_line_for_connector( + "720x480,rotate=0,rotate=90", &no_connector, &mode)); return 0; } @@ -871,9 +691,8 @@ static int drm_cmdline_test_rotate_invalid_val(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,rotate=42", - &no_connector, - &mode)); + FAIL_ON(drm_mode_parse_command_line_for_connector( + "720x480,rotate=42", &no_connector, &mode)); return 0; } @@ -882,9 +701,8 @@ static int drm_cmdline_test_rotate_truncated(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,rotate=", - &no_connector, - &mode)); + FAIL_ON(drm_mode_parse_command_line_for_connector( + "720x480,rotate=", &no_connector, &mode)); return 0; } @@ -893,23 +711,13 @@ static int drm_cmdline_test_hmirror(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,reflect_x", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_X)); + drm_cmdline_test_res_init(ignored, &mode, "720x480,reflect_x"); + FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_X)); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -918,23 +726,13 @@ static int drm_cmdline_test_vmirror(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,reflect_y", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_Y)); + drm_cmdline_test_res_init(ignored, &mode, "720x480,reflect_y"); + FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_Y)); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -943,26 +741,18 @@ static int drm_cmdline_test_margin_options(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,margin_right=14,margin_left=24,margin_bottom=36,margin_top=42", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); + drm_cmdline_test_res_init(ignored, &mode, + "720x480,margin_right=14,margin_left=24,margin_bottom=36,margin_top=42"); + FAIL_ON(mode.tv_margins.right != 14); FAIL_ON(mode.tv_margins.left != 24); FAIL_ON(mode.tv_margins.bottom != 36); FAIL_ON(mode.tv_margins.top != 42); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -971,23 +761,13 @@ static int drm_cmdline_test_multiple_options(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480,rotate=270,reflect_x", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X)); + drm_cmdline_test_res_init(ignored, &mode, "720x480,rotate=270,reflect_x"); + FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X)); FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -996,9 +776,8 @@ static int drm_cmdline_test_invalid_option(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,test=42", - &no_connector, - &mode)); + FAIL_ON(drm_mode_parse_command_line_for_connector( + "720x480,test=42", &no_connector, &mode)); return 0; } @@ -1007,24 +786,14 @@ static int drm_cmdline_test_bpp_extra_and_option(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480-24e,rotate=180", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); + drm_cmdline_test_res_init(ignored, &mode, "720x480-24e,rotate=180"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); FAIL_ON(mode.refresh_specified); - FAIL_ON(!mode.bpp_specified); FAIL_ON(mode.bpp != 24); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON); return 0; } @@ -1033,22 +802,13 @@ static int drm_cmdline_test_extra_and_option(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("720x480e,rotate=180", - &no_connector, - &mode)); - FAIL_ON(!mode.specified); - FAIL_ON(mode.xres != 720); - FAIL_ON(mode.yres != 480); - FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); + drm_cmdline_test_res_init(ignored, &mode, "720x480e,rotate=180"); + FAIL_ON(mode.rotation_reflection != DRM_MODE_ROTATE_180); FAIL_ON(mode.refresh_specified); FAIL_ON(mode.bpp_specified); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON); return 0; } @@ -1057,23 +817,11 @@ static int drm_cmdline_test_freestanding_options(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("margin_right=14,margin_left=24,margin_bottom=36,margin_top=42", - &no_connector, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); + drm_cmdline_test_freestanding(ignored, &mode, + "margin_right=14,margin_left=24,margin_bottom=36,margin_top=42", + &no_connector); - FAIL_ON(mode.tv_margins.right != 14); - FAIL_ON(mode.tv_margins.left != 24); - FAIL_ON(mode.tv_margins.bottom != 36); - FAIL_ON(mode.tv_margins.top != 42); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } @@ -1082,23 +830,11 @@ static int drm_cmdline_test_freestanding_force_e_and_options(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("e,margin_right=14,margin_left=24,margin_bottom=36,margin_top=42", - &no_connector, - &mode)); - FAIL_ON(mode.specified); - FAIL_ON(mode.refresh_specified); - FAIL_ON(mode.bpp_specified); + drm_cmdline_test_freestanding(ignored, &mode, + "e,margin_right=14,margin_left=24,margin_bottom=36,margin_top=42", + &no_connector); - FAIL_ON(mode.tv_margins.right != 14); - FAIL_ON(mode.tv_margins.left != 24); - FAIL_ON(mode.tv_margins.bottom != 36); - FAIL_ON(mode.tv_margins.top != 42); - - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_ON); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_ON); return 0; } @@ -1107,20 +843,17 @@ static int drm_cmdline_test_panel_orientation(void *ignored) { struct drm_cmdline_mode mode = { }; - FAIL_ON(!drm_mode_parse_command_line_for_connector("panel_orientation=upside_down", - &no_connector, - &mode)); + FAIL_ON(!drm_mode_parse_command_line_for_connector( + "panel_orientation=upside_down", &no_connector, &mode)); + FAIL_ON(mode.specified); FAIL_ON(mode.refresh_specified); FAIL_ON(mode.bpp_specified); + FAIL_ON(mode.panel_orientation != DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP); - FAIL_ON(mode.rb); - FAIL_ON(mode.cvt); - FAIL_ON(mode.interlace); - FAIL_ON(mode.margins); - FAIL_ON(mode.force != DRM_FORCE_UNSPECIFIED); + drm_cmdline_test_properties(ignored, &mode, DRM_FORCE_UNSPECIFIED); return 0; } -- 2.36.1