X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=tests%2Fremfiles01.at;h=1fb0fadc547d67c91974af11a2e56d343d79a1ad;hb=bc973a082dddfe8c66baf7352df0433f83479ce1;hp=86b5c032e8c996f7e279f187619380a1a18923de;hpb=b414e25de8ca49d7567a92c203d431383ec57c83;p=debian%2Ftar diff --git a/tests/remfiles01.at b/tests/remfiles01.at index 86b5c032..1fb0fadc 100644 --- a/tests/remfiles01.at +++ b/tests/remfiles01.at @@ -32,6 +32,7 @@ unset TAR_OPTIONS AT_CHECK([ AT_UNPRIVILEGED_PREREQ AT_GZIP_PREREQ +AT_SIGPIPE_PREREQ AT_SORT_PREREQ mkdir dir @@ -47,14 +48,16 @@ mkdir c # or # tar: Child returned status 2 -tar -c -f a -z --remove-files b c 2>err +# Discard diagnostics that some shells generate about broken pipes, +# and discard all of tar's diagnostics except for the ones saying "(child)". +# Gzip's exit code is propagated to the shell. Usually it is 141. +# Convert all non-zero exits to 2 to make it predictable. +(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null EC=$? sed -n '/(child)/p' err >&2 rm err find . | sort -# Gzip exit code is propagated to the shell. Usually it is -# 141. We convert all non-zero exits to 2 to make it predictable. -test $EC && exit 2 +exit $EC ], [2], [.