Fix flaky spring jms test (#2202)
This commit is contained in:
parent
facaf8e46f
commit
22109b2719
|
@ -8,7 +8,6 @@ import static Jms2Test.producerSpan
|
||||||
|
|
||||||
import com.google.common.io.Files
|
import com.google.common.io.Files
|
||||||
import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
|
import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
|
||||||
import java.util.concurrent.CountDownLatch
|
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
import javax.jms.Session
|
import javax.jms.Session
|
||||||
|
@ -102,9 +101,7 @@ class SpringTemplateJms2Test extends AgentInstrumentationSpecification {
|
||||||
def "send and receive message generates spans"() {
|
def "send and receive message generates spans"() {
|
||||||
setup:
|
setup:
|
||||||
AtomicReference<String> msgId = new AtomicReference<>()
|
AtomicReference<String> msgId = new AtomicReference<>()
|
||||||
CountDownLatch countDownLatch = new CountDownLatch(1)
|
|
||||||
Thread.start {
|
Thread.start {
|
||||||
countDownLatch.countDown()
|
|
||||||
TextMessage msg = template.receive(destination)
|
TextMessage msg = template.receive(destination)
|
||||||
assert msg.text == messageText
|
assert msg.text == messageText
|
||||||
msgId.set(msg.getJMSMessageID())
|
msgId.set(msg.getJMSMessageID())
|
||||||
|
@ -115,7 +112,6 @@ class SpringTemplateJms2Test extends AgentInstrumentationSpecification {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// wait for thread to start, we expect the first span to be from receive
|
// wait for thread to start, we expect the first span to be from receive
|
||||||
countDownLatch.await()
|
|
||||||
TextMessage receivedMessage = template.sendAndReceive(destination) {
|
TextMessage receivedMessage = template.sendAndReceive(destination) {
|
||||||
session -> template.getMessageConverter().toMessage(messageText, session)
|
session -> template.getMessageConverter().toMessage(messageText, session)
|
||||||
}
|
}
|
||||||
|
@ -123,6 +119,17 @@ class SpringTemplateJms2Test extends AgentInstrumentationSpecification {
|
||||||
expect:
|
expect:
|
||||||
receivedMessage.text == "responded!"
|
receivedMessage.text == "responded!"
|
||||||
assertTraces(4) {
|
assertTraces(4) {
|
||||||
|
sortTraces {
|
||||||
|
def expectedOrder = ["$destinationName receive",
|
||||||
|
"$destinationName send",
|
||||||
|
"(temporary) receive",
|
||||||
|
"(temporary) send"]
|
||||||
|
// ensure that traces appear in expected order
|
||||||
|
traces.sort {a,b ->
|
||||||
|
expectedOrder.indexOf(a[0].name) - expectedOrder.indexOf(b[0].name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
trace(0, 1) {
|
trace(0, 1) {
|
||||||
consumerSpan(it, 0, destinationType, destinationName, msgId.get(), null, "receive")
|
consumerSpan(it, 0, destinationType, destinationName, msgId.get(), null, "receive")
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,6 +97,17 @@ class SpringTemplateJms1Test extends AgentInstrumentationSpecification {
|
||||||
expect:
|
expect:
|
||||||
receivedMessage.text == "responded!"
|
receivedMessage.text == "responded!"
|
||||||
assertTraces(4) {
|
assertTraces(4) {
|
||||||
|
sortTraces {
|
||||||
|
def expectedOrder = ["$destinationName receive",
|
||||||
|
"$destinationName send",
|
||||||
|
"(temporary) receive",
|
||||||
|
"(temporary) send"]
|
||||||
|
// ensure that traces appear in expected order
|
||||||
|
traces.sort {a,b ->
|
||||||
|
expectedOrder.indexOf(a[0].name) - expectedOrder.indexOf(b[0].name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
trace(0, 1) {
|
trace(0, 1) {
|
||||||
consumerSpan(it, 0, destinationType, destinationName, msgId.get(), null, "receive")
|
consumerSpan(it, 0, destinationType, destinationName, msgId.get(), null, "receive")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue