1234567891011121314151617181920212223242526272829303132333435 |
- discard """
- targets: "c cpp js"
- matrix: "--experimental:vmopsDanger; --experimental:vmopsDanger --mm:refc"
- """
- import std/sysrand
- import std/assertions
- template main() =
- block:
- var x = array[5, byte].default
- doAssert urandom(x)
- block:
- var x = newSeq[byte](5)
- doAssert urandom(x)
- block:
- var x = @[byte(0), 0, 0, 0, 0]
- doAssert urandom(x)
- block:
- var x = @[byte(1), 2, 3, 4, 5]
- doAssert urandom(x)
- block:
- doAssert urandom(0).len == 0
- doAssert urandom(10).len == 10
- doAssert urandom(20).len == 20
- doAssert urandom(120).len == 120
- doAssert urandom(113).len == 113
- doAssert urandom(1234) != urandom(1234) # unlikely to fail in practice
- main()
|