[PATCH i-g-t v2] tests: Separate tests with lots of subtests

Gabriel Feceoru
2016-04-20T14:22:01Z

Currently, when trying to run i-g-t tests with piglit, it takes up
to 20s until the first test is executed.
The main reason is that gem_concurrent_all has ~500k subtests,
overkilling piglit.

This patch separates gem_concurrent_* tests from the rest of the tests,
creating two files test-list.txt and test-list-full.txt.
The piglit can now enumerate the i-g-t tests within a decent few seconds.
The second list could be used when trying to execute specific these tests.

v2: Rebased

Signed-off-by: Gabriel Feceoru <gabriel.feceoru@intel.com>
---
tests/Makefile.am | 12 +++++++++---
tests/Makefile.sources | 22 ++++++++++++++++++++--
2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 771e9ee..0ed2a07 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -14,6 +14,12 @@ test-list.txt: Makefile.sources
@echo ${single_kernel_tests} ${multi_kernel_tests} >> $@
@echo END TESTLIST >> $@

+test-list-full.txt: Makefile.sources
+ @echo TESTLIST > $@
+ @echo ${single_kernel_tests} ${multi_kernel_tests} ${extra_multi_kernel_tests} >> $@
+ @echo END TESTLIST >> $@
+
+
noinst_PROGRAMS = \
$(HANG) \
$(TESTS_testsuite) \
@@ -38,14 +44,14 @@ dist_pkgdata_DATA = \

all-local: .gitignore
.gitignore: Makefile.sources
- @echo "$(pkglibexec_PROGRAMS) $(HANG) test-list.txt .gitignore" | sed 's/\s\+/\n/g' | sort > $@
+ @echo "$(pkglibexec_PROGRAMS) $(HANG) test-list.txt test-list-full.txt .gitignore" | sed 's/\s\+/\n/g' | sort > $@

-pkgdata_DATA = test-list.txt
+pkgdata_DATA = test-list.txt test-list-full.txt

EXTRA_PROGRAMS = $(HANG)
EXTRA_DIST = $(common_files)

-CLEANFILES = $(EXTRA_PROGRAMS) test-list.txt .gitignore
+CLEANFILES = $(EXTRA_PROGRAMS) test-list.txt test-list-full.txt .gitignore

AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) $(DEBUG_CFLAGS)\
-I$(srcdir)/.. \
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 41eca0d..abcf325 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -20,8 +20,6 @@ TESTS_progs_M = \
gem_busy \
gem_caching \
gem_close_race \
- gem_concurrent_blit \
- gem_concurrent_all \
gem_create \
gem_cs_tlb \
gem_ctx_bad_exec \
@@ -117,6 +115,11 @@ TESTS_progs_M = \
template \
$(NULL)

+TESTS_progs_XM = \
+ gem_concurrent_blit \
+ gem_concurrent_all \
+ $(NULL)
+
TESTS_progs = \
core_auth \
core_getclient \
@@ -219,6 +222,15 @@ multi_kernel_tests = \
$(TESTS_scripts_M) \
$(NULL)

+
+# This target contains testcases with lots of subtests.
+# It was split from multi_kernel_tests because of the overhead of listing all
+# the subtests in piglit
+extra_multi_kernel_tests = \
+ $(TESTS_progs_XM) \
+ $(NULL)
+
+
# This target is for simple testcase which don't expose any subtest.
#
# Your testcase should probably use igt_simple_main, but none of the other magic
@@ -233,6 +245,12 @@ kernel_tests = \
$(multi_kernel_tests) \
$(NULL)

+kernel_tests_full = \
+ $(single_kernel_tests) \
+ $(multi_kernel_tests) \
+ $(extra_multi_kernel_tests) \
+ $(NULL)
+
# Test that exercise specific asserts in the test framework library and are
# hence expected to fail.
XFAIL_TESTS = \
--
1.9.1