tsysrand.nim 714 B

1234567891011121314151617181920212223242526272829303132333435
  1. discard """
  2. targets: "c cpp js"
  3. matrix: "--experimental:vmopsDanger; --experimental:vmopsDanger --mm:refc"
  4. """
  5. import std/sysrand
  6. import std/assertions
  7. template main() =
  8. block:
  9. var x = array[5, byte].default
  10. doAssert urandom(x)
  11. block:
  12. var x = newSeq[byte](5)
  13. doAssert urandom(x)
  14. block:
  15. var x = @[byte(0), 0, 0, 0, 0]
  16. doAssert urandom(x)
  17. block:
  18. var x = @[byte(1), 2, 3, 4, 5]
  19. doAssert urandom(x)
  20. block:
  21. doAssert urandom(0).len == 0
  22. doAssert urandom(10).len == 10
  23. doAssert urandom(20).len == 20
  24. doAssert urandom(120).len == 120
  25. doAssert urandom(113).len == 113
  26. doAssert urandom(1234) != urandom(1234) # unlikely to fail in practice
  27. main()