t5601: rm the target file of cp that could still be executing
authorJunio C Hamano <gitster@pobox.com>
Tue, 17 Oct 2017 05:04:43 +0000 (14:04 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Oct 2017 05:04:43 +0000 (14:04 +0900)
"while sh t5601-clone.sh; do :; done" seems to fail sporadically at
around test #45 where fake-ssh wrapper is copied create plink.exe,
with an error message that says the "text is busy".

I have a mild suspicion that the root cause of the bug is that the
fake SSH process from the previous test is still running by the time
the next test wants to replace it with a new binary, but in the
meantime, removing the target that could still be executing before
copying something else over seems to work it around.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5601-clone.sh
index 9c56f771b619e4bb931ce3d34a5f9325b8f61e90..50e40abb11e1d317a2a58321f1007dde925c8da2 100755 (executable)
@@ -308,6 +308,7 @@ test_expect_success 'clone checking out a tag' '
 
 setup_ssh_wrapper () {
        test_expect_success 'setup ssh wrapper' '
+               rm -f "$TRASH_DIRECTORY/ssh-wrapper$X" &&
                cp "$GIT_BUILD_DIR/t/helper/test-fake-ssh$X" \
                        "$TRASH_DIRECTORY/ssh-wrapper$X" &&
                GIT_SSH="$TRASH_DIRECTORY/ssh-wrapper$X" &&
@@ -318,6 +319,7 @@ setup_ssh_wrapper () {
 }
 
 copy_ssh_wrapper_as () {
+       rm -f "${1%$X}$X" &&
        cp "$TRASH_DIRECTORY/ssh-wrapper$X" "${1%$X}$X" &&
        GIT_SSH="${1%$X}$X" &&
        export GIT_SSH