Add the test programs that I tested the /dev/random driver with.
This commit is contained in:
parent
bc71ecdfc9
commit
d82e286489
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=12059
23
tools/test/devrandom/hammer.random
Normal file
23
tools/test/devrandom/hammer.random
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test program for /dev/random
|
||||||
|
# Read and display random numbers.
|
||||||
|
# Try tapping shift/alt/ctrl to get more randomness.
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
open(BIN, "/dev/random") || die "Cannot open /dev/random - $!\n";
|
||||||
|
$len = sysread(BIN, $a, 128);
|
||||||
|
close(BIN);
|
||||||
|
if ($len > 0) {
|
||||||
|
print "$len bytes read: ";
|
||||||
|
for ($j = 0; $j < $len; $j++) {
|
||||||
|
$k = unpack("C", substr($a, $j, 1));
|
||||||
|
printf("%.2X ", $k);
|
||||||
|
}
|
||||||
|
printf "\n";
|
||||||
|
}
|
||||||
|
}
|
27
tools/test/devrandom/hammer.urandom
Normal file
27
tools/test/devrandom/hammer.urandom
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test program for /dev/urandom
|
||||||
|
# Read and display random numbers.
|
||||||
|
# This also reads /dev/zero to make sure there is no brokenness there.
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
open(ZERO, "/dev/zero") || die "Cannot open /dev/zero - $!\n";
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
open(BIN, "/dev/urandom");
|
||||||
|
$len = sysread(BIN, $a, 20);
|
||||||
|
sysread(ZERO, $b, 20);
|
||||||
|
close(BIN);
|
||||||
|
if ($len > 0) {
|
||||||
|
for ($j = 0; $j < $len; $j += 2) {
|
||||||
|
$k = unpack("S", substr($a, $j, 2));
|
||||||
|
$z = unpack("S", substr($b, $j, 2));
|
||||||
|
$z == 0 || die "/dev/zero is returning non-zero!\n";
|
||||||
|
printf("%.4X ", $k);
|
||||||
|
}
|
||||||
|
printf "\n";
|
||||||
|
}
|
||||||
|
}
|
29
tools/test/devrandom/stat.16bit
Normal file
29
tools/test/devrandom/stat.16bit
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Perform primitive binning into 16-bit bins (take 16bits of randomness
|
||||||
|
# at a time) and see if the distribution is flat. The output should be
|
||||||
|
# checked by eye - are all the numbers roughly the same?
|
||||||
|
#
|
||||||
|
# Redirect the output from this to a file - and go to the movies while
|
||||||
|
# it runs. This program is a CPU Hog!
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
for ($i = 0; $i < (1024*64); $i++) {
|
||||||
|
open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
|
||||||
|
$len = sysread(BIN, $a, 512);
|
||||||
|
close(BIN);
|
||||||
|
if ($len > 0) {
|
||||||
|
for ($j = 0; $j < $len; $j += 2) {
|
||||||
|
$k = unpack("S", substr($a, $j, 2));
|
||||||
|
$bin[$k]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($i = 0; $i < 1024*64; $i++) {
|
||||||
|
printf("%.2X ", $bin[$i]);
|
||||||
|
}
|
||||||
|
printf "\n";
|
29
tools/test/devrandom/stat.8bit
Normal file
29
tools/test/devrandom/stat.8bit
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Perform primitive binning into 8-bit bins (take 8 bits of randomness
|
||||||
|
# at a time) and see if the distribution is flat. The output should be
|
||||||
|
# checked by eye - are all the numbers roughly the same?
|
||||||
|
#
|
||||||
|
# Redirect the output from this to a file - and make a cup of coffee while
|
||||||
|
# it runs. This program is a CPU Hog!
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
for ($i = 0; $i < (1024*32); $i++) {
|
||||||
|
open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
|
||||||
|
$len = sysread(BIN, $a, 256);
|
||||||
|
close(BIN);
|
||||||
|
if ($len > 0) {
|
||||||
|
for ($j = 0; $j < $len; $j++) {
|
||||||
|
$k = unpack("C", substr($a, $j, 1));
|
||||||
|
$bin[$k]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($i = 0; $i < 256; $i++) {
|
||||||
|
printf("%.2X ", $bin[$i]);
|
||||||
|
}
|
||||||
|
printf "\n";
|
Loading…
Reference in New Issue
Block a user