This action instructs tar to pause until given signal is delivered. The newer genfile tool uses this action for communication between genfile and tar in exec mode. This eliminates race conitions and speeds up the tests based on exec mode. * doc/tar.texi: Document changes. * paxutils: Upgrade. * src/checkpoint.c: Implement the wait action. * src/common.h (decode_signal): New proto. * src/tar.c (decode_signal): New function. (set_stat_signal): Rewrite. * tests/dirrem01.at: Adjust genfile and tar command line arguments to use the new feature. * tests/dirrem02.at: Likewise. * tests/filerem01.at: Likewise. * tests/filerem02.at: Likewise. * tests/grow.at: Likewise. * tests/sptrcreat.at: Likewise. * tests/sptrdiff00.at: Likewise. * tests/sptrdiff01.at: Likewise. * tests/truncate.at: Likewise.
53 lines
1.6 KiB
Plaintext
53 lines
1.6 KiB
Plaintext
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
|
#
|
|
# Test suite for GNU tar.
|
|
# Copyright 2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU tar.
|
|
#
|
|
# GNU tar 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 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# GNU tar 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/>.
|
|
|
|
# While fixing CVE-2018-20482 (see sptrcreat.at) it has been discovered
|
|
# that similar bug exists in file checking code (tar d).
|
|
# This test case checks if tar correctly handles a short read condition
|
|
# appearing in check_data_region.
|
|
|
|
AT_SETUP([file truncated in data region while comparing])
|
|
AT_KEYWORDS([truncate filechange sparse sptr sptrdiff diff])
|
|
|
|
# This triggers short read in check_data_region.
|
|
AT_TAR_CHECK([
|
|
genfile --sparse --block-size=1024 --file foo \
|
|
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ
|
|
genfile --file baz
|
|
echo creating
|
|
tar --sparse -vcf bar foo baz
|
|
echo comparing
|
|
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
|
|
tar --sparse -vdf bar
|
|
],
|
|
[1],
|
|
[creating
|
|
foo
|
|
baz
|
|
comparing
|
|
foo
|
|
foo: Size differs
|
|
baz
|
|
],
|
|
[],
|
|
[],[],[posix, gnu, oldgnu])
|
|
|
|
AT_CLEANUP
|