]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/test/devrandom/stat.16bit
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / test / devrandom / stat.16bit
1 #!/usr/bin/perl
2
3 #
4 # Perform primitive binning into 16-bit bins (take 16bits of randomness
5 # at a time) and see if the distribution is flat. The output should be
6 # checked by eye - are all the numbers roughly the same?
7 #
8 # Redirect the output from this to a file - and go to the movies while
9 # it runs. This program is a CPU Hog!
10 #
11 # $FreeBSD$
12 #
13
14 for ($i = 0; $i < (1024*64); $i++) {
15         open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
16         $len = sysread(BIN, $a, 512);
17         close(BIN);
18         if ($len > 0) {
19                 for ($j = 0; $j < $len; $j += 2) {
20                         $k = unpack("S", substr($a, $j, 2));
21                         $bin[$k]++;
22                 }
23         }
24 }
25
26 for ($i = 0; $i < 1024*64; $i++) {
27         printf("%.2X ", $bin[$i]);
28 }
29 printf "\n";