aboutsummaryrefslogtreecommitdiff
blob: a47012dd760f2af05d32aae250f8c8ef23d798bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash

. ../init.sh || exit 1

set -e

_m=${ab}/m
mktmpdir

# check mkdir
m="${_m} m"
for d in a a/ a/b a/b/ a/b/c a/b/c/ ; do
	_d=${d}
	$m ${d}

	rmdir ${d}
	d=${d%/}
	while [[ ${d} == */* ]] ; do
		d=${d%/*}
		rmdir ${d}
	done

	tpass "empty ${_d}"
done

for d in a a/ a/b a/b/ a/b/c a/b/c/ ; do
	_d=${d}
	mkdir -p ${d}
	$m ${d}

	rmdir ${d}
	d=${d%/}
	while [[ ${d} == */* ]] ; do
		d=${d%/*}
		rmdir ${d}
	done

	tpass "exist ${_d}"
done

# check rm_rf
m="${_m} rm"

mkdir -p a/b/c/d
$m a/b/
rmdir a
tpass "rm a/b/"

mkdir -p a/b/c/d
$m a/b
rmdir a
tpass "rm a/b"

mkdir -p a/b/c/d
cd a
$m . || : # ignore EBUSY failure
cd ..
rmdir a
tpass "rm ."

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 ]
tpass "rm a tree"

cleantmpdir

end