From: Stefan Agner <stefan@agner.ch>
To: dri-devel@lists.freedesktop.org
Subject: [PATCH libdrm 1/2] kmstest: Use util_open()
Date: Sat, 19 Dec 2015 21:52:58 -0800 [thread overview]
Message-ID: <1450590779-30832-1-git-send-email-stefan@agner.ch> (raw)
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>
---
tests/kmstest/Makefile.am | 4 +++-
tests/kmstest/main.c | 45 +++++++++++++++++++++++++++++----------------
2 files changed, 32 insertions(+), 17 deletions(-)
diff --git a/tests/kmstest/Makefile.am b/tests/kmstest/Makefile.am
index fd21e61..100662e 100644
--- a/tests/kmstest/Makefile.am
+++ b/tests/kmstest/Makefile.am
@@ -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
diff --git a/tests/kmstest/main.c b/tests/kmstest/main.c
index 120bc0f..fe8f42e 100644
--- a/tests/kmstest/main.c
+++ b/tests/kmstest/main.c
@@ -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;
+
+ 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;
+ }
+ }
- for (i = 0, fd = -1; fd < 0 && drivers[i]; i++)
- fd = drmOpen(drivers[i], NULL);
+ fd = util_open(module, device);
CHECK_RET_RETURN(fd, "Could not open device");
ret = kms_create(fd, &kms);
--
2.6.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2015-12-20 5:52 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-20 5:52 Stefan Agner [this message]
2015-12-20 5:52 ` [PATCH libdrm 2/2] tests: add fsl-dcu-drm to modules Stefan Agner
2016-01-26 20:56 ` Emil Velikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1450590779-30832-1-git-send-email-stefan@agner.ch \
--to=stefan@agner.ch \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).