This fixes some test failures recently introduced by gnulib updates prompted by recent changes to the GNU coding standards, which now advise to use quotes 'like this' or "like this" rather than `like this'. * NEWS: Document this. * README, README-hacking, doc/Makefile.am, scripts/backup.in: * scripts/backup.sh.in, scripts/dump-remind.in: * src/buffer.c, src/checkpoint.c, src/create.c, src/incremen.c: * src/misc.c, src/names.c, src/sparse.c, src/transform.c: * tests/incr02.at, tests/incremental.at, tests/multiv08.at: * tests/sparse04.at, tests/star/README, tests/update01.at: Quote 'like this' in comments. * src/tar.h: Quote "like this" in comments, when quoting English phrases rather than code. * configure.ac: * scripts/xsparse.c (get_var, read_xheader, main): * src/compare.c (diff_archive): * src/extract.c (prepare_to_extract): * src/tar.c (request_stdin, tar_set_quoting_style, doc, options) (set_subcommand_option, report_textual_dates, parse_opt) (decode_options, main): * src/xheader.c (decx): Quote 'like this' in diagnostics. * doc/tar.texi (list, warnings, override) (Selecting Archive Members, quoting styles, after, hard links) (Sparse Recovery, Multi-Volume Archives, label): Adjust documentation to match new output. * tests/backup01.at, tests/incr01.at, tests/incr04.at: * tests/label04.at, tests/label05.at, tests/link03.at: * tests/listed02.at, tests/multiv03.at, tests/multiv05.at: * tests/rename01.at, tests/rename02.at, tests/rename03.at: * tests/volume.at: Adjust tests to match new quoting behavior.
78 lines
2.4 KiB
Plaintext
78 lines
2.4 KiB
Plaintext
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
|
|
|
# Test suite for GNU tar.
|
|
# Copyright (C) 2005, 2007 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, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
# 02110-1301, USA.
|
|
|
|
# Description:
|
|
# Restoring of directory modes and timestamps works correctly only
|
|
# if the archive has normal member ordering, i.e. each directory
|
|
# member is immediately followed by members located under that directory.
|
|
# This is not true for incremental archives, where directory members
|
|
# precede the non-directory ones. Due to this, GNU tar up to version 1.15.2
|
|
# failed to correctly restore directory timestamps from an incremental
|
|
# archive if this directory contained some files in it.
|
|
#
|
|
# References: <200511291228.47081.karaman@dssgmbh.de>
|
|
|
|
AT_SETUP([restoring timestamps from incremental])
|
|
AT_KEYWORDS([incremental timestamp restore incr02])
|
|
|
|
AT_TAR_CHECK([
|
|
# Create directory structure
|
|
mkdir dir
|
|
mkdir dir/subdir1
|
|
mkdir dir/subdir2
|
|
genfile --length 10 --file dir/subdir1/file
|
|
|
|
# Save mtime for later comparison
|
|
genfile --stat=mtime dir/subdir1 > ts
|
|
|
|
# Create an archive. Using incremental mode makes sure the
|
|
# archive will have a directory-first member ordering,
|
|
# i.e.:
|
|
# dir/
|
|
# dir/subdir1/
|
|
# dir/subdir2/
|
|
# dir/subdir1/foofile
|
|
#
|
|
# When restoring from this directory structure, 'dir/subdir2/' used to
|
|
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
|
|
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
|
|
# latter clobbered the directory timestamp.
|
|
|
|
tar -cf archive -g db dir
|
|
|
|
# Move away the directory
|
|
mv dir orig
|
|
|
|
# Wait enough time for timestamps to differ in case of failure.
|
|
sleep 5
|
|
|
|
# Restore the directory
|
|
tar -xf archive dir
|
|
|
|
# Check the timestamp
|
|
genfile --stat=mtime dir/subdir1 | diff ts -
|
|
],
|
|
[0],
|
|
[],[],[],[],[gnu, oldgnu, posix])
|
|
|
|
AT_CLEANUP
|
|
|
|
# End of incr02.at
|