gmp_random_bits.phpt 962 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. gmp_random_bits() basic tests
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. try {
  8. var_dump(gmp_random_bits(0));
  9. } catch (\ValueError $e) {
  10. echo $e->getMessage() . \PHP_EOL;
  11. }
  12. try {
  13. var_dump(gmp_random_bits(-1));
  14. } catch (\ValueError $e) {
  15. echo $e->getMessage() . \PHP_EOL;
  16. }
  17. // If these error the test fails.
  18. gmp_random_bits(1);
  19. gmp_random_bits(1024);
  20. // 0.5 seconds to make sure the numbers stay in range
  21. $start = microtime(true);
  22. $limit = (2 ** 30) - 1;
  23. while (1) {
  24. for ($i = 0; $i < 5000; $i++) {
  25. $result = gmp_random_bits(30);
  26. if ($result < 0 || $result > $limit) {
  27. print "RANGE VIOLATION\n";
  28. var_dump($result);
  29. break 2;
  30. }
  31. }
  32. if (microtime(true) - $start > 0.5) {
  33. break;
  34. }
  35. }
  36. echo "Done\n";
  37. ?>
  38. --EXPECT--
  39. gmp_random_bits(): Argument #1 ($bits) must be greater than or equal to 1
  40. gmp_random_bits(): Argument #1 ($bits) must be greater than or equal to 1
  41. Done