unset TAR_OPTIONS
AT_CHECK([
+AT_UNPRIVILEGED_PREREQ
AT_GZIP_PREREQ
+AT_SIGPIPE_PREREQ
AT_SORT_PREREQ
mkdir dir
genfile --file b
mkdir c
-tar -c -f a -z --remove-files b c
+# Depending on when the SIGPIPE gets delivered, the invocation below
+# may finish with either
+# tar: a: Cannot write: Broken pipe
+# or
+# tar: Child returned status 2
+# 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
+exit $EC
],
-[0],
+[2],
[.
./a
./b