]> Dogcows Code - chaz/tar/blobdiff - tests/remfiles01.at
Testsuite fix.
[chaz/tar] / tests / remfiles01.at
index 8a668a7dea5eaaa348e50b1ad27ab2fc0d85d8eb..1fb0fadc547d67c91974af11a2e56d343d79a1ad 100644 (file)
@@ -30,7 +30,9 @@ AT_KEYWORDS([create remove-files remfiles01 gzip])
 
 unset TAR_OPTIONS
 AT_CHECK([
+AT_UNPRIVILEGED_PREREQ
 AT_GZIP_PREREQ
+AT_SIGPIPE_PREREQ
 AT_SORT_PREREQ
 
 mkdir dir
@@ -40,11 +42,24 @@ chmod 0 a
 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
This page took 0.022961 seconds and 4 git commands to generate.