Some expected failures of git-http-backend leaves running its children
(receive-pack or upload-pack) which still hold opened descriptors
to act.err and with some probability they live long enough to write
there their failure messages after next test has already truncated
the files. This causes occasional failures of the test script.

Avoid the issue by using separated output and error file for each test,
apprending the test number to their name.

Reported-by: Carlo Arenas <care...@gmail.com>
Helped-by: Carlo Arenas <care...@gmail.com>
Helped-by: Junio C Hamano <gits...@pobox.com>
Signed-off-by: Max Kirillov <m...@max630.net>
---
Use another output and error files for each test
 t/t5562-http-backend-content-length.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/t/t5562-http-backend-content-length.sh 
b/t/t5562-http-backend-content-length.sh
index 90d890d02f..9ebbd77bbb 100755
--- a/t/t5562-http-backend-content-length.sh
+++ b/t/t5562-http-backend-content-length.sh
@@ -8,12 +8,12 @@ test_lazy_prereq GZIP 'gzip --version'
 verify_http_result() {
        # some fatal errors still produce status 200
        # so check if there is the error message
-       if grep 'fatal:' act.err
+       if grep 'fatal:' act.err.$test_count
        then
                return 1
        fi
 
-       if ! grep "Status" act.out >act
+       if ! grep "Status" act.out.$test_count >act
        then
                printf "Status: 200 OK\r\n" >act
        fi
@@ -33,7 +33,7 @@ test_http_env() {
                REQUEST_METHOD=POST \
                "$PERL_PATH" \
                "$TEST_DIRECTORY"/t5562/invoke-with-content-length.pl \
-                   "$request_body" git http-backend >act.out 2>act.err
+                   "$request_body" git http-backend >act.out.$test_count 
2>act.err.$test_count
 }
 
 ssize_b100dots() {
@@ -161,7 +161,7 @@ test_expect_success 'empty CONTENT_LENGTH' '
                GIT_HTTP_EXPORT_ALL=TRUE \
                REQUEST_METHOD=GET \
                CONTENT_LENGTH="" \
-               git http-backend <empty_body >act.out 2>act.err &&
+               git http-backend <empty_body >act.out.$test_count 
2>act.err.$test_count &&
        verify_http_result "200 OK"
 '
 
-- 
2.19.0.1202.g68e1e8f04e

Reply via email to