t5411: use different out file to prevent overwriting

SZEDER reported that t5411 failed in Travis CI's s390x environment a couple of times, and could be reproduced with '--stress' test on this specific environment. The test failure messages might look like this: + test_cmp expect actual --- expect 2021-01-17 21:55:23.430750004 +0000 +++ actual 2021-01-17 21:55:23.430750004 +0000 @@ -1 +1 @@ -<COMMIT-A> refs/heads/main +<COMMIT-A> refs/heads/maifatal: the remote end hung up unexpectedly error: last command exited with $?=1 not ok 86 - proc-receive: not support push options (builtin protocol) The file 'actual' is filtered from the file 'out' which contains result of 'git show-ref' command. Due to the error messages from other process is written into the file 'out' accidentally, t5411 failed. SZEDER finds the root cause of this issue: - 'git push' is executed with its standard output and error redirected to the file 'out'. - 'git push' executes 'git receive-pack' internally, which inherits the open file descriptors, so its output and error goes into that same 'out' file. - 'git push' ends without waiting for the close of 'git-receive-pack' for some cases, and the file 'out' is reused for test of 'git show-ref' afterwards. - A mixture of the output of 'git show-ref' abd 'git receive-pack' leads to this issue. The first intuitive reaction to resolve this issue is to remove the file 'out' after use, so that the newly created file 'out' will have a different file descriptor and will not be overwritten by the 'git receive-pack' process. But Johannes pointed out that removing an open file is not possible on Windows. So we use different temporary file names to store the output of 'git push' to solve this issue. Reported-by: SZEDER Gábor <szeder.dev@gmail.com> Helped-by: Johannes Sixt <j6t@kdbg.org> Helped-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jiang Xin committed Jan 20, 2021 at 21:53 UTC 8388a64cd1186674cffbb032d940c1c35be1f627
20 files changed +98 -98
t/t5411/test-0000-standard-git-push.sh
+4 -4
@@ -35,11 +35,11 @@ test_expect_success "git-push --atomic ($PROTOCOL)" '
35 test_must_fail git -C workbench push --atomic origin \
36 main \
37 $B:refs/heads/next \
38 - >out 2>&1 &&
38 + >out-$test_count 2>&1 &&
39 filter_out_user_friendly_and_stable_output \
40 -e "/^To / { p; }" \
41 -e "/^ ! / { p; }" \
42 - <out >actual &&
42 + <out-$test_count >actual &&
43 cat >expect <<-EOF &&
44 To <URL/of/upstream.git>
45 ! [rejected] main -> main (non-fast-forward)
@@ -65,8 +65,8 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL)" '
65 push origin \
66 main \
67 $B:refs/heads/next \
68 - >out 2>&1 &&
69 - make_user_friendly_and_stable_output <out >actual &&
68 + >out-$test_count 2>&1 &&
69 + make_user_friendly_and_stable_output <out-$test_count >actual &&
70 cat >expect <<-EOF &&
71 remote: # pre-receive hook
72 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next
t/t5411/test-0001-standard-git-push--porcelain.sh
+4 -4
@@ -36,12 +36,12 @@ test_expect_success "git-push --atomic ($PROTOCOL/porcelain)" '
36 test_must_fail git -C workbench push --atomic --porcelain origin \
37 main \
38 $B:refs/heads/next \
39 - >out 2>&1 &&
39 + >out-$test_count 2>&1 &&
40 filter_out_user_friendly_and_stable_output \
41 -e "s/^# GETTEXT POISON #//" \
42 -e "/^To / { p; }" \
43 -e "/^! / { p; }" \
44 - <out >actual &&
44 + <out-$test_count >actual &&
45 cat >expect <<-EOF &&
46 To <URL/of/upstream.git>
47 ! refs/heads/main:refs/heads/main [rejected] (non-fast-forward)
@@ -67,8 +67,8 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL/porcelain)" '
67 push --porcelain origin \
68 main \
69 $B:refs/heads/next \
70 - >out 2>&1 &&
71 - make_user_friendly_and_stable_output <out >actual &&
70 + >out-$test_count 2>&1 &&
71 + make_user_friendly_and_stable_output <out-$test_count >actual &&
72 cat >expect <<-EOF &&
73 remote: # pre-receive hook
74 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next
t/t5411/test-0002-pre-receive-declined.sh
+2 -2
@@ -12,8 +12,8 @@ test_expect_success "git-push is declined ($PROTOCOL)" '
12 test_must_fail git -C workbench push origin \
13 $B:refs/heads/main \
14 HEAD:refs/heads/next \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 To <URL/of/upstream.git>
19 ! [remote rejected] <COMMIT-B> -> main (pre-receive hook declined)
t/t5411/test-0003-pre-receive-declined--porcelain.sh
+2 -2
@@ -12,8 +12,8 @@ test_expect_success "git-push is declined ($PROTOCOL/porcelain)" '
12 test_must_fail git -C workbench push --porcelain origin \
13 $B:refs/heads/main \
14 HEAD:refs/heads/next \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 To <URL/of/upstream.git>
19 ! <COMMIT-B>:refs/heads/main [remote rejected] (pre-receive hook declined)
t/t5411/test-0011-no-hook-error.sh
+4 -4
@@ -5,8 +5,8 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL)
5 test_must_fail git -C workbench push origin \
6 HEAD:next \
7 HEAD:refs/for/main/topic \
8 - >out 2>&1 &&
9 - make_user_friendly_and_stable_output <out >actual &&
8 + >out-$test_count 2>&1 &&
9 + make_user_friendly_and_stable_output <out-$test_count >actual &&
10 cat >expect <<-EOF &&
11 remote: # pre-receive hook
12 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
@@ -41,8 +41,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO
41 test_must_fail git -C workbench push --atomic origin \
42 $B:main \
43 HEAD:next \
44 - HEAD:refs/for/main/topic >out 2>&1 &&
45 - make_user_friendly_and_stable_output <out >actual &&
44 + HEAD:refs/for/main/topic >out-$test_count 2>&1 &&
45 + make_user_friendly_and_stable_output <out-$test_count >actual &&
46 cat >expect <<-EOF &&
47 remote: # pre-receive hook
48 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
t/t5411/test-0012-no-hook-error--porcelain.sh
+4 -4
@@ -5,8 +5,8 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL/
5 test_must_fail git -C workbench push --porcelain origin \
6 HEAD:next \
7 HEAD:refs/for/main/topic \
8 - >out 2>&1 &&
9 - make_user_friendly_and_stable_output <out >actual &&
8 + >out-$test_count 2>&1 &&
9 + make_user_friendly_and_stable_output <out-$test_count >actual &&
10 cat >expect <<-EOF &&
11 remote: # pre-receive hook
12 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
@@ -42,8 +42,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO
42 test_must_fail git -C workbench push --porcelain --atomic origin \
43 $B:main \
44 HEAD:next \
45 - HEAD:refs/for/main/topic >out 2>&1 &&
46 - make_user_friendly_and_stable_output <out >actual &&
45 + HEAD:refs/for/main/topic >out-$test_count 2>&1 &&
46 + make_user_friendly_and_stable_output <out-$test_count >actual &&
47 cat >expect <<-EOF &&
48 remote: # pre-receive hook
49 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
t/t5411/test-0013-bad-protocol.sh
+25 -25
@@ -11,8 +11,8 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL)" '
11 test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" '
12 test_must_fail git -C workbench push origin \
13 HEAD:refs/for/main/topic \
14 - >out 2>&1 &&
15 - make_user_friendly_and_stable_output <out >actual &&
14 + >out-$test_count 2>&1 &&
15 + make_user_friendly_and_stable_output <out-$test_count >actual &&
16
17 # Check status report for git-push
18 sed -n \
@@ -55,18 +55,18 @@ test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL
55 test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL)" '
56 test_must_fail git -C workbench push origin \
57 HEAD:refs/for/main/topic \
58 - >out 2>&1 &&
58 + >out-$test_count 2>&1 &&
59 filter_out_user_friendly_and_stable_output \
60 -e "/^To / { p; }" \
61 -e "/^ ! / { p; }" \
62 - <out >actual &&
62 + <out-$test_count >actual &&
63 cat >expect <<-EOF &&
64 To <URL/of/upstream.git>
65 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
66 EOF
67 test_cmp expect actual &&
68 - grep "remote: fatal: die with the --die-read-version option" out &&
69 - grep "remote: error: fail to negotiate version with proc-receive hook" out &&
68 + grep "remote: fatal: die with the --die-read-version option" out-$test_count &&
69 + grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count &&
70
71 git -C "$upstream" show-ref >out &&
72 make_user_friendly_and_stable_output <out >actual &&
@@ -89,18 +89,18 @@ test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCO
89 test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL)" '
90 test_must_fail git -C workbench push origin \
91 HEAD:refs/for/main/topic \
92 - >out 2>&1 &&
92 + >out-$test_count 2>&1 &&
93 filter_out_user_friendly_and_stable_output \
94 -e "/^To / { p; }" \
95 -e "/^ ! / { p; }" \
96 - <out >actual &&
96 + <out-$test_count >actual &&
97 cat >expect <<-EOF &&
98 To <URL/of/upstream.git>
99 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
100 EOF
101 test_cmp expect actual &&
102 - grep "remote: fatal: die with the --die-write-version option" out &&
103 - grep "remote: error: fail to negotiate version with proc-receive hook" out &&
102 + grep "remote: fatal: die with the --die-write-version option" out-$test_count &&
103 + grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count &&
104
105 git -C "$upstream" show-ref >out &&
106 make_user_friendly_and_stable_output <out >actual &&
@@ -123,17 +123,17 @@ test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCO
123 test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL)" '
124 test_must_fail git -C workbench push origin \
125 HEAD:refs/for/main/topic \
126 - >out 2>&1 &&
126 + >out-$test_count 2>&1 &&
127 filter_out_user_friendly_and_stable_output \
128 -e "/^To / { p; }" \
129 -e "/^ ! / { p; }" \
130 - <out >actual &&
130 + <out-$test_count >actual &&
131 cat >expect <<-EOF &&
132 To <URL/of/upstream.git>
133 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
134 EOF
135 test_cmp expect actual &&
136 - grep "remote: fatal: die with the --die-read-commands option" out &&
136 + grep "remote: fatal: die with the --die-read-commands option" out-$test_count &&
137
138 git -C "$upstream" show-ref >out &&
139 make_user_friendly_and_stable_output <out >actual &&
@@ -158,17 +158,17 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $
158 test_must_fail git -C workbench push origin \
159 -o reviewers=user1,user2 \
160 HEAD:refs/for/main/topic \
161 - >out 2>&1 &&
161 + >out-$test_count 2>&1 &&
162 filter_out_user_friendly_and_stable_output \
163 -e "/^To / { p; }" \
164 -e "/^ ! / { p; }" \
165 - <out >actual &&
165 + <out-$test_count >actual &&
166 cat >expect <<-EOF &&
167 To <URL/of/upstream.git>
168 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
169 EOF
170 test_cmp expect actual &&
171 - grep "remote: fatal: die with the --die-read-push-options option" out &&
171 + grep "remote: fatal: die with the --die-read-push-options option" out-$test_count &&
172
173 git -C "$upstream" show-ref >out &&
174 make_user_friendly_and_stable_output <out >actual &&
@@ -191,17 +191,17 @@ test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL
191 test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL)" '
192 test_must_fail git -C workbench push origin \
193 HEAD:refs/for/main/topic \
194 - >out 2>&1 &&
194 + >out-$test_count 2>&1 &&
195 filter_out_user_friendly_and_stable_output \
196 -e "/^To / { p; }" \
197 -e "/^ ! / { p; }" \
198 - <out >actual &&
198 + <out-$test_count >actual &&
199 cat >expect <<-EOF &&
200 To <URL/of/upstream.git>
201 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
202 EOF
203 test_cmp expect actual &&
204 - grep "remote: fatal: die with the --die-write-report option" out &&
204 + grep "remote: fatal: die with the --die-write-report option" out-$test_count &&
205
206 git -C "$upstream" show-ref >out &&
207 make_user_friendly_and_stable_output <out >actual &&
@@ -224,8 +224,8 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" '
224 test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL)" '
225 test_must_fail git -C workbench push origin \
226 HEAD:refs/heads/next \
227 - HEAD:refs/for/main/topic >out 2>&1 &&
228 - make_user_friendly_and_stable_output <out >actual &&
227 + HEAD:refs/for/main/topic >out-$test_count 2>&1 &&
228 + make_user_friendly_and_stable_output <out-$test_count >actual &&
229 cat >expect <<-EOF &&
230 remote: # pre-receive hook
231 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
@@ -270,8 +270,8 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL)" '
270 test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" '
271 test_must_fail git -C workbench push origin \
272 HEAD:refs/for/main/topic\
273 - >out 2>&1 &&
274 - make_user_friendly_and_stable_output <out >actual &&
273 + >out-$test_count 2>&1 &&
274 + make_user_friendly_and_stable_output <out-$test_count >actual &&
275 cat >expect <<-EOF &&
276 remote: # pre-receive hook
277 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
@@ -306,8 +306,8 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" '
306 test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL)" '
307 test_must_fail git -C workbench push origin \
308 HEAD:refs/for/main/topic \
309 - >out 2>&1 &&
310 - make_user_friendly_and_stable_output <out >actual &&
309 + >out-$test_count 2>&1 &&
310 + make_user_friendly_and_stable_output <out-$test_count >actual &&
311 cat >expect <<-EOF &&
312 remote: # pre-receive hook
313 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0014-bad-protocol--porcelain.sh
+25 -25
@@ -11,8 +11,8 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL/porcela
11 test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porcelain)" '
12 test_must_fail git -C workbench push --porcelain origin \
13 HEAD:refs/for/main/topic \
14 - >out 2>&1 &&
15 - make_user_friendly_and_stable_output <out >actual &&
14 + >out-$test_count 2>&1 &&
15 + make_user_friendly_and_stable_output <out-$test_count >actual &&
16
17 # Check status report for git-push
18 sed -n \
@@ -55,18 +55,18 @@ test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL
55 test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL/porcelain)" '
56 test_must_fail git -C workbench push --porcelain origin \
57 HEAD:refs/for/main/topic \
58 - >out 2>&1 &&
58 + >out-$test_count 2>&1 &&
59 filter_out_user_friendly_and_stable_output \
60 -e "/^To / { p; n; p; n; p; }" \
61 - <out >actual &&
61 + <out-$test_count >actual &&
62 cat >expect <<-EOF &&
63 To <URL/of/upstream.git>
64 ! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
65 Done
66 EOF
67 test_cmp expect actual &&
68 - grep "remote: fatal: die with the --die-read-version option" out &&
69 - grep "remote: error: fail to negotiate version with proc-receive hook" out &&
68 + grep "remote: fatal: die with the --die-read-version option" out-$test_count &&
69 + grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count &&
70
71 git -C "$upstream" show-ref >out &&
72 make_user_friendly_and_stable_output <out >actual &&
@@ -89,18 +89,18 @@ test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCO
89 test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL/porcelain)" '
90 test_must_fail git -C workbench push --porcelain origin \
91 HEAD:refs/for/main/topic \
92 - >out 2>&1 &&
92 + >out-$test_count 2>&1 &&
93 filter_out_user_friendly_and_stable_output \
94 -e "/^To / { p; n; p; n; p; }" \
95 - <out >actual &&
95 + <out-$test_count >actual &&
96 cat >expect <<-EOF &&
97 To <URL/of/upstream.git>
98 ! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
99 Done
100 EOF
101 test_cmp expect actual &&
102 - grep "remote: fatal: die with the --die-write-version option" out &&
103 - grep "remote: error: fail to negotiate version with proc-receive hook" out &&
102 + grep "remote: fatal: die with the --die-write-version option" out-$test_count &&
103 + grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count &&
104
105 git -C "$upstream" show-ref >out &&
106 make_user_friendly_and_stable_output <out >actual &&
@@ -123,17 +123,17 @@ test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCO
123 test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL/porcelain)" '
124 test_must_fail git -C workbench push --porcelain origin \
125 HEAD:refs/for/main/topic \
126 - >out 2>&1 &&
126 + >out-$test_count 2>&1 &&
127 filter_out_user_friendly_and_stable_output \
128 -e "/^To / { p; n; p; n; p; }" \
129 - <out >actual &&
129 + <out-$test_count >actual &&
130 cat >expect <<-EOF &&
131 To <URL/of/upstream.git>
132 ! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
133 Done
134 EOF
135 test_cmp expect actual &&
136 - grep "remote: fatal: die with the --die-read-commands option" out &&
136 + grep "remote: fatal: die with the --die-read-commands option" out-$test_count &&
137
138 git -C "$upstream" show-ref >out &&
139 make_user_friendly_and_stable_output <out >actual &&
@@ -158,17 +158,17 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $
158 test_must_fail git -C workbench push --porcelain origin \
159 -o reviewers=user1,user2 \
160 HEAD:refs/for/main/topic \
161 - >out 2>&1 &&
161 + >out-$test_count 2>&1 &&
162 filter_out_user_friendly_and_stable_output \
163 -e "/^To / { p; n; p; n; p; }" \
164 - <out >actual &&
164 + <out-$test_count >actual &&
165 cat >expect <<-EOF &&
166 To <URL/of/upstream.git>
167 ! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
168 Done
169 EOF
170 test_cmp expect actual &&
171 - grep "remote: fatal: die with the --die-read-push-options option" out &&
171 + grep "remote: fatal: die with the --die-read-push-options option" out-$test_count &&
172
173 git -C "$upstream" show-ref >out &&
174 make_user_friendly_and_stable_output <out >actual &&
@@ -191,17 +191,17 @@ test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL
191 test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL/porcelain)" '
192 test_must_fail git -C workbench push --porcelain origin \
193 HEAD:refs/for/main/topic \
194 - >out 2>&1 &&
194 + >out-$test_count 2>&1 &&
195 filter_out_user_friendly_and_stable_output \
196 -e "/^To / { p; n; p; n; p; }" \
197 - <out >actual &&
197 + <out-$test_count >actual &&
198 cat >expect <<-EOF &&
199 To <URL/of/upstream.git>
200 ! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
201 Done
202 EOF
203 test_cmp expect actual &&
204 - grep "remote: fatal: die with the --die-write-report option" out &&
204 + grep "remote: fatal: die with the --die-write-report option" out-$test_count &&
205
206 git -C "$upstream" show-ref >out &&
207 make_user_friendly_and_stable_output <out >actual &&
@@ -224,8 +224,8 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" '
224 test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL/porcelain)" '
225 test_must_fail git -C workbench push --porcelain origin \
226 HEAD:refs/heads/next \
227 - HEAD:refs/for/main/topic >out 2>&1 &&
228 - make_user_friendly_and_stable_output <out >actual &&
227 + HEAD:refs/for/main/topic >out-$test_count 2>&1 &&
228 + make_user_friendly_and_stable_output <out-$test_count >actual &&
229 cat >expect <<-EOF &&
230 remote: # pre-receive hook
231 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
@@ -270,8 +270,8 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL/porcelain)" '
270 test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" '
271 test_must_fail git -C workbench push --porcelain origin \
272 HEAD:refs/for/main/topic\
273 - >out 2>&1 &&
274 - make_user_friendly_and_stable_output <out >actual &&
273 + >out-$test_count 2>&1 &&
274 + make_user_friendly_and_stable_output <out-$test_count >actual &&
275 cat >expect <<-EOF &&
276 remote: # pre-receive hook
277 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
@@ -307,8 +307,8 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelai
307 test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL/porcelain)" '
308 test_must_fail git -C workbench push --porcelain origin \
309 HEAD:refs/for/main/topic \
310 - >out 2>&1 &&
311 - make_user_friendly_and_stable_output <out >actual &&
310 + >out-$test_count 2>&1 &&
311 + make_user_friendly_and_stable_output <out-$test_count >actual &&
312 cat >expect <<-EOF &&
313 remote: # pre-receive hook
314 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0020-report-ng.sh
+4 -4
@@ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL)" '
12 test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" '
13 test_must_fail git -C workbench push origin \
14 HEAD:refs/for/main/topic \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 remote: # pre-receive hook
19 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
@@ -46,8 +46,8 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" '
46 test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL)" '
47 test_must_fail git -C workbench push origin \
48 HEAD:refs/for/main/topic \
49 - >out 2>&1 &&
50 - make_user_friendly_and_stable_output <out >actual &&
49 + >out-$test_count 2>&1 &&
50 + make_user_friendly_and_stable_output <out-$test_count >actual &&
51 cat >expect <<-EOF &&
52 remote: # pre-receive hook
53 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0021-report-ng--porcelain.sh
+4 -4
@@ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL/porcelai
12 test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/porcelain)" '
13 test_must_fail git -C workbench push --porcelain origin \
14 HEAD:refs/for/main/topic \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 remote: # pre-receive hook
19 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
@@ -47,8 +47,8 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)"
47 test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL/porcelain)" '
48 test_must_fail git -C workbench push --porcelain origin \
49 HEAD:refs/for/main/topic \
50 - >out 2>&1 &&
51 - make_user_friendly_and_stable_output <out >actual &&
50 + >out-$test_count 2>&1 &&
51 + make_user_friendly_and_stable_output <out-$test_count >actual &&
52 cat >expect <<-EOF &&
53 remote: # pre-receive hook
54 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0022-report-unexpect-ref.sh
+2 -2
@@ -13,8 +13,8 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL)" '
13 test_must_fail git -C workbench push origin \
14 $B:refs/heads/main \
15 HEAD:refs/for/main/topic \
16 - >out 2>&1 &&
17 - make_user_friendly_and_stable_output <out >actual &&
16 + >out-$test_count 2>&1 &&
17 + make_user_friendly_and_stable_output <out-$test_count >actual &&
18 cat >expect <<-EOF &&
19 remote: # pre-receive hook
20 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
t/t5411/test-0023-report-unexpect-ref--porcelain.sh
+2 -2
@@ -13,8 +13,8 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL/porcelain)"
13 test_must_fail git -C workbench push --porcelain origin \
14 $B:refs/heads/main \
15 HEAD:refs/for/main/topic \
16 - >out 2>&1 &&
17 - make_user_friendly_and_stable_output <out >actual &&
16 + >out-$test_count 2>&1 &&
17 + make_user_friendly_and_stable_output <out-$test_count >actual &&
18 cat >expect <<-EOF &&
19 remote: # pre-receive hook
20 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
t/t5411/test-0024-report-unknown-ref.sh
+2 -2
@@ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" '
12 test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" '
13 test_must_fail git -C workbench push origin \
14 HEAD:refs/for/a/b/c/my/topic \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 remote: # pre-receive hook
19 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
t/t5411/test-0025-report-unknown-ref--porcelain.sh
+2 -2
@@ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelai
12 test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain)" '
13 test_must_fail git -C workbench push --porcelain origin \
14 HEAD:refs/for/a/b/c/my/topic \
15 - >out 2>&1 &&
16 - make_user_friendly_and_stable_output <out >actual &&
15 + >out-$test_count 2>&1 &&
16 + make_user_friendly_and_stable_output <out-$test_count >actual &&
17 cat >expect <<-EOF &&
18 remote: # pre-receive hook
19 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
t/t5411/test-0026-push-options.sh
+2 -2
@@ -16,8 +16,8 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL)" '
16 -o reviewer=user1 \
17 origin \
18 HEAD:refs/for/main/topic \
19 - >out 2>&1 &&
20 - make_user_friendly_and_stable_output <out >actual &&
19 + >out-$test_count 2>&1 &&
20 + make_user_friendly_and_stable_output <out-$test_count >actual &&
21 test_i18ngrep "fatal: the receiving end does not support push options" \
22 actual &&
23 git -C "$upstream" show-ref >out &&
t/t5411/test-0027-push-options--porcelain.sh
+2 -2
@@ -17,8 +17,8 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL/porcelain
17 -o reviewer=user1 \
18 origin \
19 HEAD:refs/for/main/topic \
20 - >out 2>&1 &&
21 - make_user_friendly_and_stable_output <out >actual &&
20 + >out-$test_count 2>&1 &&
21 + make_user_friendly_and_stable_output <out-$test_count >actual &&
22 test_i18ngrep "fatal: the receiving end does not support push options" \
23 actual &&
24 git -C "$upstream" show-ref >out &&
t/t5411/test-0032-report-with-options.sh
+2 -2
@@ -13,8 +13,8 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO
13 test_expect_success "proc-receive: report option without matching ok ($PROTOCOL)" '
14 test_must_fail git -C workbench push origin \
15 HEAD:refs/for/main/topic \
16 - >out 2>&1 &&
17 - make_user_friendly_and_stable_output <out >actual &&
16 + >out-$test_count 2>&1 &&
17 + make_user_friendly_and_stable_output <out-$test_count >actual &&
18 cat >expect <<-EOF &&
19 remote: # pre-receive hook
20 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0033-report-with-options--porcelain.sh
+2 -2
@@ -13,8 +13,8 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO
13 test_expect_success "proc-receive: report option without matching ok ($PROTOCOL/porcelain)" '
14 test_must_fail git -C workbench push --porcelain origin \
15 HEAD:refs/for/main/topic \
16 - >out 2>&1 &&
17 - make_user_friendly_and_stable_output <out >actual &&
16 + >out-$test_count 2>&1 &&
17 + make_user_friendly_and_stable_output <out-$test_count >actual &&
18 cat >expect <<-EOF &&
19 remote: # pre-receive hook
20 remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
t/t5411/test-0038-report-mixed-refs.sh
+2 -2
@@ -24,8 +24,8 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL)" '
24 HEAD:refs/heads/foo \
25 HEAD:refs/for/main/topic \
26 HEAD:refs/for/next/topic3 \
27 - >out 2>&1 &&
28 - make_user_friendly_and_stable_output <out >actual &&
27 + >out-$test_count 2>&1 &&
28 + make_user_friendly_and_stable_output <out-$test_count >actual &&
29 cat >expect <<-EOF &&
30 remote: # pre-receive hook
31 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
t/t5411/test-0039-report-mixed-refs--porcelain.sh
+2 -2
@@ -24,8 +24,8 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL/porcel
24 HEAD:refs/heads/foo \
25 HEAD:refs/for/main/topic \
26 HEAD:refs/for/next/topic3 \
27 - >out 2>&1 &&
28 - make_user_friendly_and_stable_output <out >actual &&
27 + >out-$test_count 2>&1 &&
28 + make_user_friendly_and_stable_output <out-$test_count >actual &&
29 cat >expect <<-EOF &&
30 remote: # pre-receive hook
31 remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main