@matheusbsbs / matheus-bagliano / commits / 2cd6e1d552
Fork 0

t5534: split stdout and stderr redirection

On atomic pushing failure with GnuPG, we expect a very specific output in stdout due to `--porcelain` switch. On such failure, we also write down some helpful hint into stderr in order to help user understand what happens and how to continue from those failures. On a lot of system, those hint (in stderr) will be flushed first, then those messages in stdout will be flushed. In such systems, the current test code is fine as is. However, we don't have such guarantee, (at least) there're some real systems that writes those stream interleaved. On such systems, we may see the stderr stream written in the middle of stdout stream. Let's split those stream redirection. By splitting those stream, the output stream will contain exactly what we want to compare, thus, saving us a "sed" invocation. While we're at it, change the `test_i18ncmp` to `test_cmp` because we will never translate those messages (because of `--porcelain`). Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Đoàn Trần Công Danh committed Oct 6, 2020 at 22:08 UTC 2cd6e1d552e0f8d00c79821084f4b407a8b59f69
1 file changed +3 -4
t/t5534-push-signed.sh
+3 -4
@@ -282,10 +282,9 @@ test_expect_success GPG 'failed atomic push does not execute GPG' '
282 EOF
283 test_must_fail env PATH="$TRASH_DIRECTORY:$PATH" git push \
284 --signed --atomic --porcelain \
285 - dst noop ff noff >out 2>&1 &&
285 + dst noop ff noff >out 2>err &&
286
287 - test_i18ngrep ! "gpg failed to sign" out &&
288 - sed -n -e "/^To dst/,$ p" out >actual &&
287 + test_i18ngrep ! "gpg failed to sign" err &&
288 cat >expect <<-EOF &&
289 To dst
290 = refs/heads/noop:refs/heads/noop [up to date]
@@ -293,7 +292,7 @@ test_expect_success GPG 'failed atomic push does not execute GPG' '
292 ! refs/heads/noff:refs/heads/noff [rejected] (non-fast-forward)
293 Done
294 EOF
296 - test_i18ncmp expect actual
295 + test_cmp expect out
296 '
297
298 test_done