regress.sh revision 174657
1#!/bin/sh
2# $FreeBSD: head/tools/regression/bin/mv/regress.sh 174657 2007-12-16 08:11:38Z 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# A part of a test succeeds
92ok()
93{
94	:
95}
96
97# A part of a test fails
98notok()
99{
100	OK=0
101}
102
103# Run all tests locally and across devices
104echo 1..24
105for FS in '' $TMPDIR/testdir/
106do
107	begin 'Rename file'
108	mkf fa
109	mv fa ${FS}fb
110	ckf fa ${FS}fb
111	end
112
113	begin 'Move files into directory'
114	mkf fa
115	mkf fb
116	mkdir -p ${FS}1/2/3
117	mv fa fb ${FS}1/2/3
118	ckf fa ${FS}1/2/3/fa
119	ckf fb ${FS}1/2/3/fb
120	end
121
122	begin 'Move file from directory to file'
123	mkdir -p 1/2/3
124	mkf 1/2/3/fa
125	mv 1/2/3/fa ${FS}fb
126	ckf fa ${FS}fb
127	end
128
129	begin 'Move file from directory to directory'
130	mkdir -p da1/da2/da3
131	mkdir -p ${FS}db1/db2/db3
132	mkf da1/da2/da3/fa
133	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
134	ckf fa ${FS}db1/db2/db3/fb
135	end
136
137	begin 'Rename directory'
138	mkd da
139	mv da ${FS}db
140	ckd da ${FS}db
141	end
142
143	begin 'Move directory to directory name'
144	mkd da1/da2/da3/da
145	mkdir -p ${FS}db1/db2/db3
146	mv da1/da2/da3/da ${FS}db1/db2/db3/db
147	ckd da ${FS}db1/db2/db3/db
148	end
149
150	begin 'Move directory to directory'
151	mkd da1/da2/da3/da
152	mkdir -p ${FS}db1/db2/db3
153	mv da1/da2/da3/da ${FS}db1/db2/db3
154	ckd da ${FS}db1/db2/db3/da
155	end
156
157	begin 'Move directory to existing directory'
158	mkd da1/da2/da3/da
159	mkdir -p ${FS}db1/db2/db3/da
160	mv da1/da2/da3/da ${FS}db1/db2/db3
161	ckd da ${FS}db1/db2/db3/da
162	end
163
164	begin 'Rename fifo'
165	mkp fa
166	mv fa ${FS}fb
167	ckp fa ${FS}fb
168	end
169
170	begin 'Move fifos into directory'
171	mkp fa
172	mkp fb
173	mkdir -p ${FS}1/2/3
174	mv fa fb ${FS}1/2/3
175	ckp fa ${FS}1/2/3/fa
176	ckp fb ${FS}1/2/3/fb
177	end
178
179	begin 'Move fifo from directory to fifo'
180	mkdir -p 1/2/3
181	mkp 1/2/3/fa
182	mv 1/2/3/fa ${FS}fb
183	ckp fa ${FS}fb
184	end
185
186	begin 'Move fifo from directory to directory'
187	mkdir -p da1/da2/da3
188	mkdir -p ${FS}db1/db2/db3
189	mkp da1/da2/da3/fa
190	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
191	ckp fa ${FS}db1/db2/db3/fb
192	end
193done
194