[Piglit] [PATCH] util: call fflush() after printf() calls

Charmaine Lee charmainel at vmware.com
Wed Jun 7 16:52:15 UTC 2017


Reviewed-by: Charmaine Lee <charmainel at vmware.com>
________________________________________
From: Brian Paul <brianp at vmware.com>
Sent: Wednesday, June 7, 2017 8:51:52 AM
To: piglit at lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende; Brian Paul
Subject: [PATCH] util: call fflush() after printf() calls

Otherwise, on Windows, we don't see the printf() output until the program
exits.  That's fine with the -auto option, but a problem w/out -auto.
---
 tests/util/piglit-util-gl.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
index 5ff13fe..f5734d9 100644
--- a/tests/util/piglit-util-gl.c
+++ b/tests/util/piglit-util-gl.c
@@ -1169,6 +1169,7 @@ piglit_probe_pixel_rgb(int x, int y, const float* expected)
        printf("Probe color at (%i,%i)\n", x, y);
        printf("  Expected: %f %f %f\n", expected[0], expected[1], expected[2]);
        printf("  Observed: %f %f %f\n", probe[0], probe[1], probe[2]);
+       fflush(stdout);

        return 0;
 }
@@ -1199,6 +1200,7 @@ piglit_probe_pixel_rgba(int x, int y, const float* expected)
        printf("Probe color at (%i,%i)\n", x, y);
        printf("  Expected: %f %f %f %f\n", expected[0], expected[1], expected[2], expected[3]);
        printf("  Observed: %f %f %f %f\n", probe[0], probe[1], probe[2], probe[3]);
+       fflush(stdout);

        return 0;
 }
@@ -1259,6 +1261,7 @@ piglit_probe_rect_ubyte(int x, int y, int w, int h, int num_components,
                                                        printf("  Observed: %u %u %u\n",
                                                               probe[0], probe[1], probe[2]);
                                                }
+                                               fflush(stdout);
                                        }
                                        free(pixels);
                                        return false;
@@ -1321,6 +1324,7 @@ piglit_probe_rect_r_ubyte(int x, int y, int w, int h, GLubyte expected)
                                printf("Probe color at (%i,%i)\n", x+i, y+j);
                                printf("  Expected: %u\n", expected);
                                printf("  Observed: %u\n", probe);
+                               fflush(stdout);

                                free(pixels);
                                return 0;
@@ -1355,6 +1359,7 @@ piglit_probe_rect_rgb(int x, int y, int w, int h, const float *expected)
                                               expected[0], expected[1], expected[2]);
                                        printf("  Observed: %f %f %f\n",
                                               probe[0], probe[1], probe[2]);
+                                       fflush(stdout);

                                        free(pixels);
                                        return 0;
@@ -1425,6 +1430,7 @@ piglit_probe_rect_rgba(int x, int y, int w, int h, const float *expected)
                                               expected[0], expected[1], expected[2], expected[3]);
                                        printf("  Observed: %f %f %f %f\n",
                                               probe[0], probe[1], probe[2], probe[3]);
+                                       fflush(stdout);

                                        free(pixels);
                                        return 0;
@@ -1457,6 +1463,7 @@ piglit_probe_rect_rgba_int(int x, int y, int w, int h, const int *expected)
                                               expected[0], expected[1], expected[2], expected[3]);
                                        printf("  Observed: %d %d %d %d\n",
                                               probe[0], probe[1], probe[2], probe[3]);
+                                       fflush(stdout);

                                        free(pixels);
                                        return 0;
@@ -1490,6 +1497,7 @@ piglit_probe_rect_rgba_uint(int x, int y, int w, int h,
                                               expected[0], expected[1], expected[2], expected[3]);
                                        printf("  Observed: %u %u %u %u\n",
                                               probe[0], probe[1], probe[2], probe[3]);
+                                       fflush(stdout);

                                        free(pixels);
                                        return 0;
@@ -1685,6 +1693,7 @@ piglit_compare_images_ubyte(int x, int y, int w, int h,
                                printf("Probe at (%i,%i)\n", x+i, y+j);
                                printf("  Expected: %d\n", expected);
                                printf("  Observed: %d\n", probe);
+                               fflush(stdout);

                                return 0;
                        }
@@ -1858,6 +1867,7 @@ int piglit_probe_texel_rect_rgb(int target, int level, int x, int y,
                                               expected[0], expected[1], expected[2]);
                                        printf("  Observed: %f %f %f\n",
                                               probe[0], probe[1], probe[2]);
+                                       fflush(stdout);

                                        free(buffer);
                                        return 0;
@@ -1921,6 +1931,7 @@ int piglit_probe_texel_rect_rgba(int target, int level, int x, int y,
                                               expected[0], expected[1], expected[2], expected[3]);
                                        printf("  Observed: %f %f %f %f\n",
                                               probe[0], probe[1], probe[2], probe[3]);
+                                       fflush(stdout);

                                        free(buffer);
                                        return 0;
@@ -1990,6 +2001,7 @@ int piglit_probe_texel_volume_rgba(int target, int level, int x, int y, int z,
                                                       expected[0], expected[1], expected[2], expected[3]);
                                                printf("  Observed: %f %f %f %f\n",
                                                       probe[0], probe[1], probe[2], probe[3]);
+                                               fflush(stdout);

                                                free(buffer);
                                                return 0;
@@ -2024,6 +2036,7 @@ int piglit_probe_pixel_depth(int x, int y, float expected)
        printf("Probe depth at (%i,%i)\n", x, y);
        printf("  Expected: %f\n", expected);
        printf("  Observed: %f\n", probe);
+       fflush(stdout);

        return 0;
 }
@@ -2044,6 +2057,7 @@ int piglit_probe_rect_depth(int x, int y, int w, int h, float expected)
                                printf("Probe depth at (%i,%i)\n", x+i, y+j);
                                printf("  Expected: %f\n", expected);
                                printf("  Observed: %f\n", *probe);
+                               fflush(stdout);

                                free(pixels);
                                return 0;
@@ -2066,6 +2080,7 @@ int piglit_probe_pixel_stencil(int x, int y, unsigned expected)
        printf("Probe stencil at (%i, %i)\n", x, y);
        printf("  Expected: %u\n", expected);
        printf("  Observed: %u\n", probe);
+       fflush(stdout);

        return 0;
 }
@@ -2084,6 +2099,7 @@ int piglit_probe_rect_stencil(int x, int y, int w, int h, unsigned expected)
                                printf("Probe stencil at (%i, %i)\n", x + i, y + j);
                                printf("  Expected: %u\n", expected);
                                printf("  Observed: %u\n", probe);
+                               fflush(stdout);
                                free(pixels);
                                return 0;
                        }
@@ -2109,6 +2125,7 @@ bool piglit_probe_buffer(GLuint buf, GLenum target, const char *label,
                if (fabs(ptr[i] - expected[i % num_components]) > 0.01) {
                        printf("%s[%i]: %f, Expected: %f\n", label, i, ptr[i],
                                expected[i % num_components]);
+                       fflush(stdout);
                        status = false;
                }
        }
@@ -2133,6 +2150,7 @@ bool piglit_probe_buffer_doubles(GLuint buf, GLenum target, const char *label,
                if (fabs(ptr[i] - expected[i % num_components]) > 0.01) {
                        printf("%s[%i]: %f, Expected: %f\n", label, i, ptr[i],
                                expected[i % num_components]);
+                       fflush(stdout);
                        status = false;
                }
        }
@@ -2200,10 +2218,13 @@ GLuint piglit_compile_program(GLenum target, const char* text)
                        fprintf(stderr, "%c", text[errorPos+a]);
                }
                fprintf(stderr, "\nin program:\n%s", text);
+               fflush(stderr);
+
                piglit_report_result(PIGLIT_FAIL);
        }
        if (!glIsProgramARB(program)) {
                fprintf(stderr, "glIsProgramARB failed\n");
+               fflush(stderr);
                piglit_report_result(PIGLIT_FAIL);
        }

--
1.9.1



More information about the Piglit mailing list