Files
tar/tests/truncate.at
Sergey Poznyakoff e7cd377f78 Implement the "wait" checkpoint action.
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.
2018-12-28 13:27:02 +02:00

54 lines
1.6 KiB
Plaintext

# Process this file with autom4te to create testsuite. -*- Autotest -*-
# Test suite for GNU tar.
# Copyright 2005, 2007, 2013-2014, 2016-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/>.
# Tar 1.15.1 incorrectly padded archive members that were truncated during
# archiving.
# References: <1115437005.8530.644529@goedel.fjf.gnu.de>
# http://lists.gnu.org/archive/html/bug-tar/2005-05/msg00008.html
#
# The test case is based on the script by Frank Heckenbach <frank@g-n-u.de>
# Additionally, the test verifies if tar exits with code 1 (file differs).
AT_SETUP([truncate])
AT_KEYWORDS([truncate filechange])
AT_TAR_CHECK([
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d'],
[0],
[foo
baz
Exit status: 1
separator
foo
baz
],
[tar: foo: File shrank by 5120 bytes; padding with zeros
])
AT_CLEANUP