package org.jctools.queues;
import org.openjdk.jcstress.annotations.Actor;
import org.openjdk.jcstress.annotations.Arbiter;
import org.openjdk.jcstress.annotations.JCStressTest;
import org.openjdk.jcstress.annotations.Outcome;
import org.openjdk.jcstress.annotations.State;
import org.openjdk.jcstress.infra.results.IntResult1;
import static org.openjdk.jcstress.annotations.Expect.ACCEPTABLE;
import static org.openjdk.jcstress.annotations.Expect.FORBIDDEN;
@JCStressTest
@Outcome(id = "1", expect = ACCEPTABLE, desc = "All ok.")
@Outcome(expect = FORBIDDEN)
@State
public class SpscArrayQueueConsumerTest {
private final SpscArrayQueue<Integer> queue = new SpscArrayQueue<>(3);
public SpscArrayQueueConsumerTest() {
queue.offer(1);
queue.offer(2);
queue.offer(3);
}
@Actor
public void actor1() {
queue.poll(); queue.poll();
}
@Arbiter
public void arbiter1(IntResult1 result) {
result.r1 = queue.size();
}
}