summaryrefslogtreecommitdiff
path: root/testsuite/cp
diff options
context:
space:
mode:
authorDenis Vlasenko2008-03-28 17:49:31 +0000
committerDenis Vlasenko2008-03-28 17:49:31 +0000
commitb9ad75fa602dd72b042b2ea08ce86da50746ab30 (patch)
tree19445163e0f30e8015eeafbcad091309407ab050 /testsuite/cp
parenta38ba59cc3e78db0234cf4c224de6749d8ce759d (diff)
downloadbusybox-b9ad75fa602dd72b042b2ea08ce86da50746ab30.zip
busybox-b9ad75fa602dd72b042b2ea08ce86da50746ab30.tar.gz
copy_file: handle "cp /dev/foo file" (almost) compatibly to coreutils.
(almost because we do not copy mode, which is probably wasn't intended). +61 bytes.
Diffstat (limited to 'testsuite/cp')
-rw-r--r--testsuite/cp/cp-a-files-to-dir3
-rw-r--r--testsuite/cp/cp-dev-file2
-rw-r--r--testsuite/cp/cp-does-not-copy-unreadable-file7
3 files changed, 10 insertions, 2 deletions
diff --git a/testsuite/cp/cp-a-files-to-dir b/testsuite/cp/cp-a-files-to-dir
index 39f8f81..abdbdf7 100644
--- a/testsuite/cp/cp-a-files-to-dir
+++ b/testsuite/cp/cp-a-files-to-dir
@@ -2,7 +2,8 @@ echo file number one > file1
echo file number two > file2
ln -s file2 link1
mkdir dir1
-touch --date='Sat Jan 29 21:24:08 PST 2000' dir1/file3
+# why???
+#touch --date='Sat Jan 29 21:24:08 PST 2000' dir1/file3
mkdir there
busybox cp -a file1 file2 link1 dir1 there
test -f there/file1
diff --git a/testsuite/cp/cp-dev-file b/testsuite/cp/cp-dev-file
new file mode 100644
index 0000000..055f0d9
--- /dev/null
+++ b/testsuite/cp/cp-dev-file
@@ -0,0 +1,2 @@
+busybox cp /dev/null foo
+test -f foo
diff --git a/testsuite/cp/cp-does-not-copy-unreadable-file b/testsuite/cp/cp-does-not-copy-unreadable-file
index ce11bfa..e17e8e6 100644
--- a/testsuite/cp/cp-does-not-copy-unreadable-file
+++ b/testsuite/cp/cp-does-not-copy-unreadable-file
@@ -1,6 +1,11 @@
touch foo
chmod a-r foo
set +e
-busybox cp foo bar
+if test `id -u` = 0; then
+ # run as user with nonzero uid
+ setuidgid 1 busybox cp foo bar
+else
+ busybox cp foo bar
+fi
set -e
test ! -f bar