1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
#!/usr/bin/env bats
load 'test_helper/bats-support/load'
load 'test_helper/bats-assert/load'
# Tests for the infnoise binary
@test "test --raw output for expected entropy" {
# capture some data
TMP_FILE=`mktemp -u $BATS_TMPDIR/infnoise-test-XXXXXXX`
timeout 5s ./infnoise --raw > $TMP_FILE || true
# run ent
run ent $TMP_FILE
assert_line --index 0 --regexp '^Entropy = 7.2[5-9][0-9]+ bits per byte.$'
# cleanup
rm $TMP_FILE
}
@test "test whitened output for expected entropy" {
# capture some data
TMP_FILE=`mktemp -u $BATS_TMPDIR/infnoise-test-XXXXXXX`
timeout 5s ./infnoise > $TMP_FILE || true
# run ent
run ent $TMP_FILE
# check ent's result
assert_line --index 0 --regexp '^Entropy = 7.99[0-9]+ bits per byte.$'
# cleanup
rm $TMP_FILE
}
@test "test whitened output (multiplier=10) for expected entropy" {
# capture some data
TMP_FILE=`mktemp -u $BATS_TMPDIR/infnoise-test-XXXXXXX`
timeout 5s ./infnoise --multiplier 10 > $TMP_FILE || true
# run ent
run ent $TMP_FILE
assert_line --index 0 --regexp '^Entropy = 7.99[0-9]+ bits per byte.$'
# cleanup
rm $TMP_FILE
}
@test "test --no-output --debug" {
# capture some data
TMP_FILE=`mktemp -u $BATS_TMPDIR/infnoise-test-XXXXXXX`
run timeout 5s ./infnoise --no-output --debug
echo $output
[ "$status" -eq 124 ]
assert_line --index 0 --regexp '^Generated 1048576 bits. OK to use data. Estimated entropy per bit: 0\.[0-8][6-8][0-9]+, estimated K: 1\.8[1-5][0-9]+$'
assert_line --index 1 --regexp '^num1s:50.[0-9]+%, even misfires:0.[0-1][0-9]+%, odd misfires:0.[0-1][0-9]+%$'
}
@test "test --list-devices" {
run ./infnoise --list-devices
echo $output
[ "$status" -eq 0 ]
# FTDI serial:
assert_line --index 1 --regexp '^Manufacturer: FTDI, Description: FT240X USB FIFO, Serial: [0-9A-Z]+$'
# 13-37.org serial:
assert_line --index 0 --regexp '^Manufacturer: 13-37.org, Description: Infinite Noise TRNG, Serial: [0-9A-F]+$'
}
@test "test --serial with not connected serial (results in error)" {
run ./infnoise --serial 4711
echo $output
[ "$status" -eq 1 ]
[ "${lines[0]}" = "Can't find Infinite Noise Multiplier. Try running as super user?" ]
}
@test "test --help" {
run ./infnoise --help
echo $output
[ "$status" -eq 0 ]
[ "${lines[0]}" = "Usage: infnoise [options]" ]
}
|