aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2010-09-05 16:16:46 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2010-09-05 16:16:46 +0200
commit8d789e419732e860cf89883c0565ff496b3291ee (patch)
tree15840221629b181993caa13977cd91ce776cd184
parent6957d79bd67efce80f9dec4e1936ea605efb7263 (diff)
downloadbusybox-8d789e419732e860cf89883c0565ff496b3291ee.tar.gz
tar: add a test for extraction of read-only directory
Signed-off-by: Dan Fandrich <dan@coneharvesters.com> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
-rwxr-xr-xtestsuite/tar.tests25
1 files changed, 25 insertions, 0 deletions
diff --git a/testsuite/tar.tests b/testsuite/tar.tests
index c2d3b3df3..dd502c23d 100755
--- a/testsuite/tar.tests
+++ b/testsuite/tar.tests
@@ -129,6 +129,31 @@ Ok
"Ok\n" ""
SKIP=
+# Needs to be run under non-root for meaningful test
+optional FEATURE_TAR_CREATE
+testing "tar writing into read-only dir" '\
+rm -rf input_* test.tar 2>/dev/null
+mkdir input_dir
+>input_dir/input_file
+chmod 550 input_dir
+tar cf test.tar input_dir
+tar tvf test.tar | sed "s/.*[0-9] input/input/"
+chmod 770 input_dir
+rm -rf input_*
+tar xf test.tar 2>&1
+echo Ok: $?
+ls -l input_dir/* . | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"
+chmod 770 input_dir
+' "\
+input_dir/
+input_dir/input_file
+Ok: 0
+-rw-r--r-- input_dir/input_file
+dr-xr-x--- input_dir
+" \
+"" ""
+SKIP=
+
cd .. && rm -rf tar.tempdir || exit 1
exit $FAILCOUNT