summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2005-01-11 18:06:44 +0000
committerpjd <pjd@FreeBSD.org>2005-01-11 18:06:44 +0000
commit8d8363ee39b0aaa863e2d66fc53f7875726629dd (patch)
tree50739506a34f12ac2d48b48e25a355d25730ce7e /tools
parentf89878315b95a6c4d45310a7f827818440db1c95 (diff)
downloadFreeBSD-src-8d8363ee39b0aaa863e2d66fc53f7875726629dd.zip
FreeBSD-src-8d8363ee39b0aaa863e2d66fc53f7875726629dd.tar.gz
Introduce a new GEOM class - SHSEC. It provides sharing secret between
the given providers. Without even one of the configured components there should be no way to get the secret. Supported by: WHEEL Sp. z o.o. http://www.wheel.pl
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/geom_shsec/Makefile8
-rw-r--r--tools/regression/geom_shsec/runtests.sh10
-rw-r--r--tools/regression/geom_shsec/test-1.sh34
-rw-r--r--tools/regression/geom_shsec/test-2.sh57
4 files changed, 109 insertions, 0 deletions
diff --git a/tools/regression/geom_shsec/Makefile b/tools/regression/geom_shsec/Makefile
new file mode 100644
index 0000000..11b4e3e
--- /dev/null
+++ b/tools/regression/geom_shsec/Makefile
@@ -0,0 +1,8 @@
+#
+# $FreeBSD$
+#
+# Regression tests for geom_shsec.
+#
+
+test:
+ @sh runtests.sh
diff --git a/tools/regression/geom_shsec/runtests.sh b/tools/regression/geom_shsec/runtests.sh
new file mode 100644
index 0000000..24e017b
--- /dev/null
+++ b/tools/regression/geom_shsec/runtests.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# $FreeBSD$
+
+dir=`dirname $0`
+
+gshsec load >/dev/null 2>&1
+for ts in `dirname $0`/test-*.sh; do
+ sh $ts
+done
+gshsec unload
diff --git a/tools/regression/geom_shsec/test-1.sh b/tools/regression/geom_shsec/test-1.sh
new file mode 100644
index 0000000..0b779c0
--- /dev/null
+++ b/tools/regression/geom_shsec/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
+
+gshsec label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+
+# Size of created device should be 1MB - 512B.
+
+mediasize=`diskinfo /dev/shsec/${name} | awk '{print $3}'`
+if [ $mediasize -eq 1048064 ]; then
+ echo "PASS"
+else
+ echo "FAIL"
+fi
+sectorsize=`diskinfo /dev/shsec/${name} | awk '{print $2}'`
+if [ $sectorsize -eq 512 ]; then
+ echo "PASS"
+else
+ echo "FAIL"
+fi
+
+gshsec stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
diff --git a/tools/regression/geom_shsec/test-2.sh b/tools/regression/geom_shsec/test-2.sh
new file mode 100644
index 0000000..8e4fcee
--- /dev/null
+++ b/tools/regression/geom_shsec/test-2.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+# $FreeBSD$
+
+name="test"
+base=`basename $0`
+us0=45
+us1=`expr $us0 + 1`
+us2=`expr $us0 + 2`
+nblocks1=1024
+nblocks2=`expr $nblocks1 + 1`
+src=`mktemp /tmp/$base.XXXXXX` || exit 1
+dst=`mktemp /tmp/$base.XXXXXX` || exit 1
+
+dd if=/dev/random of=${src} count=$nblocks1 >/dev/null 2>&1
+
+mdconfig -a -t malloc -s $nblocks2 -u $us0 || exit 1
+mdconfig -a -t malloc -s $nblocks2 -u $us1 || exit 1
+mdconfig -a -t malloc -s $nblocks2 -u $us2 || exit 1
+
+gshsec label $name /dev/md${us0} /dev/md${us1} /dev/md${us2} || exit 1
+sleep 1
+
+dd if=${src} of=/dev/shsec/${name} count=$nblocks1 >/dev/null 2>&1
+
+dd if=/dev/shsec/${name} of=${dst} count=$nblocks1 >/dev/null 2>&1
+if [ `md5 -q ${src}` != `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+dd if=/dev/md${us0} of=${dst} count=$nblocks1 >/dev/null 2>&1
+if [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+dd if=/dev/md${us1} of=${dst} count=$nblocks1 >/dev/null 2>&1
+if [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+dd if=/dev/md${us2} of=${dst} count=$nblocks1 >/dev/null 2>&1
+if [ `md5 -q ${src}` = `md5 -q ${dst}` ]; then
+ echo "FAIL"
+else
+ echo "PASS"
+fi
+
+gshsec stop $name
+mdconfig -d -u $us0
+mdconfig -d -u $us1
+mdconfig -d -u $us2
+rm -f ${src} ${dst}
OpenPOWER on IntegriCloud