legacy_test.sh revision 174658
1#!/bin/sh
2# $FreeBSD: head/tools/regression/bin/mv/regress.sh 174658 2007-12-16 08:25:34Z dds $
3
4# A directory in a device different from that where the tests are run
5TMPDIR=/tmp/regress.$$
6COUNT=0
7
8# Begin an individual test
9begin()
10{
11	COUNT=`expr $COUNT + 1`
12	OK=1
13	if [ -z "$FS" ]
14	then
15		NAME="$1"
16	else
17		NAME="$1 (cross device)"
18	fi
19	rm -rf testdir $TMPDIR/testdir
20	mkdir -p testdir $TMPDIR/testdir
21	cd testdir
22}
23
24# End an individual test
25end()
26{
27	if [ $OK = 1 ]
28	then
29		echo -n 'ok '
30	else
31		echo -n 'not ok '
32	fi
33	echo "$COUNT - $NAME"
34	cd ..
35	rm -rf testdir $TMPDIR/testdir
36}
37
38# Make a file that can later be verified
39mkf()
40{
41	CN=`basename $1`
42	echo "$CN-$CN" >$1
43}
44
45# Verify that the file specified is correct
46ckf()
47{
48	if [ -f $2 ] && echo "$1-$1" | diff -q - $2
49	then
50		ok
51	else
52		notok
53	fi
54}
55
56# Make a fifo that can later be verified
57mkp()
58{
59	mkfifo $1
60}
61
62# Verify that the file specified is correct
63ckp()
64{
65	if [ -p $2 ]
66	then
67		ok
68	else
69		notok
70	fi
71}
72
73# Make a directory that can later be verified
74mkd()
75{
76	CN=`basename $1`
77	mkdir -p $1/"$CN-$CN"
78}
79
80# Verify that the directory specified is correct
81ckd()
82{
83	if [ -d $2/$1-$1 ]
84	then
85		ok
86	else
87		notok
88	fi
89}
90
91# Verify that the specified file does not exist
92# (is not there)
93cknt()
94{
95	if [ -e $1 ]
96	then
97		notok
98	else
99		ok
100	fi
101}
102
103# A part of a test succeeds
104ok()
105{
106	:
107}
108
109# A part of a test fails
110notok()
111{
112	OK=0
113}
114
115# Run all tests locally and across devices
116echo 1..24
117for FS in '' $TMPDIR/testdir/
118do
119	begin 'Rename file'
120	mkf fa
121	mv fa ${FS}fb
122	ckf fa ${FS}fb
123	cknt fa
124	end
125
126	begin 'Move files into directory'
127	mkf fa
128	mkf fb
129	mkdir -p ${FS}1/2/3
130	mv fa fb ${FS}1/2/3
131	ckf fa ${FS}1/2/3/fa
132	ckf fb ${FS}1/2/3/fb
133	cknt fa
134	cknt fb
135	end
136
137	begin 'Move file from directory to file'
138	mkdir -p 1/2/3
139	mkf 1/2/3/fa
140	mv 1/2/3/fa ${FS}fb
141	ckf fa ${FS}fb
142	cknt 1/2/3/fa
143	end
144
145	begin 'Move file from directory to directory'
146	mkdir -p da1/da2/da3
147	mkdir -p ${FS}db1/db2/db3
148	mkf da1/da2/da3/fa
149	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
150	ckf fa ${FS}db1/db2/db3/fb
151	cknt da1/da2/da3/fa
152	end
153
154	begin 'Rename directory'
155	mkd da
156	mv da ${FS}db
157	ckd da ${FS}db
158	cknt da
159	end
160
161	begin 'Move directory to directory name'
162	mkd da1/da2/da3/da
163	mkdir -p ${FS}db1/db2/db3
164	mv da1/da2/da3/da ${FS}db1/db2/db3/db
165	ckd da ${FS}db1/db2/db3/db
166	cknt da1/da2/da3/da
167	end
168
169	begin 'Move directory to directory'
170	mkd da1/da2/da3/da
171	mkdir -p ${FS}db1/db2/db3
172	mv da1/da2/da3/da ${FS}db1/db2/db3
173	ckd da ${FS}db1/db2/db3/da
174	cknt da1/da2/da3/da
175	end
176
177	begin 'Move directory to existing directory'
178	mkd da1/da2/da3/da
179	mkdir -p ${FS}db1/db2/db3/da
180	mv da1/da2/da3/da ${FS}db1/db2/db3
181	ckd da ${FS}db1/db2/db3/da
182	cknt da1/da2/da3/da
183	end
184
185	begin 'Rename fifo'
186	mkp fa
187	mv fa ${FS}fb
188	ckp fa ${FS}fb
189	cknt fa
190	end
191
192	begin 'Move fifos into directory'
193	mkp fa
194	mkp fb
195	mkdir -p ${FS}1/2/3
196	mv fa fb ${FS}1/2/3
197	ckp fa ${FS}1/2/3/fa
198	ckp fb ${FS}1/2/3/fb
199	cknt fa
200	cknt fb
201	end
202
203	begin 'Move fifo from directory to fifo'
204	mkdir -p 1/2/3
205	mkp 1/2/3/fa
206	mv 1/2/3/fa ${FS}fb
207	ckp fa ${FS}fb
208	cknt 1/2/3/fa
209	end
210
211	begin 'Move fifo from directory to directory'
212	mkdir -p da1/da2/da3
213	mkdir -p ${FS}db1/db2/db3
214	mkp da1/da2/da3/fa
215	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
216	ckp fa ${FS}db1/db2/db3/fb
217	cknt da1/da2/da3/fa
218	end
219done
220