diff options
| author | Keith Packard <keithp@keithp.com> | 2016-08-02 16:30:15 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2016-08-02 17:05:42 -0700 | 
| commit | c4926a69d6e72a035197b3d617c62893a7ea1861 (patch) | |
| tree | 048e675ea6d18f6c0be25eab5892e3cb4ba474ff | |
| parent | d52cb9dac725206ba7b2d26818c84f134d5bf183 (diff) | |
ao-bringup: Test chaoskey using dieharder
This uses a subset of the dieharder tests which run in reasonable time
and don't appear to emit false negatives on a regular basis.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rwxr-xr-x | ao-bringup/test-chaoskey | 85 | ||||
| -rwxr-xr-x | ao-bringup/turnon_chaoskey | 8 | 
2 files changed, 93 insertions, 0 deletions
| diff --git a/ao-bringup/test-chaoskey b/ao-bringup/test-chaoskey new file mode 100755 index 00000000..db5aed6e --- /dev/null +++ b/ao-bringup/test-chaoskey @@ -0,0 +1,85 @@ +#!/bin/bash +snum="unknown" +case "$#" in +    1) +	case "$1" in +	    "-?"|"--help") +		echo "Usage: $0 [serial]" +		exit 0 +		;; +	esac +	snum="$1" +	serial="--serial $1" +	;; +    0) +	serial="" +	;; +    *) +	echo "Usage: $0 [serial]" +	exit 1 +	;; +esac + +tests="0:100 1:100 2:100 3:100 12:10 13:100 15:10000 16:250 202:1000 203:100 204:500 206:20 207:1000:32 209:1000" + +PASS=0 +FAIL=0 +WEAK=0 +../ao-tools/ao-chaosread/ao-chaosread $serial --infinite --bytes | for test in $tests done; do +    case $test in +	*:*:*) +	    dnum=`echo $test | sed 's/:.*$//'` +	    tnum=`echo $test | sed 's/^[^:]*://'` +	    tnum=`echo $test | sed 's/^[^:]*://' | sed 's/:.*$//'` +	    nnum=`echo $test | sed 's/^.*://'` +	    opts="-d $dnum -t $tnum -n $nnum" +	    ;; +	*:*) +	    dnum=`echo $test | sed 's/:.*$//'` +	    tnum=`echo $test | sed 's/^.*://'` +	    opts="-d $dnum -t $tnum" +	    ;; +	*) +	    dnum=$test +	    opts="-d $dnum" +	    ;; +    esac +    case $dnum in +    done) +	echo DONE +	;; +    *) +	echo TEST $dnum +	dieharder -g 200 $opts +	;; +    esac +done | while read result; do +    case "$result" in +	TEST*) +	    testnum=`echo $result | sed 's/TEST //'` +	    ;; +	*PASSED*) +	    PASS=`expr $PASS + 1` +	    ;; +	*WEAK*) +	    WEAK=`expr $WEAK + 1` +	    ;; +	*FAILED*) +	    echo test $testnum failed +	    FAIL=`expr $FAIL + 1` +	    ;; +	DONE) +	    echo pass $PASS weak $WEAK fail $FAIL +	    case $PASS:$FAIL in +		[1-9]*:0) +		    echo ChaosKey $snum is ready to ship +		    exit 0 +		    ;; +		*) +		    echo ChaosKey $snum failed +		    exit 1 +		    ;; +	    esac +	    ;; +    esac +done diff --git a/ao-bringup/turnon_chaoskey b/ao-bringup/turnon_chaoskey index 8c20ebaa..50460008 100755 --- a/ao-bringup/turnon_chaoskey +++ b/ao-bringup/turnon_chaoskey @@ -30,4 +30,12 @@ sleep 2  $USBLOAD --serial=1 ../src/chaoskey-v$VERSION/chaoskey-v$VERSION*.ihx || exit 1 +sleep 1 + +serial=`dmesg | grep 'on chaoskey' | tail -1 | sed 's/.*chaoskey \([0-9a-f][0-9a-f]*\) on chaoskey.*/\1/'` + +echo 'Testing ChaosKey' $serial + +./test-chaoskey $serial +  exit $? | 
