xref: /dragonfly/tools/test/devrandom/stat.8bit (revision c311ab1309381df18f36a2068699f605abbfee74)
1#!/usr/bin/env 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#
13
14for ($i = 0; $i < (1024*32); $i++) {
15          open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
16          $len = sysread(BIN, $a, 256);
17          close(BIN);
18          if ($len > 0) {
19                    for ($j = 0; $j < $len; $j++) {
20                              $k = unpack("C", substr($a, $j, 1));
21                              $bin[$k]++;
22                    }
23          }
24}
25
26for ($i = 0; $i < 256; $i++) {
27          printf("%.2X ", $bin[$i]);
28}
29printf "\n";
30