X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=tests%2Fremfiles01.at;h=1fb0fadc547d67c91974af11a2e56d343d79a1ad;hb=ca808bf8a20219b556ba0bd829d25b21ba81ab20;hp=86b5c032e8c996f7e279f187619380a1a18923de;hpb=de7372b23c3da92fbfaea2d1ac592f0b2ba87914;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], [.