mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
27 lines
755 B
V
27 lines
755 B
V
import os
|
|
|
|
[direct_array_access]
|
|
fn test_big_int_array() {
|
|
dump(sizeof(isize))
|
|
mut maxn := 500_000_000 // try allocating ~2GB worth of integers on 32bit platforms
|
|
if sizeof(isize) > 4 {
|
|
maxn = 1_000_000_000 // 1 billion integers, when each is 4 bytes => require ~4GB
|
|
}
|
|
// NB: this test requires RAM that many people do not have, so only run it in full, when VTEST_BIGMEM is 1
|
|
vtest_bigmem := os.getenv('VTEST_BIGMEM').int()
|
|
if vtest_bigmem == 0 {
|
|
maxn = 10_000_000
|
|
}
|
|
dump(maxn)
|
|
mut data := []int{len: maxn}
|
|
|
|
// ensure that all of the elements are written at least once, to prevent the OS from cheating:
|
|
for i in 0 .. maxn {
|
|
data[i] = i
|
|
}
|
|
assert data[0] == 0
|
|
assert data[maxn - 1] == maxn - 1
|
|
dump(data#[0..10])
|
|
dump(data#[-10..])
|
|
}
|