If built with -Werror=format-security then Piglit fails to build:

/tests/spec/arb_texture_view/rendering-layers-image.c:150:8:
error: format not a string literal and no format arguments 
[-Werror=format-security]
         (desc)); \
         ^~~~~~

In this case test->uniform_type is being turned into a string using snprintf()
and then passed to piglit_report_subtest_result() which takes a format string,
but GCC can't verify the format.

As _subtest_report() takes a format string, we can just remove the snprintf()
and let it construct the label.

Also as X is used once and doesn't make the code clearer, just inline it.

Signed-off-by: Ross Burton <ross.bur...@intel.com>
---
 tests/spec/arb_texture_view/rendering-layers-image.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/tests/spec/arb_texture_view/rendering-layers-image.c 
b/tests/spec/arb_texture_view/rendering-layers-image.c
index 415b01657..86148075b 100644
--- a/tests/spec/arb_texture_view/rendering-layers-image.c
+++ b/tests/spec/arb_texture_view/rendering-layers-image.c
@@ -142,26 +142,19 @@ test_render_layers(const struct test_info *test)
        return pass;
 }
 
-#define X(f, desc) \
-       do { \
-               const bool subtest_pass = (f); \
-               piglit_report_subtest_result(subtest_pass \
-                                                ? PIGLIT_PASS : PIGLIT_FAIL, \
-                                                (desc)); \
-               pass = pass && subtest_pass; \
-       } while (0)
-
 enum piglit_result
 piglit_display(void)
 {
        bool pass = true;
        for (int test_idx = 0; test_idx < ARRAY_SIZE(tests); test_idx++) {
                const struct test_info *test = &tests[test_idx];
-               char test_name[128];
-               snprintf(test_name, sizeof(test_name), "layers rendering of 
%s", test->uniform_type);
-               X(test_render_layers(test), test_name);
+
+               const bool subtest_pass = test_render_layers(test);
+
+               piglit_report_subtest_result(subtest_pass ? PIGLIT_PASS : 
PIGLIT_FAIL,
+                                            "layers rendering of %s", 
test->uniform_type);
+               pass = pass && subtest_pass;
        }
-#undef X
        pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
        return pass ? PIGLIT_PASS : PIGLIT_FAIL;
 }
-- 
2.11.0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to