diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-01-28 11:04:20 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2014-01-28 12:35:39 +0200 |
commit | 1689ed43885c8418c29d1365ae3a06450a460830 (patch) | |
tree | 2b7c419bc5c715366a176b6448b8c855f8ce28b2 /tests/onetop02.at | |
parent | 2af87fa2776c8125a587a9b0c2c4fae3bf921ff7 (diff) | |
download | tar-1689ed43885c8418c29d1365ae3a06450a460830.tar.gz |
Improve one-top-level functionality
Make sure the changes become visible with --show-transformed-names.
* src/common.h (strip_compression_suffix): New function.
(one_top_level): Rename to one_top_level_dir. All uses changed.
* src/extract.c (extr_init): Use strip_compression_suffix.
Bail out if unable to determine top-level directory.
(maybe_prepend_name): Remove. All uses removed.
* src/tar.c (options): --one-top-level takes optional argument.
(parse_opt): Handle it.
* src/list.c (enforce_one_top_level): New function.
(transform_stat_info): Call enforce_one_top_level if required.
* src/suffix.c (compression_suffixes): List "tar" (no compression);
terminate with NULL entry.
(find_compression_suffix): New static.
(strip_compression_suffix): New function.
* doc/tar.1: Update.
* doc/tar.texi: Update.
* tests/onetop01.at: New testcase.
* tests/onetop02.at: New testcase.
* tests/onetop03.at: New testcase.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.
Diffstat (limited to 'tests/onetop02.at')
-rw-r--r-- | tests/onetop02.at | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/onetop02.at b/tests/onetop02.at new file mode 100644 index 00000000..454f6928 --- /dev/null +++ b/tests/onetop02.at @@ -0,0 +1,45 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# +# Test suite for GNU tar. +# Copyright 2014 Free Software Foundation, Inc. +# +# This file is part of GNU tar. +# +# GNU tar 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 of the License, or +# (at your option) any later version. +# +# GNU tar 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([tar --one-top-level --show-transformed]) +AT_KEYWORDS([extract onetop onetop02]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ +mkdir a +genfile --file a/b +genfile --file c +tar cf a.tar a c +mkdir out +cd out +tar --one-top-level --show-transformed -v -x -f ../a.tar +find . | sort +], +[0], +[a/ +a/b +a/c +. +./a +./a/b +./a/c +]) + +AT_CLEANUP |