summaryrefslogtreecommitdiffstats
path: root/tools/regression
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2004-08-16 09:09:23 +0000
committerpjd <pjd@FreeBSD.org>2004-08-16 09:09:23 +0000
commitb636607ce602cb9f5557ad1697caf497e115c87d (patch)
tree6ee2729a61575705176daa96273fb6f581038eb7 /tools/regression
parent08cb9977431394e5580071111f25d5e32ffc756f (diff)
downloadFreeBSD-src-b636607ce602cb9f5557ad1697caf497e115c87d.zip
FreeBSD-src-b636607ce602cb9f5557ad1697caf497e115c87d.tar.gz
Add regression tests for GEOM_RAID3.
Diffstat (limited to 'tools/regression')
-rw-r--r--tools/regression/geom_raid3/Makefile8
-rw-r--r--tools/regression/geom_raid3/runtests.sh10
-rw-r--r--tools/regression/geom_raid3/test-1.sh34
-rw-r--r--tools/regression/geom_raid3/test-2.sh36
-rw-r--r--tools/regression/geom_raid3/test-3.sh40
-rw-r--r--tools/regression/geom_raid3/test-4.sh40
-rw-r--r--tools/regression/geom_raid3/test-5.sh40
-rw-r--r--tools/regression/geom_raid3/test-6.sh44
-rw-r--r--tools/regression/geom_raid3/test-7.sh47
-rw-r--r--tools/regression/geom_raid3/test-8.sh43
-rw-r--r--tools/regression/geom_raid3/test-9.sh46
11 files changed, 388 insertions, 0 deletions
diff --git a/tools/regression/geom_raid3/Makefile b/tools/regression/geom_raid3/Makefile
new file mode 100644
index 0000000..9eb76c6
--- /dev/null
+++ b/tools/regression/geom_raid3/Makefile
@@ -0,0 +1,8 @@
+#
+# $FreeBSD$
+#
+# Regression tests for geom_raid3.
+#
+
+test:
+ @sh runtests.sh
diff --git a/tools/regression/geom_raid3/runtests.sh b/tools/regression/geom_raid3/runtests.sh
new file mode 100644
index 0000000..b22c1ff
--- /dev/null
+++ b/tools/regression/geom_raid3/runtests.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# $FreeBSD$
+
+dir=`dirname $0`
+
+graid3 load >/dev/null 2>&1
+for ts in `dirname $0`/test-*.sh; do
+ sh $ts
+done
+graid3 unload
diff --git a/tools/regression/geom_raid3/test-1.sh b/tools/regression/geom_raid3/test-1.sh
new file mode 100644
index 0000000..7c116ad
--- /dev/null
+++ b/tools/regression/geom_raid3/test-1.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+
+mdconfig -a -t malloc -s 1M -u $us0 || exit 1
+mdconfig -a -t malloc -s 2M -u $us1 || exit 1
+mdconfig -a -t malloc -s 3M -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+# Size of created device should be 1MB - 512b.
+
+mediasize=`diskinfo /dev/raid3/${name} | awk '{print $3}'`
+if [ $mediasize -eq 2096128 ]; then
+ echo "PASS"
+else
+ echo "FAIL"
+fi
+sectorsize=`diskinfo /dev/raid3/${name} | awk '{print $2}'`
+if [ $sectorsize -eq 1024 ]; then
+ echo "PASS"
+else
+ echo "FAIL"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
diff --git a/tools/regression/geom_raid3/test-2.sh b/tools/regression/geom_raid3/test-2.sh
new file mode 100644
index 0000000..49a7de0
--- /dev/null
+++ b/tools/regression/geom_raid3/test-2.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-3.sh b/tools/regression/geom_raid3/test-3.sh
new file mode 100644
index 0000000..d676590
--- /dev/null
+++ b/tools/regression/geom_raid3/test-3.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+#
+# Reading without one DATA component (so with parity).
+#
+graid3 remove -n 1 $name
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-4.sh b/tools/regression/geom_raid3/test-4.sh
new file mode 100644
index 0000000..19eed35
--- /dev/null
+++ b/tools/regression/geom_raid3/test-4.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+#
+# Writing without one DATA component.
+#
+graid3 remove -n 1 $name
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-5.sh b/tools/regression/geom_raid3/test-5.sh
new file mode 100644
index 0000000..5de2196
--- /dev/null
+++ b/tools/regression/geom_raid3/test-5.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+#
+# Writing without PARITY component.
+#
+graid3 remove -n 2 $name
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-6.sh b/tools/regression/geom_raid3/test-6.sh
new file mode 100644
index 0000000..778f38f
--- /dev/null
+++ b/tools/regression/geom_raid3/test-6.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+#
+# Rebuild of DATA component.
+#
+graid3 remove -n 1 $name
+dd if=/dev/zero of=/dev/md${us1} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+graid3 insert -n 1 $name md${us1}
+sleep 1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-7.sh b/tools/regression/geom_raid3/test-7.sh
new file mode 100644
index 0000000..b39de20
--- /dev/null
+++ b/tools/regression/geom_raid3/test-7.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+#
+# Rebuild of PARITY component.
+#
+graid3 remove -n 2 $name
+dd if=/dev/zero of=/dev/md${us2} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+graid3 insert -n 2 $name md${us2}
+sleep 1
+# Remove DATA component, so PARITY component can be used while reading.
+graid3 remove -n 1 $name
+dd if=/dev/zero of=/dev/md${us1} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-8.sh b/tools/regression/geom_raid3/test-8.sh
new file mode 100644
index 0000000..ea31968
--- /dev/null
+++ b/tools/regression/geom_raid3/test-8.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+#
+# Writing without DATA component and rebuild of DATA component.
+#
+graid3 remove -n 1 $name
+dd if=/dev/zero of=/dev/md${us1} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+graid3 insert -n 1 $name md${us1}
+sleep 1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
diff --git a/tools/regression/geom_raid3/test-9.sh b/tools/regression/geom_raid3/test-9.sh
new file mode 100644
index 0000000..eeb5429
--- /dev/null
+++ b/tools/regression/geom_raid3/test-9.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+ddbs=2048
+nblocks1=1024
+nblocks2=`expr $nblocks1 / \( $ddbs / 512 \)`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us0 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us1 || exit 1
+mdconfig -a -t malloc -s `expr $nblocks1 + 1` -u $us2 || exit 1
+
+graid3 label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+#
+# Writing without PARITY component and rebuild of PARITY component.
+#
+graid3 remove -n 2 $name
+dd if=/dev/zero of=/dev/md${us2} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+dd if=${src} of=/dev/raid3/${name} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+graid3 insert -n 2 $name md${us2}
+sleep 1
+# Remove DATA component, so PARITY component can be used while reading.
+graid3 remove -n 1 $name
+dd if=/dev/zero of=/dev/md${us1} bs=512 count=`expr $nblocks1 + 1` >/dev/null 2>&1
+
+dd if=/dev/raid3/${name} of=${dst} bs=$ddbs count=$nblocks2 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+graid3 stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
OpenPOWER on IntegriCloud