diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-02-12 23:07:25 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-02-12 23:07:25 +0200 |
commit | 5864f3267f4c1c002a5f405477c113a093f3b5bd (patch) | |
tree | 4cd7bd51f188825116ff0316e22fd779e9c722f9 /tests/setstat04.at | |
parent | 7c5fda3fbada772e53e0c347621921a8111738c0 (diff) | |
download | cpio-5864f3267f4c1c002a5f405477c113a093f3b5bd.tar.gz cpio-5864f3267f4c1c002a5f405477c113a093f3b5bd.tar.bz2 |
Use same code when creating directories in copy-in and copy-pass modes.
* src/copyin.c (copyin_mkdir): Remove.
(copyin_directory): Remove.
(copyin_file): Use cpio_create_dir instead
of copyin_directory.
* src/copypass.c (process_copy_pass): Use cpio_create_dir
to create directories.
* src/extern.h (delay_cpio_set_stat): New proto.
* src/util.c (delay_cpio_set_stat): New function.
(delay_set_stat): Rewrite as a wrapper to the above.
(cpio_create_dir): New function.
* tests/setstat01.at: Fix testcase.
* tests/setstat02.at: Likewise.
* tests/setstat03.at: New testcase.
* tests/setstat04.at: New testcase.
* tests/setstat05.at: New testcase.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.
Diffstat (limited to 'tests/setstat04.at')
-rw-r--r-- | tests/setstat04.at | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/setstat04.at b/tests/setstat04.at new file mode 100644 index 0000000..a4e4eb3 --- /dev/null +++ b/tests/setstat04.at @@ -0,0 +1,50 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009, 2010 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([delayed setstat (umask)]) +AT_KEYWORDS([setstat debian=458079 setstat04]) + +# Description: Cpio versions up to 2.10 failed to restore directory +# permissions, if the directory was already present on dist (e.g. when +# using find . -depth). +# This test case verifies whether umask settings do not affect directory +# permissions. +# +# References: +# <20090620185721.GA18708@scru.org> +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458079 +# +# See also: setstat02, setstat03, setstat05 + +AT_CHECK([ +umask 022 +mkdir dir +echo "test file" > dir/file +mkdir newdir +find dir -depth | cpio -o --quiet > archive +mv dir old + +umask 077 +cpio -id --quiet < archive +genfile --stat=mode.777 dir +], +[0], +[755 +]) + +AT_CLEANUP + + |