Merge from vendor branch GCC:
[dragonfly.git] / tools / test / devrandom / stat.8bit
1 #!/usr/bin/perl
2
3 #
4 # Perform primitive binning into 8-bit bins (take 8 bits 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 make a cup of coffee while
9 # it runs. This program is a CPU Hog!
10 #
11 # $FreeBSD: src/tools/test/devrandom/stat.8bit,v 1.4 1999/08/28 00:54:24 peter Exp $
12 # $DragonFly: src/tools/test/devrandom/stat.8bit,v 1.2 2003/06/17 04:29:11 dillon Exp $
13 #
14
15 for ($i = 0; $i < (1024*32); $i++) {
16         open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
17         $len = sysread(BIN, $a, 256);
18         close(BIN);
19         if ($len > 0) {
20                 for ($j = 0; $j < $len; $j++) {
21                         $k = unpack("C", substr($a, $j, 1));
22                         $bin[$k]++;
23                 }
24         }
25 }
26
27 for ($i = 0; $i < 256; $i++) {
28         printf("%.2X ", $bin[$i]);
29 }
30 printf "\n";