URI: 
       tCleaner test environment - tomb - the crypto undertaker
  HTML git clone git://parazyd.org/tomb.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 4d6c0bf5cc0502357bfe59c7282a73662909a172
   DIR parent bc3177141d93e0d87ebd3a144f32b5c64acd7407
  HTML Author: Jaromil <jaromil@dyne.org>
       Date:   Wed, 12 Jun 2013 11:12:33 +0200
       
       Cleaner test environment
       
       now available as 'make test'
       
       Diffstat:
         M Makefile                            |       3 +++
         A extras/test/Makefile                |       2 ++
         D extras/test/dig_forge_lock_open_cl… |      46 -------------------------------
         A extras/test/runtests                |     124 +++++++++++++++++++++++++++++++
       
       4 files changed, 129 insertions(+), 46 deletions(-)
       ---
   DIR diff --git a/Makefile b/Makefile
       t@@ -9,3 +9,6 @@ all:
        install:
                @install -Dm755 ${PROG} ${DESTDIR}${PREFIX}/bin/${PROG}
                @install -Dm666 doc/${PROG}.1 ${DESTDIR}${MANDIR}/man1/${PROG}.1
       +
       +test:
       +        make -C extras/test
   DIR diff --git a/extras/test/Makefile b/extras/test/Makefile
       t@@ -0,0 +1,2 @@
       +all:
       +        @./runtests
   DIR diff --git a/extras/test/dig_forge_lock_open_close.sh b/extras/test/dig_forge_lock_open_close.sh
       t@@ -1,46 +0,0 @@
       -#!/usr/bin/zsh
       -
       -T="../../tomb"
       -source utils.sh
       -source ${T} source
       -
       -notice() { print; yes "${@}"; print; }
       -error() { _warning "     ${@}"; }
       -tt() {
       -        start_loops=(`sudo losetup -a |cut -d: -f1`)
       -        ${T} ${=@}
       -        res=$?
       -        loops=(`sudo losetup -a |cut -d: -f1`)
       -        { test "${#start_loops}" = "${#loops}" } || { error "loop device limit change to ${#loops}" }
       -        print "     Tomb command returns $res"
       -        return $res
       -}
       -
       -
       -
       -rm /tmp/test.tomb{,.key} -f || exit 1
       -
       -notice "Testing creation"
       -
       -tt dig -s 10 /tmp/test.tomb
       -
       -tt --ignore-swap --unsecure-dev-mode --tomb-pwd f00za --use-urandom forge /tmp/test.tomb.key
       -
       -
       -tt --ignore-swap --unsecure-dev-mode --tomb-pwd f00za lock /tmp/test.tomb -k /tmp/test.tomb.key
       -
       -# sanity_tomb /tmp/asd.tomb
       -notice "Testing open with wrong password"
       -
       -tt --unsecure-dev-mode --tomb-pwd wrongpassword open /tmp/test.tomb
       -
       -notice "Testing open with good password"
       -
       -tt --unsecure-dev-mode --tomb-pwd f00za open /tmp/test.tomb
       -
       -tt --unsecure-dev-mode close test
       -
       -notice "Testing resize to 20MiB"
       -tt --unsecure-dev-mode --tomb-pwd f00za -k /tmp/test.tomb.key resize /tmp/test.tomb -s 20
       -
       -# rm /tmp/test.tomb{,.key} -f || exit 1
   DIR diff --git a/extras/test/runtests b/extras/test/runtests
       t@@ -0,0 +1,124 @@
       +#!/usr/bin/zsh
       +#
       +# Iterates through various tests on the tomb script
       +
       +T="../../tomb"
       +source ${T} source
       +
       +notice() { print; yes "${@}"; print; }
       +error() { _warning "     ${@}"; }
       +tt() {
       +        start_loops=(`sudo losetup -a |cut -d: -f1`)
       +        ${T} ${=@}
       +        res=$?
       +        loops=(`sudo losetup -a |cut -d: -f1`)
       +        { test "${#start_loops}" = "${#loops}" } || { error "loop device limit change to ${#loops}" }
       +        print "     Tomb command returns $res"
       +        return $res
       +}
       +
       +typeset -A results
       +tests=(dig forge lock badpass open close resize chksum bind)
       +
       +
       +rm /tmp/test.tomb{,.key} -f || exit 1
       +
       +startloops=(`sudo losetup -a |cut -d: -f1`)
       +
       +
       +
       +
       +notice "Testing creation"
       +
       +tt dig -s 20 /tmp/test.tomb
       +
       +{ test $? = 0 } && { results+=(dig SUCCESS) }
       +
       +tt --ignore-swap --unsecure-dev-mode --tomb-pwd f00za --use-urandom forge /tmp/test.tomb.key
       +
       +{ test $? = 0 } && { results+=(forge SUCCESS) }
       +
       +tt --ignore-swap --unsecure-dev-mode --tomb-pwd f00za lock /tmp/test.tomb -k /tmp/test.tomb.key
       +
       +{ test $? = 0 } && { results+=(lock SUCCESS) }
       +
       +
       +
       +notice "Testing open with wrong password"
       +
       +tt --unsecure-dev-mode --tomb-pwd wrongpassword open /tmp/test.tomb
       +
       +{ test $? = 0 } || { results+=(badpass SUCCESS) }
       +
       +
       +
       +notice "Testing open with good password"
       +
       +tt --unsecure-dev-mode --tomb-pwd f00za open /tmp/test.tomb
       +
       +{ test $? = 0 } && { results+=(open SUCCESS) }
       +
       +
       +
       +notice "Generating content for file integrity test"
       +
       +${T} dig -s 10 /media/test.tomb/datacheck.raw
       +
       +crc="sha256 /media/test.tomb/datacheck.raw"
       +echo "$crc" > /media/test.tomb/datacheck.sha
       +
       +tt --unsecure-dev-mode close test
       +
       +{ test $? = 0 } && { results+=(close SUCCESS) }
       +
       +
       +
       +notice "Testing resize to 30 MiB"
       +
       +tt --unsecure-dev-mode --tomb-pwd f00za -k /tmp/test.tomb.key resize /tmp/test.tomb -s 30
       +
       +{ test $? = 0 } && { results+=(resize SUCCESS) }
       +
       +${T} --unsecure-dev-mode --tomb-pwd f00za open /tmp/test.tomb
       +
       +crc2="sha256 /media/test.tomb/datacheck.raw"
       +
       +{ test "$crc" = "$crc2" } && { results+=(chksum SUCCESS) }
       +
       +
       +
       +notice "Testing bind hooks"
       +
       +rnd=$RANDOM
       +echo $rnd > /media/test.tomb/test-$rnd
       +echo "test-$rnd test-$rnd" > /media/test.tomb/bind-hooks
       +touch $HOME/test-$rnd
       +tt close test
       +tt --unsecure-dev-mode --tomb-pwd f00za open /tmp/test.tomb
       +rnd2=`cat $HOME/test-$rnd`
       +if [ "$rnd" = "$rnd2" ]; then
       +        notice "Bind hook on file matches"
       +        results+=(bind SUCCESS)
       +        tt list test
       +else
       +        error "Bind hook on file reports incongruence"
       +fi
       +sudo umount $HOME/test-$rnd
       +rm /media/test.tomb/bind-hooks
       +rm /media/test.tomb/test-$rnd
       +tt close test
       +
       +# rm /tmp/test.tomb{,.key} -f || exit 1
       +
       +endloops=(`sudo losetup -a |cut -d: -f1`)
       +
       +notice "Test results summary"
       +
       +print "${#startloops} loop devices busy at start"
       +
       +for t in $tests; do
       +    echo "$t\t${results[$t]:-FAIL}"
       +done
       +
       +print "${#endloops} loop devices busy at end"
       +