From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyril Hrubis Date: Wed, 14 Jul 2021 17:00:08 +0200 Subject: [LTP] [PATCH v5 0/4] Run tests in CI In-Reply-To: References: <20210714142001.20566-1-pvorel@suse.cz> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ltp@lists.linux.it Hi! > tested: > https://github.com/pevik/ltp/actions/runs/1030551185 > > One thing which bothers me is mangled output of several tests together: > https://github.com/pevik/ltp/runs/3067600696?check_suite_focus=true#step:11:554 > > runtest TINFO: * tst_res_hexd > /__w/ltp/ltp/lib/tst_test.c:1344: TINFO: Timeout per run is 0h 05m 00s > /__w/ltp/ltp/lib/newlib_tests/tst_res_hexd.c:13: TPASS: dump1 > /__w/ltp/ltp/lib/newlib_tests/tst_res_hexd.c:13: TPASS: 48 65 6c 6c 6f 20 66 72 6f 6d 20 74 73 74 5f 72 > /__w/ltp/ltp/lib/newlib_tests/tst_res_hexd.c:13: TPASS: 65 73 5f 68 65 78 64 00 > > runtest TINFO: * tst_strstatus > /__w/ltp/ltp/lib/tst_test.c:1344: TINFO: Timeout per run is 0h 05m 00s > > Summary: > passed 35 > failed 0 > broken 0 > skipped 0 > warnings 0 > > Summary: > passed 1 > failed 0 > broken 0 > skipped 0 > warnings 0 That is indeed strange, you are running these in a loop, the buffers should have been flushed once controll returns back to the shell from the test. I guess that this is a combination of: * The stdout and stderr are block buffered by the gitlab CI and flushed at different times * The summary is written into stdout in contrast with the message so we end up with summary printed later than the rest that goes into stderr I guess this should fix it: diff --git a/lib/tst_test.c b/lib/tst_test.c index f4d9f8e3b..084a83c9e 100644 --- a/lib/tst_test.c +++ b/lib/tst_test.c @@ -734,12 +734,12 @@ static void do_exit(int ret) if (results->broken) ret |= TBROK; - printf("\nSummary:\n"); - printf("passed %d\n", results->passed); - printf("failed %d\n", results->failed); - printf("broken %d\n", results->broken); - printf("skipped %d\n", results->skipped); - printf("warnings %d\n", results->warnings); + fprintf(stderr, "\nSummary:\n"); + fprintf(stderr, "passed %d\n", results->passed); + fprintf(stderr, "failed %d\n", results->failed); + fprintf(stderr, "broken %d\n", results->broken); + fprintf(stderr, "skipped %d\n", results->skipped); + fprintf(stderr, "warnings %d\n", results->warnings); } do_cleanup(); -- Cyril Hrubis chrubis@suse.cz