Files
tar/tests/backup01.at
Sergey Poznyakoff 755c246588 Fix backup handling and restoring file modes of existing directories
* NEWS, THANKS: Update
* src/extract.c (extract_dir): reset status to 0 if the
directory already exists.
* src/misc.c (maybe_backup_file): Assign before_backup_name
and clear after_backup_name before checking if we really need
to backup the file.
* tests/backup01.at: New testcase.
* tests/extrac08.at: New testcase.
* tests/Makefile.am, tests/testsuite.at: Add extrac08.at and
backup01.at
2009-08-05 10:38:50 +03:00

49 lines
1.6 KiB
Plaintext

# Process this file with autom4te to create testsuite. -*- Autotest -*-
# Test suite for GNU tar.
# Copyright (C) 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.
# Description:
# When extracting, tar (<1.22) sometimes renamed a backup back to the
# original name (overwriting the newly-extracted file) for no good reason.
#
# Reported by: Carl Worth <cworth@cworth.org>,
# Eric Lammerts <eric@lammerts.org>
#
# References: <1249419998.4905.84.camel@yoom.home.cworth.org>
# http://lists.gnu.org/archive/html/bug-tar/2009-08/msg00005.html
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508199
#
AT_SETUP([extracting existing dir with --backup])
AT_KEYWORDS([extract backup backup01])
AT_TAR_CHECK([
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup
],
[0],
[dir1/
dir1/file1
Renaming `dir1/file1' to `dir1/file1~'
dir2/
])
AT_CLEANUP