112059Smarkm#!/usr/bin/perl
212059Smarkm
312059Smarkm#
412059Smarkm# Test program for /dev/urandom
512059Smarkm# Read and display random numbers.
612059Smarkm# This also reads /dev/zero to make sure there is no brokenness there.
712059Smarkm#
850477Speter# $FreeBSD: releng/11.0/tools/test/devrandom/hammer.urandom 50477 1999-08-28 01:08:13Z peter $
912059Smarkm#
1012059Smarkm
1112059Smarkmopen(ZERO, "/dev/zero") || die "Cannot open /dev/zero - $!\n";
1212059Smarkm
1312059Smarkmfor (;;) {
1412059Smarkm	open(BIN, "/dev/urandom");
1512059Smarkm	$len = sysread(BIN, $a, 20);
1612059Smarkm	sysread(ZERO, $b, 20);
1712059Smarkm	close(BIN);
1812059Smarkm	if ($len > 0) {
1912059Smarkm		for ($j = 0; $j < $len; $j += 2) {
2012059Smarkm			$k = unpack("S", substr($a, $j, 2));
2112059Smarkm			$z = unpack("S", substr($b, $j, 2));
2212059Smarkm			$z == 0 || die "/dev/zero is returning non-zero!\n";
2312059Smarkm			printf("%.4X ", $k);
2412059Smarkm		}
2512059Smarkm		printf "\n";
2612059Smarkm	}
2712059Smarkm}
28