<resolv.h>: Include <netinet/in.h> for in_addr and sockaddr_in.
[dragonfly.git] / tools / test / devrandom / stat.16bit
1 #!/usr/bin/env 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: src/tools/test/devrandom/stat.16bit,v 1.4 1999/08/28 00:54:24 peter Exp $
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";