opnsense-src/tests/sys/geom/class/eli/conf.sh
Alan Somers f92ce0224a Reduce the runtime of the GELI tests
There is no reduction in test coverage.  On my system runtime is reduced
from 38m32s to 6m24s.

tests/sys/geom/class/eli/conf.sh
tests/sys/geom/class/eli/init_a_test.sh
tests/sys/geom/class/eli/init_test.sh
tests/sys/geom/class/eli/integrity_copy_test.sh
tests/sys/geom/class/eli/integrity_data_test.sh
tests/sys/geom/class/eli/integrity_hmac_test.sh
tests/sys/geom/class/eli/onetime_a_test.sh
tests/sys/geom/class/eli/onetime_test.sh
	Move the looping code into common functions in conf.sh, and remove
	alias ciphers from the list.

tests/sys/geom/class/eli/init_a_test.sh
tests/sys/geom/class/eli/init_test.sh
tests/sys/geom/class/eli/integrity_copy_test.sh
tests/sys/geom/class/eli/integrity_data_test.sh
tests/sys/geom/class/eli/integrity_hmac_test.sh
tests/sys/geom/class/eli/onetime_a_test.sh
	Move a few commands that don't need to be in the inner loop out.

tests/sys/geom/class/eli/init_test.sh
tests/sys/geom/class/eli/onetime_a_test.sh
	Reduce the sector count

tests/sys/geom/class/eli/Makefile
tests/sys/geom/class/eli/init_alias_test.sh
	Add a test for initializing a GELI device using one of the cipher
	aliases, and check that the alias is correctly interpreted.

MFC after:	4 weeks
Sponsored by:	Spectra Logic Corp
Differential Revision:	https://reviews.freebsd.org/D8814
2016-12-29 20:28:50 +00:00

69 lines
1.9 KiB
Bash
Executable file

#!/bin/sh
# $FreeBSD$
class="eli"
base=`basename $0`
# We need to use linear probing in order to detect the first available md(4)
# device instead of using mdconfig -a -t, because geli(8) attachs md(4) devices
no=0
while [ -c /dev/md$no ]; do
: $(( no += 1 ))
done
# Execute `func` for each combination of cipher, sectorsize, and hmac algo
# `func` usage should be:
# func <cipher> <aalgo> <secsize>
for_each_geli_config() {
func=$1
for cipher in aes-xts:128 aes-xts:256 \
aes-cbc:128 aes-cbc:192 aes-cbc:256 \
3des-cbc:192 \
blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 \
blowfish-cbc:224 blowfish-cbc:256 blowfish-cbc:288 \
blowfish-cbc:320 blowfish-cbc:352 blowfish-cbc:384 \
blowfish-cbc:416 blowfish-cbc:448 \
camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
ealgo=${cipher%%:*}
keylen=${cipher##*:}
for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 \
hmac/sha384 hmac/sha512; do
for secsize in 512 1024 2048 4096 8192; do
${func} $cipher $aalgo $secsize
done
done
done
}
# Execute `func` for each combination of cipher, and sectorsize, with no hmac
# `func` usage should be:
# func <cipher> <secsize>
for_each_geli_config_nointegrity() {
func=$1
for cipher in aes-xts:128 aes-xts:256 \
aes-cbc:128 aes-cbc:192 aes-cbc:256 \
3des-cbc:192 \
blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 \
blowfish-cbc:224 blowfish-cbc:256 blowfish-cbc:288 \
blowfish-cbc:320 blowfish-cbc:352 blowfish-cbc:384 \
blowfish-cbc:416 blowfish-cbc:448 \
camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
ealgo=${cipher%%:*}
keylen=${cipher##*:}
for secsize in 512 1024 2048 4096 8192; do
${func} $cipher $aalgo $secsize
done
done
}
geli_test_cleanup()
{
[ -c /dev/md${no}.eli ] && geli detach md${no}.eli
mdconfig -d -u $no
}
trap geli_test_cleanup ABRT EXIT INT TERM
. `dirname $0`/../geom_subr.sh