1 # Process this file with autom4te to create testsuite. -*- Autotest -*-
3 # Test suite for GNU tar.
4 # Copyright 2015-2019 Free Software Foundation, Inc.
6 # This file is part of GNU tar.
8 # GNU tar is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 3 of the License, or
11 # (at your option) any later version.
13 # GNU tar is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 AT_SETUP([tar --one-top-level restoring permissions])
22 AT_KEYWORDS([extract onetop onetop05 chdir])
24 # When extracting an archive that contains ./ with the --one-top-level option,
25 # the mode and ownership of ./ would be incorrectly applied to the current
26 # working directory, instead of the requested top-level directory.
33 mode=$(genfile --stat=mode.7777 d)
34 test $mode = $orig_mode || AT_SKIP_TEST
43 tar --one-top-level=top -xpf ../d.tar)
44 mode=$(genfile --stat=mode.777 d1)
45 if test 700 = $mode; then
48 echo "CWD: mode changed: 700 != $mode"
53 tar -C d2 --one-top-level=top -xpf d.tar
54 mode=$(genfile --stat=mode.777 d2)
55 if test 700 = $mode; then
58 echo "DIR: mode changed: 700 != $mode"
60 mode=$(genfile --stat=mode.7777 d2/top)
61 if test $mode = $orig_mode; then
64 echo "TOP: mode changed: $orig_mode != $mode"