[Intel-gfx] [PATCH 03/10] tests/gem_seqno_wrap: Replace control flow with asserts
Daniel Vetter
daniel.vetter at ffwll.ch
Wed May 14 11:53:36 CEST 2014
Only tricky bit was a bit of debug output sprinkled all over, I've
moved it all to cmp_bo.
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
tests/gem_seqno_wrap.c | 62 ++++++++++++++++++--------------------------------
1 file changed, 22 insertions(+), 40 deletions(-)
diff --git a/tests/gem_seqno_wrap.c b/tests/gem_seqno_wrap.c
index 5e32fd600129..fa38f1f29bdc 100644
--- a/tests/gem_seqno_wrap.c
+++ b/tests/gem_seqno_wrap.c
@@ -98,7 +98,7 @@ set_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
*vaddr++ = val;
}
-static int
+static void
cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
{
int size = width * height;
@@ -107,14 +107,13 @@ cmp_bo(drm_intel_bo *bo, uint32_t val, int width, int height)
drm_intel_gem_bo_start_gtt_access(bo, false);
vaddr = bo->virtual;
while (size--) {
- if (*vaddr++ != val) {
- printf("%d: 0x%x differs from assumed 0x%x\n",
- width * height - size, *vaddr-1, val);
- return -1;
- }
+ igt_assert_f(*vaddr++ == val,
+ "%d: 0x%x differs from assumed 0x%x\n"
+ "seqno_before_test 0x%x, "
+ " approximated seqno on test fail 0x%x\n",
+ width * height - size, *vaddr-1, val,
+ last_seqno, last_seqno + val * 2);
}
-
- return 0;
}
static drm_intel_bo *
@@ -179,7 +178,7 @@ static void exchange_uint(void *array, unsigned i, unsigned j)
i_arr[j] = i_tmp;
}
-static int run_sync_test(int num_buffers, bool verify)
+static void run_sync_test(int num_buffers, bool verify)
{
drm_intel_bufmgr *bufmgr;
int max;
@@ -187,8 +186,6 @@ static int run_sync_test(int num_buffers, bool verify)
int width = 128, height = 128;
int fd;
int i;
- int r = -1;
- int failed = 0;
unsigned int *p_dst1, *p_dst2;
struct igt_buf *s_src, *s_dst;
@@ -226,12 +223,10 @@ static int run_sync_test(int num_buffers, bool verify)
igt_assert(s_dst);
p_dst1 = malloc(num_buffers * sizeof(unsigned int));
- if (p_dst1 == NULL)
- return -ENOMEM;
+ igt_assert(p_dst1);
p_dst2 = malloc(num_buffers * sizeof(unsigned int));
- if (p_dst2 == NULL)
- return -ENOMEM;
+ igt_assert(p_dst2);
for (i = 0; i < num_buffers; i++) {
p_dst1[i] = p_dst2[i] = i;
@@ -259,13 +254,7 @@ static int run_sync_test(int num_buffers, bool verify)
width*height*4);
for (i = 0; i < num_buffers; i++) {
- r = cmp_bo(dst2[p_dst2[i]], i, width, height);
- if (r) {
- printf("buffer %d differs, seqno_before_test 0x%x, "
- " approximated seqno on test fail 0x%x\n",
- i, last_seqno, last_seqno + i * 2);
- failed = -1;
- }
+ cmp_bo(dst2[p_dst2[i]], i, width, height);
}
}
@@ -290,8 +279,6 @@ static int run_sync_test(int num_buffers, bool verify)
gem_quiescent_gpu(fd);
close(fd);
-
- return failed;
}
static int run_cmd(char *s)
@@ -472,32 +459,27 @@ static uint32_t calc_prewrap_val(void)
return (random() % pval);
}
-static int run_test(void)
+static void run_test(void)
{
- int r;
-
- if (strnlen(options.cmd, sizeof(options.cmd)) > 0) {
- r = run_cmd(options.cmd);
- } else {
- r = run_sync_test(options.buffers, true);
- }
-
- return r;
+ if (strnlen(options.cmd, sizeof(options.cmd)) > 0)
+ igt_assert(run_cmd(options.cmd) == 0);
+ else
+ run_sync_test(options.buffers, true);
}
static void preset_run_once(void)
{
igt_assert(write_seqno(1) == 0);
- igt_assert(run_test() == 0);
+ run_test();
igt_assert(write_seqno(0x7fffffff) == 0);
- igt_assert(run_test() == 0);
+ run_test();
igt_assert(write_seqno(0xffffffff) == 0);
- igt_assert(run_test() == 0);
+ run_test();
igt_assert(write_seqno(0xfffffff0) == 0);
- igt_assert(run_test() == 0);
+ run_test();
}
static void random_run_once(void)
@@ -511,7 +493,7 @@ static void random_run_once(void)
} while (val == 0);
igt_assert(write_seqno(val) == 0);
- igt_assert(run_test() == 0);
+ run_test();
}
static void wrap_run_once(void)
@@ -521,7 +503,7 @@ static void wrap_run_once(void)
igt_assert(write_seqno(UINT32_MAX - pw_val) == 0);
while(!read_seqno())
- igt_assert(run_test() == 0);
+ run_test();
}
static void background_run_once(void)
--
1.9.2
More information about the Intel-gfx
mailing list