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