diff mbox

[i-g-t] kms_plane: Add test that suspends/resumes before getting crc

Message ID 1421675037-23086-1-git-send-email-ander.conselvan.de.oliveira@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ander Conselvan de Oliveira Jan. 19, 2015, 1:43 p.m. UTC
This adds a test that does a suspend/resume cycle between configuring
a plane and getting the crc value for the pipe. The intention is to
test if the user requested stated is restored properly, instead of
being clobbered by the state read out from the hardware.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
---
 tests/kms_plane.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Daniel Vetter Jan. 20, 2015, 9:35 a.m. UTC | #1
On Mon, Jan 19, 2015 at 03:43:57PM +0200, Ander Conselvan de Oliveira wrote:
> This adds a test that does a suspend/resume cycle between configuring
> a plane and getting the crc value for the pipe. The intention is to
> test if the user requested stated is restored properly, instead of
> being clobbered by the state read out from the hardware.
> 
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>

Applied, thanks for the patch.
-Daniel

> ---
>  tests/kms_plane.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 5aa58c4..c94eac0 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -32,6 +32,7 @@
>  #include "drmtest.h"
>  #include "igt_debugfs.h"
>  #include "igt_kms.h"
> +#include "igt_aux.h"
>  
>  typedef struct {
>  	float red;
> @@ -269,6 +270,7 @@ create_fb_for_mode__panning(data_t *data, drmModeModeInfo *mode,
>  enum {
>  	TEST_PANNING_TOP_LEFT	  = 1 << 0,
>  	TEST_PANNING_BOTTOM_RIGHT = 1 << 1,
> +	TEST_SUSPEND_RESUME	  = 1 << 2,
>  };
>  
>  static void
> @@ -309,8 +311,13 @@ test_plane_panning_with_output(data_t *data,
>  
>  	igt_display_commit(&data->display);
>  
> +	if (flags & TEST_SUSPEND_RESUME)
> +		igt_system_suspend_autoresume();
> +
>  	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
>  
> +	igt_debug_wait_for_keypress("crc");
> +
>  	if (flags & TEST_PANNING_TOP_LEFT)
>  		igt_assert(igt_crc_equal(&test.red_crc, &crc));
>  	else
> @@ -360,6 +367,11 @@ run_tests_for_pipe_plane(data_t *data, enum pipe pipe, enum igt_plane plane)
>  		test_plane_panning(data, pipe, plane,
>  				   TEST_PANNING_BOTTOM_RIGHT);
>  
> +	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-plane-%d",
> +		      kmstest_pipe_name(pipe), plane)
> +		test_plane_panning(data, pipe, plane,
> +				   TEST_PANNING_BOTTOM_RIGHT |
> +				   TEST_SUSPEND_RESUME);
>  }
>  
>  static void
> -- 
> 1.9.1
>
diff mbox

Patch

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 5aa58c4..c94eac0 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -32,6 +32,7 @@ 
 #include "drmtest.h"
 #include "igt_debugfs.h"
 #include "igt_kms.h"
+#include "igt_aux.h"
 
 typedef struct {
 	float red;
@@ -269,6 +270,7 @@  create_fb_for_mode__panning(data_t *data, drmModeModeInfo *mode,
 enum {
 	TEST_PANNING_TOP_LEFT	  = 1 << 0,
 	TEST_PANNING_BOTTOM_RIGHT = 1 << 1,
+	TEST_SUSPEND_RESUME	  = 1 << 2,
 };
 
 static void
@@ -309,8 +311,13 @@  test_plane_panning_with_output(data_t *data,
 
 	igt_display_commit(&data->display);
 
+	if (flags & TEST_SUSPEND_RESUME)
+		igt_system_suspend_autoresume();
+
 	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
 
+	igt_debug_wait_for_keypress("crc");
+
 	if (flags & TEST_PANNING_TOP_LEFT)
 		igt_assert(igt_crc_equal(&test.red_crc, &crc));
 	else
@@ -360,6 +367,11 @@  run_tests_for_pipe_plane(data_t *data, enum pipe pipe, enum igt_plane plane)
 		test_plane_panning(data, pipe, plane,
 				   TEST_PANNING_BOTTOM_RIGHT);
 
+	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-plane-%d",
+		      kmstest_pipe_name(pipe), plane)
+		test_plane_panning(data, pipe, plane,
+				   TEST_PANNING_BOTTOM_RIGHT |
+				   TEST_SUSPEND_RESUME);
 }
 
 static void