MCPcopy Create free account
hub / github.com/apache/storm / JCQueueTest

Class JCQueueTest

storm-client/test/jvm/org/apache/storm/utils/JCQueueTest.java:28–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26import org.junit.jupiter.api.Test;
27
28public class JCQueueTest {
29
30 private final static int TIMEOUT = 5000; // MS
31 private final static int PRODUCER_NUM = 4;
32 IWaitStrategy waitStrategy = new WaitStrategyPark(100);
33
34 @Test
35 public void testFirstMessageFirst() {
36 Assertions.assertTimeoutPreemptively(Duration.ofSeconds(10), () -> {
37 JCQueue queue = createQueue("firstMessageOrder", 16);
38
39 queue.publish("FIRST");
40
41 Runnable producer = new IncProducer(queue, 100, 1);
42
43 final AtomicReference<Object> result = new AtomicReference<>();
44 Runnable consumer = new ConsumerThd(queue, new JCQueue.Consumer() {
45 private boolean head = true;
46
47 @Override
48 public void accept(Object event) {
49 if (head) {
50 head = false;
51 result.set(event);
52 }
53 }
54
55 @Override
56 public void flush() {
57 }
58 });
59
60 run(producer, consumer, queue);
61 assertEquals("FIRST", result.get(),
62 "We expect to receive first published message first, but received " + result.get());
63 });
64 }
65
66 @Test
67 public void testInOrder() {
68 Assertions.assertTimeoutPreemptively(Duration.ofSeconds(10), () -> {
69 final AtomicBoolean allInOrder = new AtomicBoolean(true);
70
71 JCQueue queue = createQueue("consumerHang", 1024);
72 Runnable producer = new IncProducer(queue, 1024 * 1024, 100);
73 Runnable consumer = new ConsumerThd(queue, new JCQueue.Consumer() {
74 long _expected = 0;
75
76 @Override
77 public void accept(Object obj) {
78 if (_expected != ((Number) obj).longValue()) {
79 allInOrder.set(false);
80 System.out.println("Expected " + _expected + " but got " + obj);
81 }
82 _expected++;
83 }
84
85 @Override

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected