kmstest: Use util_open()

Use the new util_open() helper instead of open-coding the method for
finding a usable device. While at it, make the command-line interface
more consistent with that of modetest by adding the -D and -M options.

Signed-off-by: Stefan Agner <stefan@agner.ch>
v2: correctly use util_open() - swap device, module
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
main
Stefan Agner 2015-12-19 21:52:58 -08:00 committed by Emil Velikov
parent 798022b61c
commit 0caf58a6cb
2 changed files with 32 additions and 17 deletions

View File

@ -2,6 +2,7 @@ AM_CFLAGS = \
$(WARN_CFLAGS)\
-I$(top_srcdir)/include/drm \
-I$(top_srcdir)/libkms/ \
-I$(top_srcdir)/tests/ \
-I$(top_srcdir)
if HAVE_INSTALL_TESTS
@ -17,7 +18,8 @@ kmstest_SOURCES = \
kmstest_LDADD = \
$(top_builddir)/libdrm.la \
$(top_builddir)/libkms/libkms.la
$(top_builddir)/libkms/libkms.la \
$(top_builddir)/tests/util/libutil.la
run: kmstest
./kmstest

View File

@ -25,12 +25,14 @@
*
**************************************************************************/
#include <getopt.h>
#include <stdio.h>
#include <string.h>
#include "xf86drm.h"
#include "libkms.h"
#include "util/kms.h"
#define CHECK_RET_RETURN(ret, str) \
if (ret < 0) { \
printf("%s: %s (%s)\n", __func__, str, strerror(-ret)); \
@ -56,26 +58,37 @@ static int test_bo(struct kms_driver *kms)
return 0;
}
static const char *drivers[] = {
"i915",
"radeon",
"nouveau",
"vmwgfx",
"exynos",
"amdgpu",
"imx-drm",
"rockchip",
"atmel-hlcdc",
NULL
};
static void usage(const char *program)
{
fprintf(stderr, "Usage: %s [options]\n", program);
fprintf(stderr, "\n");
fprintf(stderr, " -D DEVICE open the given device\n");
fprintf(stderr, " -M MODULE open the given module\n");
}
int main(int argc, char** argv)
{
static const char optstr[] = "D:M:";
struct kms_driver *kms;
int ret, fd, i;
int c, fd, ret;
char *device = NULL;
char *module = NULL;
for (i = 0, fd = -1; fd < 0 && drivers[i]; i++)
fd = drmOpen(drivers[i], NULL);
while ((c = getopt(argc, argv, optstr)) != -1) {
switch (c) {
case 'D':
device = optarg;
break;
case 'M':
module = optarg;
break;
default:
usage(argv[0]);
return 0;
}
}
fd = util_open(device, module);
CHECK_RET_RETURN(fd, "Could not open device");
ret = kms_create(fd, &kms);