Files
tar/tests/rename03.at
Sergey Poznyakoff b94eed6d03 Version 1.20.
* configure.ac: Raise version number to 1.20
* src/compare.c (diff_dumpdir): const.
* src/common.h (dumpdir_t,dumpdir_iter_t): New data types.
(dumpdir_create0,dumpdir_create,dumpdir_free,dumpdir_locate)
(dumpdir_first,dumpdir_next): New functions.
* src/incremen.c (dumpdir_create0,dumpdir_create,dumpdir_free)
(dumpdir_first,dumpdir_next): New functions.
(dumpdir_locate): Rewrite using binary search.
(struct directory): Change members char *contents, *icontents to
struct dumpdir *dump, *idump. All references updated.
(note_directory): Last arg is const.
* src/names.c (add_hierarchy_to_namelist): buffer is const.
* tests/incr03.at, tests/incr04.at, tests/rename02.at,
tests/rename03.at: Insert calls to sleep between creation of files
and adding them to the archive.
2008-05-05 21:30:57 +00:00

129 lines
2.4 KiB
Plaintext

# Process this file with autom4te to create testsuite. -*- Autotest -*-
# Test suite for GNU tar.
# Copyright (C) 2006, 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: Handling of cyclic renames in incremental archives.
AT_SETUP([cyclic renames])
AT_KEYWORDS([incremental rename rename03 cyclic-rename])
AT_TAR_CHECK([
AT_SORT_PREREQ
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)
echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
],
[0],
[First dump
foo/
foo/a/
foo/b/
foo/c/
foo/file1
foo/file2
foo/a/filea
foo/b/fileb
foo/c/filec
Second dump
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 1
foo
foo/a
foo/a/filea
foo/b
foo/b/fileb
foo/c
foo/c/filec
foo/file1
foo/file2
End directory listing 1
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 2
foo
foo/a
foo/a/filec
foo/b
foo/b/filea
foo/c
foo/c/fileb
foo/file1
foo/file2
End directory listing 2
],
[First dump
tar: foo/a: Directory is new
tar: foo/b: Directory is new
tar: foo/c: Directory is new
Second dump
tar: foo/a: Directory has been renamed from `foo/c'
tar: foo/b: Directory has been renamed from `foo/a'
tar: foo/c: Directory has been renamed from `foo/b'
],
[],[],[gnu, oldgnu, posix])
AT_CLEANUP
# End of rename03.at