Fix undesired error exit on receiving SIGPIPE.
* src/tar.c: Do not ignore SIGPIPE. * tests/sigpipe.at: New testcase. * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at * tests/remfiles01.at: Fix error code expectation. * NEWS: Update.
This commit is contained in:
@@ -127,6 +127,7 @@ TESTSUITE_AT = \
|
||||
shortfile.at\
|
||||
shortupd.at\
|
||||
shortrec.at\
|
||||
sigpipe.at\
|
||||
sparse01.at\
|
||||
sparse02.at\
|
||||
sparse03.at\
|
||||
|
||||
@@ -52,7 +52,9 @@ EC=$?
|
||||
sed -n '/(child)/p' err >&2
|
||||
rm err
|
||||
find . | sort
|
||||
exit $EC
|
||||
# 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
|
||||
],
|
||||
[2],
|
||||
[.
|
||||
|
||||
39
tests/sigpipe.at
Normal file
39
tests/sigpipe.at
Normal file
@@ -0,0 +1,39 @@
|
||||
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
||||
|
||||
# Test suite for GNU tar.
|
||||
# Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
AT_SETUP([sigpipe handling])
|
||||
AT_KEYWORDS([sigpipe])
|
||||
|
||||
# Description: Tar 1.23 ignored sigpipe which lead to spurious "write
|
||||
# error" diagnostics when piping output to another programs.
|
||||
# Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
# References: http://lists.gnu.org/archive/html/bug-tar/2010-03/msg00039.html
|
||||
# <20100319184141.GC30047@wo.int.altlinux.org>
|
||||
|
||||
AT_CHECK([
|
||||
genfile --length 2048 --file first
|
||||
genfile --length 2048 --file second
|
||||
genfile --length 2049 --file third
|
||||
|
||||
tar cf archive first second third
|
||||
|
||||
tar tf archive | :
|
||||
],
|
||||
[0])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -231,6 +231,8 @@ m4_include([remfiles01.at])
|
||||
m4_include([remfiles02.at])
|
||||
m4_include([remfiles03.at])
|
||||
|
||||
m4_include([sigpipe.at])
|
||||
|
||||
m4_include([star/gtarfail.at])
|
||||
m4_include([star/gtarfail2.at])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user