summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authordds <dds@FreeBSD.org>2007-12-16 08:11:38 +0000
committerdds <dds@FreeBSD.org>2007-12-16 08:11:38 +0000
commit9d79823938de2c9eda23d7f0af20ce4db6e2d966 (patch)
tree0b72f2bffd7434a331f46f9075c0dd6f92b62212 /tools
parent1ea3009c60039c13877cebb68b9bcb3cedcb25dd (diff)
downloadFreeBSD-src-9d79823938de2c9eda23d7f0af20ce4db6e2d966.zip
FreeBSD-src-9d79823938de2c9eda23d7f0af20ce4db6e2d966.tar.gz
Regression tests for upcoming makeup of mv.
Case 20 corresponds to PR bin/118367.
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/bin/mv/Makefile4
-rw-r--r--tools/regression/bin/mv/regress.sh193
-rw-r--r--tools/regression/bin/mv/regress.t6
3 files changed, 203 insertions, 0 deletions
diff --git a/tools/regression/bin/mv/Makefile b/tools/regression/bin/mv/Makefile
new file mode 100644
index 0000000..2c9ca59
--- /dev/null
+++ b/tools/regression/bin/mv/Makefile
@@ -0,0 +1,4 @@
+# $FreeBSD$
+
+all:
+ sh regress.sh
diff --git a/tools/regression/bin/mv/regress.sh b/tools/regression/bin/mv/regress.sh
new file mode 100644
index 0000000..f30eda1
--- /dev/null
+++ b/tools/regression/bin/mv/regress.sh
@@ -0,0 +1,193 @@
+#!/bin/sh
+# $FreeBSD$
+
+# A directory in a device different from that where the tests are run
+TMPDIR=/tmp/regress.$$
+COUNT=0
+
+# Begin an individual test
+begin()
+{
+ COUNT=`expr $COUNT + 1`
+ OK=1
+ if [ -z "$FS" ]
+ then
+ NAME="$1"
+ else
+ NAME="$1 (cross device)"
+ fi
+ rm -rf testdir $TMPDIR/testdir
+ mkdir -p testdir $TMPDIR/testdir
+ cd testdir
+}
+
+# End an individual test
+end()
+{
+ if [ $OK = 1 ]
+ then
+ echo -n 'ok '
+ else
+ echo -n 'not ok '
+ fi
+ echo "$COUNT - $NAME"
+ cd ..
+ rm -rf testdir $TMPDIR/testdir
+}
+
+# Make a file that can later be verified
+mkf()
+{
+ CN=`basename $1`
+ echo "$CN-$CN" >$1
+}
+
+# Verify that the file specified is correct
+ckf()
+{
+ if [ -f $2 ] && echo "$1-$1" | diff -q - $2
+ then
+ ok
+ else
+ notok
+ fi
+}
+
+# Make a fifo that can later be verified
+mkp()
+{
+ mkfifo $1
+}
+
+# Verify that the file specified is correct
+ckp()
+{
+ if [ -p $2 ]
+ then
+ ok
+ else
+ notok
+ fi
+}
+
+# Make a directory that can later be verified
+mkd()
+{
+ CN=`basename $1`
+ mkdir -p $1/"$CN-$CN"
+}
+
+# Verify that the directory specified is correct
+ckd()
+{
+ if [ -d $2/$1-$1 ]
+ then
+ ok
+ else
+ notok
+ fi
+}
+
+# A part of a test succeeds
+ok()
+{
+ :
+}
+
+# A part of a test fails
+notok()
+{
+ OK=0
+}
+
+# Run all tests locally and across devices
+echo 1..24
+for FS in '' $TMPDIR/testdir/
+do
+ begin 'Rename file'
+ mkf fa
+ mv fa ${FS}fb
+ ckf fa ${FS}fb
+ end
+
+ begin 'Move files into directory'
+ mkf fa
+ mkf fb
+ mkdir -p ${FS}1/2/3
+ mv fa fb ${FS}1/2/3
+ ckf fa ${FS}1/2/3/fa
+ ckf fb ${FS}1/2/3/fb
+ end
+
+ begin 'Move file from directory to file'
+ mkdir -p 1/2/3
+ mkf 1/2/3/fa
+ mv 1/2/3/fa ${FS}fb
+ ckf fa ${FS}fb
+ end
+
+ begin 'Move file from directory to directory'
+ mkdir -p da1/da2/da3
+ mkdir -p ${FS}db1/db2/db3
+ mkf da1/da2/da3/fa
+ mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
+ ckf fa ${FS}db1/db2/db3/fb
+ end
+
+ begin 'Rename directory'
+ mkd da
+ mv da ${FS}db
+ ckd da ${FS}db
+ end
+
+ begin 'Move directory to directory name'
+ mkd da1/da2/da3/da
+ mkdir -p ${FS}db1/db2/db3
+ mv da1/da2/da3/da ${FS}db1/db2/db3/db
+ ckd da ${FS}db1/db2/db3/db
+ end
+
+ begin 'Move directory to directory'
+ mkd da1/da2/da3/da
+ mkdir -p ${FS}db1/db2/db3
+ mv da1/da2/da3/da ${FS}db1/db2/db3
+ ckd da ${FS}db1/db2/db3/da
+ end
+
+ begin 'Move directory to existing directory'
+ mkd da1/da2/da3/da
+ mkdir -p ${FS}db1/db2/db3/da
+ mv da1/da2/da3/da ${FS}db1/db2/db3
+ ckd da ${FS}db1/db2/db3/da
+ end
+
+ begin 'Rename fifo'
+ mkp fa
+ mv fa ${FS}fb
+ ckp fa ${FS}fb
+ end
+
+ begin 'Move fifos into directory'
+ mkp fa
+ mkp fb
+ mkdir -p ${FS}1/2/3
+ mv fa fb ${FS}1/2/3
+ ckp fa ${FS}1/2/3/fa
+ ckp fb ${FS}1/2/3/fb
+ end
+
+ begin 'Move fifo from directory to fifo'
+ mkdir -p 1/2/3
+ mkp 1/2/3/fa
+ mv 1/2/3/fa ${FS}fb
+ ckp fa ${FS}fb
+ end
+
+ begin 'Move fifo from directory to directory'
+ mkdir -p da1/da2/da3
+ mkdir -p ${FS}db1/db2/db3
+ mkp da1/da2/da3/fa
+ mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
+ ckp fa ${FS}db1/db2/db3/fb
+ end
+done
diff --git a/tools/regression/bin/mv/regress.t b/tools/regression/bin/mv/regress.t
new file mode 100644
index 0000000..c36d834
--- /dev/null
+++ b/tools/regression/bin/mv/regress.t
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $FreeBSD$
+
+cd `dirname $0`
+
+sh regress.sh
OpenPOWER on IntegriCloud