tests: rename check_screen() to verify_screen_content() + doc
authorPekka Paalanen <pekka.paalanen@collabora.com>
Tue, 21 Jan 2020 13:37:14 +0000 (15:37 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.com>
Thu, 27 Feb 2020 14:08:42 +0000 (16:08 +0200)
The old name felt too... short.

The return type is changed to bool; fits better for a success/failure.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
tests/subsurface-shot-test.c
tests/weston-test-client-helper.c
tests/weston-test-client-helper.h

index 9a9a7fd6c72a739e9624c562fb58fb089aac87b9..7f42dbb990c1d6c1bf325cc7d7669b5019b28118 100644 (file)
@@ -115,6 +115,21 @@ color(pixman_color_t *tmp, uint8_t r, uint8_t g, uint8_t b)
        return tmp;
 }
 
+static int
+check_screen(struct client *client,
+            const char *ref_image,
+            int ref_seq_no,
+            const struct rectangle *clip,
+            int seq_no)
+{
+       bool match;
+
+       match = verify_screen_content(client, ref_image, ref_seq_no, clip,
+                                     seq_no);
+
+       return match ? 0 : -1;
+}
+
 static struct buffer *
 surface_commit_color(struct client *client, struct wl_surface *surface,
                     pixman_color_t *color, int width, int height)
index 06cf5e076cfd0ede8e8b1b217c92cc6db9cc5d08..b6eaa22d0dccc2dfc2524c867b86b402923b5eb7 100644 (file)
@@ -1543,12 +1543,36 @@ write_visual_diff(pixman_image_t *ref_image,
        free(ext_test_name);
 }
 
-int
-check_screen(struct client *client,
-            const char *ref_image,
-            int ref_seq_no,
-            const struct rectangle *clip,
-            int seq_no)
+/**
+ * Take a screenshot and verify its contents
+ *
+ * Takes a screenshot and writes the image into a PNG file named with
+ * get_test_name() and seq_no. Compares the contents to the given reference
+ * image over the given clip rectangle, reports whether they match to the
+ * test log, and if they do not match writes a visual diff into a PNG file.
+ *
+ * The compositor output size and the reference image size must both contain
+ * the clip rectangle.
+ *
+ * This function uses the pixel value allowed fuzz approriate for GL-renderer
+ * with 8 bits per channel data.
+ *
+ * \param client The client, for connecting to the compositor.
+ * \param ref_image The reference image file basename, without sequence number
+ * and .png suffix.
+ * \param ref_seq_no The reference image sequence number.
+ * \param clip The region of interest, or NULL for comparing the whole
+ * images.
+ * \param seq_no Test sequence number, for writing output files.
+ * \return True if the screen contents matches the reference image,
+ * false otherwise.
+ */
+bool
+verify_screen_content(struct client *client,
+                     const char *ref_image,
+                     int ref_seq_no,
+                     const struct rectangle *clip,
+                     int seq_no)
 {
        const char *test_name = get_test_name();
        const struct range gl_fuzz = { 0, 1 };
@@ -1568,7 +1592,7 @@ check_screen(struct client *client,
        assert(shot);
 
        match = check_images_match(ref, shot->image, clip, &gl_fuzz);
-       testlog("ref %s vs. shot %s: %s\n", ref_fname, shot_fname,
+       testlog("Verify reference image %s vs. shot %s: %s\n", ref_fname, shot_fname,
                match ? "PASS" : "FAIL");
 
        write_image_as_png(shot->image, shot_fname);
@@ -1580,5 +1604,5 @@ check_screen(struct client *client,
        free(ref_fname);
        free(shot_fname);
 
-       return match ? 0 : -1;
+       return match;
 }
index 046c1cf9739de6d48a87bd5c2018ae305c7c2ba7..cbb0512da4f296c3472db4be36084b3bde6c596f 100644 (file)
@@ -246,11 +246,11 @@ load_image_from_png(const char *fname);
 struct buffer *
 capture_screenshot_of_output(struct client *client);
 
-int
-check_screen(struct client *client,
-            const char *ref_image,
-            int ref_seq_no,
-            const struct rectangle *clip,
-            int seq_no);
+bool
+verify_screen_content(struct client *client,
+                     const char *ref_image,
+                     int ref_seq_no,
+                     const struct rectangle *clip,
+                     int seq_no);
 
 #endif