blob: 5179638d529c67da923c0976e7db7315bb163864 [file] [log] [blame]
Roman Elizarova3497ee2017-08-10 20:25:36 +03001/*
Roman Elizarov82d2f792018-12-19 13:13:06 +03002 * Copyright 2017-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
Roman Elizarova3497ee2017-08-10 20:25:36 +03003 */
4
5package kotlinx.atomicfu.test
6
7import kotlinx.atomicfu.LockFreedomTestEnvironment
8import org.junit.Test
9import java.util.*
10
11class LockFreeQueueLFTest : LockFreedomTestEnvironment("LockFreeQueueLFTest") {
12 val nEnqueuers = 2
13 val nDequeuers = 2
14 val nSeconds = 5
15
16 val queue = LockFreeQueue()
17
18 @Test
19 fun testLockFreedom() {
20 repeat(nEnqueuers) { id ->
21 val rnd = Random()
22 testThread("Enqueue-$id") {
23 queue.enqueue(rnd.nextInt(1000))
24 }
25 }
26 repeat(nDequeuers) { id ->
27 testThread("Dequeue-$id") {
28 queue.dequeue()
29 }
30 }
31 performTest(nSeconds)
32 }
33}