* src/common.h (struct name): New member `directory' replaces dir_contents. Rearrange members. (rebase_directory): Change signature. (scan_directory): Change signature. (name_fill_directory) (directory_contents, safe_directory_contents): New prototypes. (append_incremental_renames): Change signature. (replace_prefix): New proto. * src/compare.c (diff_dumpdir): Use directory_contents + scan_directory. * src/create.c * src/incremen.c (replace_prefix): Move to misc.c (rebase_directory): Rewrite. (scan_directory): Return pointer to struct directory. (directory_contents, safe_directory_contents): New functions. (get_directory_contents): Remove. (name_fill_directory): New function. (append_incremental_renames): Rewrite. This also fixes a memory leak. * src/names.c (name_gather, addname): Reflect changes in struct name. (add_hierarchy_to_namelist): Rewrite using name_fill_directory and directory_contents. (rebase_child_list): Update call to rebase_directory. (collect_and_sort_names): Optimize * src/misc.c (replace_prefix): New function. * src/names.c (add_hierarchy_to_namelist): Use new get_directory_contents. * tests/incr05.at: New test case. * tests/incr06.at: New test case. * tests/Makefile.am, test/testsuite.at: Add incr05.at and incr06.at. * doc/Makefile.am (check-options): Improve rule. * doc/tar.texi, NEWS: Update.
50 lines
1.2 KiB
Plaintext
50 lines
1.2 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, see <http://www.gnu.org/licenses/>.
|
|
|
|
AT_SETUP([incremental dumps with -C])
|
|
AT_KEYWORDS([incremental incr05])
|
|
|
|
AT_TAR_CHECK([
|
|
mkdir dir
|
|
mkdir dir/sub
|
|
genfile --file dir/file1
|
|
genfile --file dir/sub/file2
|
|
|
|
dbfile=`pwd`/db
|
|
|
|
echo Level 0
|
|
tar -c -f archive.tar -g $dbfile -C dir -v --warning=no-new-dir .
|
|
|
|
genfile --file dir/file3
|
|
echo Level 1
|
|
tar -c -f archive.tar -g $dbfile -C dir -v --warning=no-new-dir .
|
|
],
|
|
[0],
|
|
[Level 0
|
|
./
|
|
./sub/
|
|
./file1
|
|
./sub/file2
|
|
Level 1
|
|
./
|
|
./sub/
|
|
./file3
|
|
],[],[],[],[gnu, oldgnu, posix])
|
|
|
|
AT_CLEANUP
|