Skip to content

Commit

Permalink
drm/selftest: Refactor drm mode setting selftests
Browse files Browse the repository at this point in the history
With this patch split the kernel module specific code from actual
selftest code. This is done to allow adding more selftests as separate
file. Also added kernel module exit stub with this patch.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: alexandru-cosmin.gheorghe@arm.com
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20181016204609.1555-1-drawat@vmware.com
  • Loading branch information
Deepak Rawat authored and Daniel Vetter committed Oct 17, 2018
1 parent a378050 commit 9205329
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 22 deletions.
4 changes: 3 additions & 1 deletion drivers/gpu/drm/selftests/Makefile
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
obj-$(CONFIG_DRM_DEBUG_SELFTEST) += test-drm_mm.o test-drm-helper.o
test-drm_modeset-y := test-drm_modeset_common.o test-drm_plane_helper.o

obj-$(CONFIG_DRM_DEBUG_SELFTEST) += test-drm_mm.o test-drm_modeset.o
23 changes: 23 additions & 0 deletions drivers/gpu/drm/selftests/test-drm_modeset_common.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Common file for modeset selftests.
*/

#include <linux/module.h>

#include "test-drm_modeset_common.h"

static int __init test_drm_modeset_init(void)
{
return test_drm_plane_helper();
}

static void __exit test_drm_modeset_exit(void)
{
}

module_init(test_drm_modeset_init);
module_exit(test_drm_modeset_exit);

MODULE_AUTHOR("Intel Corporation");
MODULE_LICENSE("GPL");
18 changes: 18 additions & 0 deletions drivers/gpu/drm/selftests/test-drm_modeset_common.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef __TEST_DRM_MODESET_COMMON_H__
#define __TEST_DRM_MODESET_COMMON_H__

#define FAIL(test, msg, ...) \
do { \
if (test) { \
pr_err("%s/%u: " msg, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
return -EINVAL; \
} \
} while (0)

#define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n")

int test_drm_plane_helper(void);

#endif
Original file line number Diff line number Diff line change
@@ -1,27 +1,18 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Test cases for the drm_kms_helper functions
* Test cases for the drm_plane_helper functions
*/

#define pr_fmt(fmt) "drm_kms_helper: " fmt

#include <linux/module.h>
#define pr_fmt(fmt) "drm_plane_helper: " fmt

#include <drm/drm_atomic_helper.h>
#include <drm/drm_plane_helper.h>
#include <drm/drm_modes.h>

#define TESTS "drm_helper_selftests.h"
#include "drm_selftest.h"

#define FAIL(test, msg, ...) \
do { \
if (test) { \
pr_err("%s/%u: " msg, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
return -EINVAL; \
} \
} while (0)
#include "test-drm_modeset_common.h"

#define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n")
#define TESTS "drm_plane_helper_selftests.h"
#include "drm_selftest.h"

static void set_src(struct drm_plane_state *plane_state,
unsigned src_x, unsigned src_y,
Expand Down Expand Up @@ -232,16 +223,14 @@ static int igt_check_plane_state(void *ignored)

#include "drm_selftest.c"

static int __init test_drm_helper_init(void)
/**
* test_drm_plane_helper - Run drm plane helper selftests.
*/
int test_drm_plane_helper(void)
{
int err;

err = run_selftests(selftests, ARRAY_SIZE(selftests), NULL);

return err > 0 ? 0 : err;
}

module_init(test_drm_helper_init);

MODULE_AUTHOR("Intel Corporation");
MODULE_LICENSE("GPL");

0 comments on commit 9205329

Please sign in to comment.