summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-12-06 20:35:29 -0800
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-12-10 09:23:40 +0100
commit8c33e9ad111d27b84db4daac43809a807f262632 (patch)
treeaebc15d2b202be3beba15be9a56c29c2c7657e97
parentea8c086919041d152b957773b0071e0cfafd3f78 (diff)
intel-gpu-tools: Version information
Provide two arguments version, and verbose, which allow printing from an arbitrary igt test. It will show system information (from build time, not runtime), as well as the git SHA being used. This will help reduce errors when people try to reproduce problems. As an example if I want to verify someone is running the correct version of a test, I could ask them to do: bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --verbose gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux) Time to exec x 1: 35.000µs (ring=render) Time to exec x 2: 28.000µs (ring=render) Time to exec x 4: 20.000µs (ring=render) Time to exec x 8: 14.625µs (ring=render) Time to exec x 16: 11.188µs (ring=render) Time to exec x 32: 11.125µs (ring=render) Time to exec x 64: 10.328µs (ring=render) Time to exec x 128: 10.172µs (ring=render) Time to exec x 256: 10.234µs (ring=render) Time to exec x 512: 10.232µs (ring=render) Time to exec x 1024: 10.121µs (ring=render) Time to exec x 2048: 10.151µs (ring=render) Time to exec x 4096: 11.474µs (ring=render) Time to exec x 8192: 9.432µs (ring=render) Time to exec x 16384: 6.003µs (ring=render) Time to exec x 32768: 5.029µs (ring=render) Time to exec x 65536: 4.206µs (ring=render) Time to exec x 131072: 3.630µs (ring=render) Subtest render: SUCCESS --verbose is provided for completeness, but doesn't seem too useful at the moement. bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --version gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux) I've put version.h in the root directory so that any subdir can access it. I've added the tests usage since it's immediately useful, and done easily via Daniels igt infrastructure work. v2: - Always print the version number. - We want to print uname at runtime. - Also prefix the i-g-t release version. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--Makefile.am25
-rw-r--r--lib/drmtest.c13
-rw-r--r--tests/Makefile.am1
3 files changed, 38 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index d7a479c2..431e7b41 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
# Copyright © 2005 Adam Jackson.
-# Copyright © 2009 Intel Corporation
+# Copyright © 2009,2013 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -37,6 +37,29 @@ endif
MAINTAINERCLEANFILES = ChangeLog INSTALL
+.PHONY: version.h.tmp
+version.h.tmp:
+ @touch $@
+ @if test -d .git; then \
+ if which git > /dev/null; then git log -n 1 --oneline | \
+ sed 's/^\([^ ]*\) .*/#define IGT_GIT_SHA1 "g\1"/' \
+ >> $@ ; \
+ fi \
+ else \
+ echo '#define IGT_GIT_SHA1 "NOT-GIT"' >> $@ ; \
+ fi
+
+version.h: version.h.tmp
+ @echo "updating version.h"
+ @if ! cmp -s version.h.tmp version.h; then \
+ mv version.h.tmp version.h ;\
+ else \
+ rm version.h.tmp ;\
+ fi
+
+BUILT_SOURCES = version.h
+CLEANFILES = version.h version.h.tmp
+
.PHONY: ChangeLog INSTALL
INSTALL:
diff --git a/lib/drmtest.c b/lib/drmtest.c
index f2624a10..9efe2bd1 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -51,6 +51,8 @@
#include "intel_chipset.h"
#include "intel_gpu_tools.h"
#include "igt_debugfs.h"
+#include "../version.h"
+#include "config.h"
/* This file contains a bunch of wrapper functions to directly use gem ioctls.
* Mostly useful to write kernel tests. */
@@ -798,6 +800,15 @@ static void check_igt_exit(int sig)
assert(sig != 0 || igt_exit_called);
}
+
+static void print_version(void)
+{
+ if (list_subtests)
+ return;
+
+ fprintf(stdout, "IGT-Version: %s-%s\n", PACKAGE_VERSION, IGT_GIT_SHA1);
+}
+
static void print_usage(const char *command_str, const char *help_str,
bool output_on_stderr)
{
@@ -893,6 +904,8 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
oom_adjust_for_doom();
out:
+ print_version();
+
return ret;
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b8cddd56..f4a7d415 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -24,6 +24,7 @@ AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) \
-I$(srcdir)/.. \
-I$(srcdir)/../lib \
-include "check-ndebug.h" \
+ -include "$(srcdir)/version.h" \
-DIGT_DATADIR=\""$(abs_srcdir)"\" \
$(NULL)