[Intel-gfx] [PATCH i-g-t v2] tests/kms_plane_multiple: Fix reference CRC

Mika Kahola mika.kahola at intel.com
Thu Aug 3 07:26:37 UTC 2017


On Thu, 2017-08-03 at 10:11 +0300, Lofstedt, Marta wrote:
> Before merge, please add:
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101907
> 
> Reviewed-by: Marta Lofstedt <marta.lofstedt at intel.com>
> 
OK. I'll update the commit message.

Cheers,
Mika

> > 
> > -----Original Message-----
> > From: Kahola, Mika
> > Sent: Thursday, August 3, 2017 9:54 AM
> > To: intel-gfx at lists.freedesktop.org
> > Cc: daniel at ffwll.ch; Latvala, Petri <petri.latvala at intel.com>;
> > Lofstedt, Marta
> > <marta.lofstedt at intel.com>
> > Subject: [PATCH i-g-t v2] tests/kms_plane_multiple: Fix reference
> > CRC
> > 
> > kms_plane_multiple wrongly expected that igt lib function would
> > modify the
> > passed igt_crc_t* object. You should use igt_crc_t** instead. This
> > patch fixes
> > this anomaly in the test.
> > 
> > While at it, remove unnecesary struct for test data as we only need
> > reference CRC here.
> > 
> > The problem was caught by CI system and at least affects on HSW
> > platform.
> > 
> > V2: Don't change function that collects CRC for reference CRC
> >     Fix CRC pointers
> >     Remove unnecessary struct for holding test data
> > 
> > Signed-off-by: Mika Kahola <mika.kahola at intel.com>
> > ---
> >  tests/kms_plane_multiple.c | 25 +++++++++----------------
> >  1 file changed, 9 insertions(+), 16 deletions(-)
> > 
> > diff --git a/tests/kms_plane_multiple.c
> > b/tests/kms_plane_multiple.c index
> > f6c6223..4bc26b7 100644
> > --- a/tests/kms_plane_multiple.c
> > +++ b/tests/kms_plane_multiple.c
> > @@ -51,11 +51,6 @@ typedef struct {
> >  	struct igt_fb *fb;
> >  } data_t;
> > 
> > -typedef struct {
> > -	data_t *data;
> > -	igt_crc_t reference_crc;
> > -} test_position_t;
> > -
> >  /* Command line parameters. */
> >  struct {
> >  	int iterations;
> > @@ -106,7 +101,7 @@ static void test_fini(data_t *data,
> > igt_output_t
> > *output, int n_planes)
> > 
> >  static void
> >  test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> > bool
> > atomic,
> > -	      color_t *color, uint64_t tiling, igt_crc_t *crc /*
> > out */)
> > +	      color_t *color, uint64_t tiling, igt_crc_t **crc /*
> > out */)
> >  {
> >  	drmModeModeInfo *mode;
> >  	igt_plane_t *primary;
> > @@ -132,7 +127,7 @@ test_grab_crc(data_t *data, igt_output_t
> > *output,
> > enum pipe pipe, bool atomic,
> >  	igt_skip_on(ret != 0);
> > 
> >  	igt_pipe_crc_start(data->pipe_crc);
> > -	n = igt_pipe_crc_get_crcs(data->pipe_crc, 1, &crc);
> > +	n = igt_pipe_crc_get_crcs(data->pipe_crc, 1, crc);
> >  	igt_assert_eq(n, 1);
> >  }
> > 
> > @@ -251,8 +246,8 @@ test_atomic_plane_position_with_output(data_t
> > *data, enum pipe pipe,  {
> >  	char buf[256];
> >  	struct drm_event *e = (void *)buf;
> > -	test_position_t test = { .data = data };
> >  	color_t blue  = { 0.0f, 0.0f, 1.0f };
> > +	igt_crc_t *ref = NULL;
> >  	igt_crc_t *crc = NULL;
> >  	unsigned int vblank_start, vblank_stop;
> >  	int i, n, ret;
> > @@ -275,8 +270,7 @@ test_atomic_plane_position_with_output(data_t
> > *data, enum pipe pipe,
> > 
> >  	test_init(data, pipe, n_planes);
> > 
> > -	test_grab_crc(data, output, pipe, true, &blue, tiling,
> > -		      &test.reference_crc);
> > +	test_grab_crc(data, output, pipe, true, &blue, tiling,
> > &ref);
> > 
> >  	i = 0;
> >  	while (i < iterations || loop_forever) { @@ -303,7 +297,7
> > @@
> > test_atomic_plane_position_with_output(data_t *data, enum pipe
> > pipe,
> >  		igt_assert(vblank_stop - vblank_start <=
> > MAX_CRCS);
> >  		igt_assert_eq(n, vblank_stop - vblank_start);
> > 
> > -		igt_assert_crc_equal(&test.reference_crc, crc);
> > +		igt_assert_crc_equal(ref, crc);
> > 
> >  		i++;
> >  	}
> > @@ -318,9 +312,9 @@ test_legacy_plane_position_with_output(data_t
> > *data, enum pipe pipe,
> >  				       igt_output_t
> > *output, int n_planes,
> >  				       uint64_t tiling)
> >  {
> > -	test_position_t test = { .data = data };
> >  	color_t blue  = { 0.0f, 0.0f, 1.0f };
> > -	igt_crc_t *crc;
> > +	igt_crc_t *ref = NULL;
> > +	igt_crc_t *crc = NULL;
> >  	int i, n;
> >  	int iterations = opt.iterations < 1 ? 1 : opt.iterations;
> >  	bool loop_forever;
> > @@ -341,8 +335,7 @@ test_legacy_plane_position_with_output(data_t
> > *data, enum pipe pipe,
> > 
> >  	test_init(data, pipe, n_planes);
> > 
> > -	test_grab_crc(data, output, pipe, false, &blue, tiling,
> > -		      &test.reference_crc);
> > +	test_grab_crc(data, output, pipe, false, &blue, tiling,
> > &ref);
> > 
> >  	i = 0;
> >  	while (i < iterations || loop_forever) { @@ -354,7 +347,7
> > @@
> > test_legacy_plane_position_with_output(data_t *data, enum pipe
> > pipe,
> > 
> >  		igt_assert_eq(n, MAX_CRCS);
> > 
> > -		igt_assert_crc_equal(&test.reference_crc, crc);
> > +		igt_assert_crc_equal(ref, crc);
> > 
> >  		i++;
> >  	}
> > --
> > 2.7.4


More information about the Intel-gfx mailing list