2020-08-06 16:28:19 +03:00
|
|
|
const (
|
|
|
|
num_iterations = 10000
|
|
|
|
)
|
|
|
|
|
2020-08-31 11:44:39 +03:00
|
|
|
fn do_send(ch chan int) {
|
2020-08-06 16:28:19 +03:00
|
|
|
for i in 0 .. num_iterations {
|
2020-08-31 11:44:39 +03:00
|
|
|
ch <- i
|
2020-08-06 16:28:19 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn test_channel_buffered() {
|
2020-08-31 11:44:39 +03:00
|
|
|
ch := chan int{cap: 1000}
|
|
|
|
go do_send(ch)
|
2020-08-06 16:28:19 +03:00
|
|
|
mut sum := i64(0)
|
|
|
|
for _ in 0 .. num_iterations {
|
2020-08-31 11:44:39 +03:00
|
|
|
sum += <-ch
|
2020-08-06 16:28:19 +03:00
|
|
|
}
|
|
|
|
assert sum == u64(num_iterations)*(num_iterations-1)/2
|
|
|
|
}
|