tests: Check that the PNG file's stride matches our internal assumption
authorBryce Harrington <bryce@osg.samsung.com>
Thu, 21 May 2015 18:53:54 +0000 (11:53 -0700)
committerBryce Harrington <bryce@osg.samsung.com>
Thu, 21 May 2015 22:10:37 +0000 (15:10 -0700)
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
tests/internal-screenshot-test.c

index b570733679b790a98fbcd45f201d31b3472dcef4..f2e6c16b01325869bfe163e100d6bec952f43c56 100644 (file)
@@ -75,6 +75,7 @@ load_surface_from_png(const char *fname) {
        cairo_surface_t *reference_cairo_surface;
        cairo_status_t status;
        size_t source_data_size;
+       int bpp;
        int stride;
 
        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);
        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
           the cairo surface so we can destroy it */
        reference->data = xzalloc(source_data_size);