1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

tests: remove duplicate test autolock_array_1_test.v

This commit is contained in:
Delyan Angelov 2020-07-13 15:02:44 +03:00
parent 6e6010d198
commit a565848dfa

View File

@ -1,52 +0,0 @@
import sync
import time
const (
iterations_per_thread = 100000
)
fn add_elements(shared foo []int, n int) {
for _ in 0 .. iterations_per_thread {
foo << n
}
// automatic lock is not yet implemented for this...
lock foo {
foo[0]++
}
}
fn test_autolocked_array() {
shared abc := &[0]
go add_elements(shared abc, 1)
go add_elements(shared abc, 3)
for _ in 0 .. iterations_per_thread {
abc << 0
}
// wait for coroutines to finish - that should really be
// done by channels, yield, semaphore...
for {
mut finished_threads := 0
rlock abc {
finished_threads = abc[0]
}
if finished_threads == 2 {
break
}
time.sleep_ms(100)
}
// create histogram of results
mut result := [0, 0, 0, 0]
rlock abc {
// automatic rlock for iteration is also not implemented, yet
for v in abc {
if v > 3 {
panic('unexpected element on array')
}
result[v]++
}
}
assert result[0] == iterations_per_thread
assert result[1] == iterations_per_thread
assert result[2] == 1 // number of non-main threads
assert result[3] == iterations_per_thread
}