aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-03-02 01:19:27 +0000
committerMike Frysinger <vapier@gentoo.org>2011-03-02 01:19:27 +0000
commit67cb5f88a7c8f2833bf2946c64b400495b83f142 (patch)
tree6a60767bb18dd8d18324e0015ad1e5904cc68807 /tests/mkdir/dotest
parentoptimize a bit, and make sure we dont need a trailing slash for the last dir ... (diff)
downloadportage-utils-67cb5f88a7c8f2833bf2946c64b400495b83f142.tar.gz
portage-utils-67cb5f88a7c8f2833bf2946c64b400495b83f142.tar.bz2
portage-utils-67cb5f88a7c8f2833bf2946c64b400495b83f142.zip
add test for mkdir_p/rm_rf code
Diffstat (limited to 'tests/mkdir/dotest')
-rwxr-xr-xtests/mkdir/dotest65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/mkdir/dotest b/tests/mkdir/dotest
new file mode 100755
index 0000000..4930677
--- /dev/null
+++ b/tests/mkdir/dotest
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+. ../init.sh
+
+set -e
+
+_m=${PWD}/m
+mktmpdir
+
+# check mkdir
+m="${_m} m"
+for d in a a/ a/b a/b/ a/b/c a/b/c/ ; do
+ $m ${d}
+
+ rmdir ${d}
+ d=${d%/}
+ while [[ ${d} == */* ]] ; do
+ d=${d%/*}
+ rmdir ${d}
+ done
+done
+
+for d in a a/ a/b a/b/ a/b/c a/b/c/ ; do
+ mkdir -p ${d}
+ $m ${d}
+
+ rmdir ${d}
+ d=${d%/}
+ while [[ ${d} == */* ]] ; do
+ d=${d%/*}
+ rmdir ${d}
+ done
+done
+
+# check rm_rf
+m="${_m} rm"
+
+mkdir -p a/b/c/d
+$m a/b/
+rmdir a
+
+mkdir -p a/b/c/d
+$m a/b
+rmdir a
+
+mkdir -p a/b/c/d
+cd a
+$m . || : # ignore EBUSY failure
+cd ..
+rmdir a
+
+mkdir -p a/b/c/d
+ln -s . a/b/d
+ln -s c a/b/cc
+ln -s .. a/b/dd
+ln -s x a/b/x
+touch a/b/f
+ln -s ../f a/b/c/f
+$m a
+[ ! -e a ]
+
+cd ..
+rmdir tmp
+
+pass