* src/create.c (dump_hard_link): Always look up in the link table if remove_files_option is set. Patch suggested by Theodore Ts'o <tytso@mit.edu>. (check_links): Remove extra newline from the warning message. * tests/link02.at, tests/link03.at: New testcases. * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at * tests/testsuite.at: Include link02.at and link03.at
56 lines
1.7 KiB
Plaintext
56 lines
1.7 KiB
Plaintext
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
|
|
|
# Test suite for GNU tar.
|
|
# Copyright (C) 2004, 2007, 2009 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.
|
|
|
|
# Problem: If a member with link count > 2 was stored in the archive twice,
|
|
# previous versions of tar were not able to extract it, since they
|
|
# were trying to link the file to itself, which always failed and
|
|
# lead to removing the already extracted copy. This script tests
|
|
# the workaround by Paul Eggert that leaves the extracted copy
|
|
# untouched.
|
|
#
|
|
# Reported by: Toby Peterson <toby@apple.com>
|
|
#
|
|
# References: <2330D503-D20A-11D8-A0CF-00039391EECE@apple.com>
|
|
# http://lists.gnu.org/archive/html/bug-tar/2004-07/msg00009.html
|
|
|
|
AT_SETUP([link count gt 2])
|
|
AT_KEYWORDS([hardlinks link01])
|
|
|
|
AT_TAR_CHECK([
|
|
mkdir directory
|
|
mkdir directory/test1
|
|
mkdir directory/test2
|
|
|
|
echo TEST > directory/test1/test.txt
|
|
ln directory/test1/test.txt directory/test2/test.txt || AT_SKIP_TEST
|
|
|
|
tar cf archive directory/test1/test.txt directory/test1/test.txt
|
|
|
|
rm -r directory
|
|
tar xf archive
|
|
|
|
ls directory/test1
|
|
],
|
|
[0],
|
|
[test.txt
|
|
])
|
|
|
|
AT_CLEANUP
|