From a743b817d28ced8c8a4f2250ae9cbec39af937aa Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 12 Apr 2017 08:55:34 +0200 Subject: [PATCH] test/testutil.c: Flush stdout when running tests Because stdout is usually buffered and stderr isn't, error output might get printed in one bunch and all the lines saying which test failed all in one bunch, making it difficult to see exactly what error output belongs to what test. Flushing stdout makes sure the runner output is displayed together with the corresponding error output. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3198) --- test/testutil.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/testutil.c b/test/testutil.c index 867be178b3..3d2824c1f9 100644 --- a/test/testutil.c +++ b/test/testutil.c @@ -114,6 +114,7 @@ int run_tests(const char *test_prog_name) printf("%s: %d test case%s\n", test_prog_name, num_test_cases, num_test_cases == 1 ? "" : "s"); + fflush(stdout); for (i = 0; i != num_tests; ++i) { if (all_tests[i].num == -1) { @@ -122,6 +123,7 @@ int run_tests(const char *test_prog_name) if (!ret) { printf("** %s failed **\n--------\n", all_tests[i].test_case_name); + fflush(stdout); ++num_failed; } finalize(ret); @@ -132,6 +134,7 @@ int run_tests(const char *test_prog_name) if (!ret) { printf("** %s failed test %d\n--------\n", all_tests[i].test_case_name, j); + fflush(stdout); ++num_failed; } finalize(ret); @@ -142,9 +145,11 @@ int run_tests(const char *test_prog_name) if (num_failed != 0) { printf("%s: %d test%s failed (out of %d)\n", test_prog_name, num_failed, num_failed != 1 ? "s" : "", num_test_cases); + fflush(stdout); return EXIT_FAILURE; } printf(" All tests passed.\n"); + fflush(stdout); return EXIT_SUCCESS; } -- 2.25.1