1d82e2864SMark Murray#!/usr/bin/perl 2d82e2864SMark Murray 3d82e2864SMark Murray# 4d82e2864SMark Murray# Test program for /dev/urandom 5d82e2864SMark Murray# Read and display random numbers. 6d82e2864SMark Murray# This also reads /dev/zero to make sure there is no brokenness there. 7d82e2864SMark Murray# 8d82e2864SMark Murray# 9d82e2864SMark Murray 10d82e2864SMark Murrayopen(ZERO, "/dev/zero") || die "Cannot open /dev/zero - $!\n"; 11d82e2864SMark Murray 12d82e2864SMark Murrayfor (;;) { 13d82e2864SMark Murray open(BIN, "/dev/urandom"); 14d82e2864SMark Murray $len = sysread(BIN, $a, 20); 15d82e2864SMark Murray sysread(ZERO, $b, 20); 16d82e2864SMark Murray close(BIN); 17d82e2864SMark Murray if ($len > 0) { 18d82e2864SMark Murray for ($j = 0; $j < $len; $j += 2) { 19d82e2864SMark Murray $k = unpack("S", substr($a, $j, 2)); 20d82e2864SMark Murray $z = unpack("S", substr($b, $j, 2)); 21d82e2864SMark Murray $z == 0 || die "/dev/zero is returning non-zero!\n"; 22d82e2864SMark Murray printf("%.4X ", $k); 23d82e2864SMark Murray } 24d82e2864SMark Murray printf "\n"; 25d82e2864SMark Murray } 26d82e2864SMark Murray} 27