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