From 682e9bf6a76473ae288f17ba8856e02e962c8b6f Mon Sep 17 00:00:00 2001 From: Bastien Teinturier <31281497+t-bast@users.noreply.github.com> Date: Wed, 8 Jun 2022 13:33:55 +0200 Subject: [PATCH] Fix minimal node fixture flakyness (#2302) There was a race condition between the `wait_for_funding_locked` state and the `normal` state. --- .../eclair/integration/basic/TwoNodesIntegrationSpec.scala | 1 - .../integration/basic/fixtures/MinimalNodeFixture.scala | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/TwoNodesIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/TwoNodesIntegrationSpec.scala index cbeb0e4fa6..ae2ab79092 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/TwoNodesIntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/TwoNodesIntegrationSpec.scala @@ -9,7 +9,6 @@ import org.scalatest.TestData import org.scalatest.concurrent.IntegrationPatience import scodec.bits.HexStringSyntax - /** * This test checks the integration between Channel and Router (events, etc.) */ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/fixtures/MinimalNodeFixture.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/fixtures/MinimalNodeFixture.scala index 3316c5cb3d..9962d5972b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/fixtures/MinimalNodeFixture.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/fixtures/MinimalNodeFixture.scala @@ -24,6 +24,7 @@ import fr.acinq.eclair.router.Router import fr.acinq.eclair.wire.protocol.IPAddress import fr.acinq.eclair.{BlockHeight, MilliSatoshi, MilliSatoshiLong, NodeParams, ShortChannelId, TestBitcoinCoreClient, TestDatabases, TestFeeEstimator} import org.scalatest.Assertions +import org.scalatest.concurrent.Eventually.eventually import java.net.InetAddress import java.util.UUID @@ -162,8 +163,10 @@ object MinimalNodeFixture extends Assertions { watch1.replyTo ! WatchFundingConfirmedTriggered(blockHeight, txIndex, fundingTx) watch2.replyTo ! WatchFundingConfirmedTriggered(blockHeight, txIndex, fundingTx) - waitReady(node1, channelId) - waitReady(node2, channelId) + eventually { + assert(getChannelState(node1, channelId) == NORMAL) + assert(getChannelState(node2, channelId) == NORMAL) + } val data1After = getChannelData(node1, channelId).asInstanceOf[DATA_NORMAL] val data2After = getChannelData(node2, channelId).asInstanceOf[DATA_NORMAL]