xref: /dragonfly/tools/test/devrandom/stat.16bit (revision 3170ffd7)
1#!/usr/pkg/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: src/tools/test/devrandom/stat.16bit,v 1.4 1999/08/28 00:54:24 peter Exp $
12# $DragonFly: src/tools/test/devrandom/stat.16bit,v 1.2 2003/06/17 04:29:11 dillon Exp $
13#
14
15for ($i = 0; $i < (1024*64); $i++) {
16	open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
17	$len = sysread(BIN, $a, 512);
18	close(BIN);
19	if ($len > 0) {
20		for ($j = 0; $j < $len; $j += 2) {
21			$k = unpack("S", substr($a, $j, 2));
22			$bin[$k]++;
23		}
24	}
25}
26
27for ($i = 0; $i < 1024*64; $i++) {
28	printf("%.2X ", $bin[$i]);
29}
30printf "\n";
31