diff mbox

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

Message ID 1461162118-16178-1-git-send-email-gabriel.feceoru@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Feceoru, Gabriel April 20, 2016, 2:21 p.m. UTC
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(-)

Comments

Daniel Vetter May 17, 2016, 9:59 a.m. UTC | #1
On Wed, Apr 20, 2016 at 05:21:58PM +0300, Gabriel Feceoru wrote:
> 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>

You didn't take my review into account but still just pushed this patch.
Please fix up.

Also I think we should keep gem_concurrent_blit in the normal set of
testcases.
-Daniel

> ---
>  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
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Feceoru, Gabriel May 17, 2016, 11:31 a.m. UTC | #2
On 17.05.2016 12:59, Daniel Vetter wrote:
> On Wed, Apr 20, 2016 at 05:21:58PM +0300, Gabriel Feceoru wrote:
>> 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>
>
> You didn't take my review into account but still just pushed this patch.
> Please fix up.

My apologies, I didn't ignore it but didn't read it carefully.

Regards,
Gabriel

>
> Also I think we should keep gem_concurrent_blit in the normal set of
> testcases.
> -Daniel
>
>> ---
>>   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
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
diff mbox

Patch

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 = \