re-mark 1.29b-2 as not yet uploaded (merge madness!)
[debian/tar] / tests / onetop05.at
1 # Process this file with autom4te to create testsuite. -*- Autotest -*-
2 #
3 # Test suite for GNU tar.
4 # Copyright 2015-2016 Free Software Foundation, Inc.
5 #
6 # This file is part of GNU tar.
7 #
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.
12 #
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.
17 #
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/>.
20 #
21 AT_SETUP([tar --one-top-level restoring permissions])
22 AT_KEYWORDS([extract onetop onetop05])
23
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.
27
28 AT_TAR_CHECK([
29 orig_mode=3702
30 mkdir d
31 chmod $orig_mode d
32
33 mode=$(genfile --stat=mode.7777 d)
34 test $mode = $orig_mode || AT_SKIP_TEST
35
36 genfile --file d/file
37 tar -cf d.tar -C d .
38 rm -rf d
39
40 (mkdir d1
41 chmod 700 d1
42 cd d1
43 tar --one-top-level=top -xpf ../d.tar)
44 mode=$(genfile --stat=mode.777 d1)
45 if test 700 = $mode; then
46     echo "CWD: OK"
47 else
48     echo "CWD: mode changed: 700 != $mode"
49 fi
50  
51 mkdir d2
52 chmod 700 d2
53 tar -C d2 --one-top-level=top -xpf d.tar
54 mode=$(genfile --stat=mode.777 d2)
55 if test 700 = $mode; then
56     echo "DIR: OK"
57 else
58     echo "DIR: mode changed: 700 != $mode"
59 fi
60 mode=$(genfile --stat=mode.7777 d2/top)
61 if test $mode = $orig_mode; then
62     echo "TOP: OK"
63 else    
64     echo "TOP: mode changed: $orig_mode != $mode"
65 fi
66 ],
67 [0],
68 [CWD: OK
69 DIR: OK
70 TOP: OK
71 ])
72
73 AT_CLEANUP