summaryrefslogtreecommitdiff
path: root/test/cairo-test-trace.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-09-21 11:18:24 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-09-21 11:19:04 +0100
commit0e95215c01b5d7124d950f0b21fd2b0e343a34af (patch)
tree07cb24fdf3a6363b923289e6ecc5c14de468dd0d /test/cairo-test-trace.c
parentf8c4686310b2b538cebb59f64b2ab8c6def86628 (diff)
downloadcairo-0e95215c01b5d7124d950f0b21fd2b0e343a34af.tar.gz
test/trace: Hack to dump out per-context images and traces
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'test/cairo-test-trace.c')
-rw-r--r--test/cairo-test-trace.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/test/cairo-test-trace.c b/test/cairo-test-trace.c
index 8773bd1dc..fb1bd4225 100644
--- a/test/cairo-test-trace.c
+++ b/test/cairo-test-trace.c
@@ -94,6 +94,8 @@
#define DEBUG 0
#define ignore_image_differences 0 /* XXX make me a cmdline option! */
+#define write_results 1
+#define write_traces 1
#define DATA_SIZE (256 << 20)
#define SHM_PATH_XXX "/.shmem-cairo-trace"
@@ -701,6 +703,12 @@ matches_reference (struct slave *slave)
a = slave->image;
b = slave->reference->image;
+ if (a == b)
+ return TRUE;
+
+ if (a == NULL || b == NULL)
+ return FALSE;
+
if (cairo_surface_status (a) || cairo_surface_status (b))
return FALSE;
@@ -1064,6 +1072,7 @@ test_run (void *base,
continue;
if (pfd[n].revents & POLLHUP) {
+ pfd[n].events = pfd[n].revents = 0;
completion++;
continue;
}
@@ -1094,6 +1103,7 @@ test_run (void *base,
offset = image,
&slaves[i]);
if (! writen (pfd[n].fd, &offset, sizeof (offset))) {
+ pfd[n].events = pfd[n].revents = 0;
err = 1;
completion++;
continue;
@@ -1109,6 +1119,7 @@ test_run (void *base,
slaves[i].image_serial);
}
if (slaves[i].image_ready != slaves[i].image_serial) {
+ pfd[n].events = pfd[n].revents = 0;
err = 1;
completion++;
continue;
@@ -1127,7 +1138,7 @@ test_run (void *base,
cnt--;
}
- if (completion == num_slaves) {
+ if (completion >= num_slaves) {
if (err) {
if (DEBUG > 1)
printf ("error detected\n");
@@ -1158,8 +1169,8 @@ test_run (void *base,
goto out;
}
- if (0) write_result (trace, &slaves[1]);
- if (0 && slaves[0].is_recording) {
+ if (write_results) write_result (trace, &slaves[1]);
+ if (write_traces && slaves[0].is_recording) {
char buf[80];
snprintf (buf, sizeof (buf), "%d", slaves[0].image_serial);
write_trace (trace, buf, &slaves[0]);