tests: Check that the PNG file's stride matches our internal assumption

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
dev
Bryce Harrington 10 years ago
parent 3835d05c63
commit c919883d26
  1. 10
      tests/internal-screenshot-test.c

@ -75,6 +75,7 @@ load_surface_from_png(const char *fname) {
cairo_surface_t *reference_cairo_surface; cairo_surface_t *reference_cairo_surface;
cairo_status_t status; cairo_status_t status;
size_t source_data_size; size_t source_data_size;
int bpp;
int stride; int stride;
printf("Loading reference image %s\n", fname); printf("Loading reference image %s\n", fname);
@ -98,6 +99,15 @@ load_surface_from_png(const char *fname) {
stride = cairo_image_surface_get_stride(reference_cairo_surface); stride = cairo_image_surface_get_stride(reference_cairo_surface);
source_data_size = stride * reference->height; source_data_size = stride * reference->height;
/* Check that the file's stride matches our assumption */
bpp = 4;
if (stride != bpp * reference->width) {
printf("Mismatched stride for screenshot reference image %s\n", fname);
cairo_surface_destroy(reference_cairo_surface);
free(reference);
return NULL;
}
/* Allocate new buffer for our weston reference, and copy the data from /* Allocate new buffer for our weston reference, and copy the data from
the cairo surface so we can destroy it */ the cairo surface so we can destroy it */
reference->data = xzalloc(source_data_size); reference->data = xzalloc(source_data_size);

Loading…
Cancel
Save