diff mbox

[16/18] tests/kms_flip: add basic tests for flip, flip vs dpms, and flip modeset

Message ID 20150814125652.GP17734@phenom.ffwll.local (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Aug. 14, 2015, 12:56 p.m. UTC
On Thu, Aug 13, 2015 at 01:31:39PM -0700, Jesse Barnes wrote:
> Simple variants that don't do multiple output or interruptible testing.
> 
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  tests/kms_flip.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index a595d9f..a0e4112 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -80,6 +80,7 @@
>  #define TEST_TS_CONT		(1 << 27)
>  #define TEST_BO_TOOBIG		(1 << 28)
>  #define TEST_HANG_ONCE		(1 << 29)
> +#define TEST_BASIC		(1 << 30)
>  
>  #define EVENT_FLIP		(1 << 0)
>  #define EVENT_VBLANK		(1 << 1)
> @@ -1649,7 +1650,7 @@ int main(int argc, char **argv)
>  					"blt-wf_vblank-vs-modeset" },
>  		{ 60,  TEST_VBLANK | TEST_MODESET | TEST_WITH_DUMMY_RCS,
>  					"rcs-wf_vblank-vs-modeset" },
> -
> +		{ 30, TEST_FLIP | TEST_BASIC, "basic-plain-flip" },

I think for better coverage we should pick the timestamp checking ones
here. Also we need one to cover vblank since kms_vblank can't be used. And
we can do that all in one testcases to save testing time!

>  		{ 30, TEST_FLIP , "plain-flip" },
>  		{ 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
>  		{ 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
> @@ -1657,12 +1658,14 @@ int main(int argc, char **argv)
>  		{ 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
>  			"plain-flip-fb-recreate" },
>  		{ 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
> +		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "basic-flip-vs-dpms" },
>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL, "flip-vs-dpms" },
>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_BCS, "blt-flip-vs-dpms" },
>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_RCS, "render-flip-vs-dpms" },
>  		{ 30,  TEST_FLIP | TEST_PAN, "flip-vs-panning" },
>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_BCS, "blt-flip-vs-panning" },
>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_RCS, "render-flip-vs-panning" },
> +		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "basic-flip-vs-modeset" },
>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL, "flip-vs-modeset" },
>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_BCS, "blt-flip-vs-modeset" },
>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_RCS, "render-flip-vs-modeset" },
> @@ -1721,6 +1724,9 @@ int main(int argc, char **argv)
>  		igt_subtest(tests[i].name)
>  			run_test(tests[i].duration, tests[i].flags);
>  
> +		if (tests[i].flags & TEST_BASIC)
> +			continue;

This means you remove the tests you marked as BASIC from the 2x and
interruptible sets. What about instead adding the basic prefix at runtime,
i.e. for all my requests:


Totally untested ;-)

Cheers, Daniel

Comments

Jesse Barnes Aug. 14, 2015, 4:07 p.m. UTC | #1
On 08/14/2015 05:56 AM, Daniel Vetter wrote:
> On Thu, Aug 13, 2015 at 01:31:39PM -0700, Jesse Barnes wrote:
>> Simple variants that don't do multiple output or interruptible testing.
>>
>> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
>> ---
>>  tests/kms_flip.c | 11 ++++++++++-
>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
>> index a595d9f..a0e4112 100644
>> --- a/tests/kms_flip.c
>> +++ b/tests/kms_flip.c
>> @@ -80,6 +80,7 @@
>>  #define TEST_TS_CONT		(1 << 27)
>>  #define TEST_BO_TOOBIG		(1 << 28)
>>  #define TEST_HANG_ONCE		(1 << 29)
>> +#define TEST_BASIC		(1 << 30)
>>  
>>  #define EVENT_FLIP		(1 << 0)
>>  #define EVENT_VBLANK		(1 << 1)
>> @@ -1649,7 +1650,7 @@ int main(int argc, char **argv)
>>  					"blt-wf_vblank-vs-modeset" },
>>  		{ 60,  TEST_VBLANK | TEST_MODESET | TEST_WITH_DUMMY_RCS,
>>  					"rcs-wf_vblank-vs-modeset" },
>> -
>> +		{ 30, TEST_FLIP | TEST_BASIC, "basic-plain-flip" },
> 
> I think for better coverage we should pick the timestamp checking ones
> here. Also we need one to cover vblank since kms_vblank can't be used. And
> we can do that all in one testcases to save testing time!
> 
>>  		{ 30, TEST_FLIP , "plain-flip" },
>>  		{ 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
>>  		{ 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
>> @@ -1657,12 +1658,14 @@ int main(int argc, char **argv)
>>  		{ 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
>>  			"plain-flip-fb-recreate" },
>>  		{ 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
>> +		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "basic-flip-vs-dpms" },
>>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL, "flip-vs-dpms" },
>>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_BCS, "blt-flip-vs-dpms" },
>>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_RCS, "render-flip-vs-dpms" },
>>  		{ 30,  TEST_FLIP | TEST_PAN, "flip-vs-panning" },
>>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_BCS, "blt-flip-vs-panning" },
>>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_RCS, "render-flip-vs-panning" },
>> +		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "basic-flip-vs-modeset" },
>>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL, "flip-vs-modeset" },
>>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_BCS, "blt-flip-vs-modeset" },
>>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_RCS, "render-flip-vs-modeset" },
>> @@ -1721,6 +1724,9 @@ int main(int argc, char **argv)
>>  		igt_subtest(tests[i].name)
>>  			run_test(tests[i].duration, tests[i].flags);
>>  
>> +		if (tests[i].flags & TEST_BASIC)
>> +			continue;
> 
> This means you remove the tests you marked as BASIC from the 2x and
> interruptible sets. What about instead adding the basic prefix at runtime,
> i.e. for all my requests:
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index a595d9f1d69f..aaf03b07df87 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -80,6 +80,7 @@
>  #define TEST_TS_CONT		(1 << 27)
>  #define TEST_BO_TOOBIG		(1 << 28)
>  #define TEST_HANG_ONCE		(1 << 29)
> +#define TEST_BASIC		(1 << 31)
>  
>  #define EVENT_FLIP		(1 << 0)
>  #define EVENT_VBLANK		(1 << 1)
> @@ -1650,20 +1651,20 @@ int main(int argc, char **argv)
>  		{ 60,  TEST_VBLANK | TEST_MODESET | TEST_WITH_DUMMY_RCS,
>  					"rcs-wf_vblank-vs-modeset" },
>  
> -		{ 30, TEST_FLIP , "plain-flip" },
> +		{ 30, TEST_FLIP, "plain-flip" },
>  		{ 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
>  		{ 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
>  		{ 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
>  		{ 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
>  			"plain-flip-fb-recreate" },
>  		{ 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
> -		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL, "flip-vs-dpms" },
> +		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_BCS, "blt-flip-vs-dpms" },
>  		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_RCS, "render-flip-vs-dpms" },
>  		{ 30,  TEST_FLIP | TEST_PAN, "flip-vs-panning" },
>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_BCS, "blt-flip-vs-panning" },
>  		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_RCS, "render-flip-vs-panning" },
> -		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL, "flip-vs-modeset" },
> +		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_BCS, "blt-flip-vs-modeset" },
>  		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_RCS, "render-flip-vs-modeset" },
>  		{ 30,  TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
> @@ -1671,7 +1672,7 @@ int main(int argc, char **argv)
>  
>  		{ 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
>  		      TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
> -		{ 30, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS,
> +		{ 30, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
>  					"flip-vs-wf_vblank" },
>  		{ 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
>  			TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
> @@ -1718,7 +1719,9 @@ int main(int argc, char **argv)
>  		test_nonblocking_read(drm_fd);
>  
>  	for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
> -		igt_subtest(tests[i].name)
> +		igt_subtest_f("%s%s",
> +			      tests[i].flags & TEST_BASIC ? "basic-" : "",
> +			      tests[i].name)
>  			run_test(tests[i].duration, tests[i].flags);
>  
>  		if (tests[i].flags & TEST_NO_2X_OUTPUT)
> 
> 
> Totally untested ;-)

Yeah looks almost right.  Fixed.

Jesse
diff mbox

Patch

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index a595d9f1d69f..aaf03b07df87 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -80,6 +80,7 @@ 
 #define TEST_TS_CONT		(1 << 27)
 #define TEST_BO_TOOBIG		(1 << 28)
 #define TEST_HANG_ONCE		(1 << 29)
+#define TEST_BASIC		(1 << 31)
 
 #define EVENT_FLIP		(1 << 0)
 #define EVENT_VBLANK		(1 << 1)
@@ -1650,20 +1651,20 @@  int main(int argc, char **argv)
 		{ 60,  TEST_VBLANK | TEST_MODESET | TEST_WITH_DUMMY_RCS,
 					"rcs-wf_vblank-vs-modeset" },
 
-		{ 30, TEST_FLIP , "plain-flip" },
+		{ 30, TEST_FLIP, "plain-flip" },
 		{ 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
 		{ 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
 		{ 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
 		{ 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
 			"plain-flip-fb-recreate" },
 		{ 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
-		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL, "flip-vs-dpms" },
+		{ 60, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
 		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_BCS, "blt-flip-vs-dpms" },
 		{ 60, TEST_FLIP | TEST_DPMS | TEST_WITH_DUMMY_RCS, "render-flip-vs-dpms" },
 		{ 30,  TEST_FLIP | TEST_PAN, "flip-vs-panning" },
 		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_BCS, "blt-flip-vs-panning" },
 		{ 60, TEST_FLIP | TEST_PAN | TEST_WITH_DUMMY_RCS, "render-flip-vs-panning" },
-		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL, "flip-vs-modeset" },
+		{ 60, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
 		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_BCS, "blt-flip-vs-modeset" },
 		{ 60, TEST_FLIP | TEST_MODESET | TEST_WITH_DUMMY_RCS, "render-flip-vs-modeset" },
 		{ 30,  TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
@@ -1671,7 +1672,7 @@  int main(int argc, char **argv)
 
 		{ 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
 		      TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
-		{ 30, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS,
+		{ 30, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
 					"flip-vs-wf_vblank" },
 		{ 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
 			TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
@@ -1718,7 +1719,9 @@  int main(int argc, char **argv)
 		test_nonblocking_read(drm_fd);
 
 	for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
-		igt_subtest(tests[i].name)
+		igt_subtest_f("%s%s",
+			      tests[i].flags & TEST_BASIC ? "basic-" : "",
+			      tests[i].name)
 			run_test(tests[i].duration, tests[i].flags);
 
 		if (tests[i].flags & TEST_NO_2X_OUTPUT)