aboutsummaryrefslogtreecommitdiff
path: root/tests/setstat04.at
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-02-12 23:07:25 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2010-02-12 23:07:25 +0200
commit5864f3267f4c1c002a5f405477c113a093f3b5bd (patch)
tree4cd7bd51f188825116ff0316e22fd779e9c722f9 /tests/setstat04.at
parent7c5fda3fbada772e53e0c347621921a8111738c0 (diff)
downloadcpio-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.at50
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
+
+

Return to:

Send suggestions and report system problems to the System administrator.