File: infnoise.bats

package info (click to toggle)
infnoise 0.3.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 27,304 kB
  • sloc: ansic: 2,177; sh: 251; python: 146; makefile: 65
file content (87 lines) | stat: -rw-r--r-- 2,334 bytes parent folder | download | duplicates (2)
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]" ]
}