diff --git a/docs/release-notes/release-notes-0.14.0.md b/docs/release-notes/release-notes-0.14.0.md index 99fbc481c..36e4ae25b 100644 --- a/docs/release-notes/release-notes-0.14.0.md +++ b/docs/release-notes/release-notes-0.14.0.md @@ -95,6 +95,8 @@ you. * [Fixed timeout flakes in async payment benchmark tests](https://github.com/lightningnetwork/lnd/pull/5579). +* [Flake fix in async bidirectional payment test](https://github.com/lightningnetwork/lnd/pull/5607). + * [Fixed a missing import and git tag in the healthcheck package](https://github.com/lightningnetwork/lnd/pull/5582). * [Fixed a data race in payment unit test](https://github.com/lightningnetwork/lnd/pull/5573). diff --git a/lntest/itest/lnd_payment_test.go b/lntest/itest/lnd_payment_test.go index 0e0f81e32..2ea2aff71 100644 --- a/lntest/itest/lnd_payment_test.go +++ b/lntest/itest/lnd_payment_test.go @@ -581,24 +581,34 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) // Next query for Bob's and Alice's channel states, in order to confirm // that all payment have been successful transmitted. - ctxt, _ = context.WithTimeout(ctxb, defaultTimeout) - bobInfo, err := getChanInfo(ctxt, net.Bob) - if err != nil { - t.Fatalf("unable to get bob's channel info: %v", err) - } + err = wait.NoError(func() error { + ctxt, _ = context.WithTimeout(ctxb, defaultTimeout) + bobInfo, err := getChanInfo(ctxt, net.Bob) + if err != nil { + t.Fatalf("unable to get bob's channel info: %v", err) + } - if bobInfo.LocalBalance != bobAmt { - t.Fatalf("bob's local balance is incorrect, got %v, expected"+ - " %v", bobInfo.LocalBalance, bobAmt) - } - if bobInfo.RemoteBalance != aliceAmt { - t.Fatalf("bob's remote balance is incorrect, got %v, "+ - "expected %v", bobInfo.RemoteBalance, aliceAmt) - } - if len(bobInfo.PendingHtlcs) != 0 { - t.Fatalf("bob's pending htlcs is incorrect, got %v, "+ - "expected %v", len(bobInfo.PendingHtlcs), 0) - } + if bobInfo.LocalBalance != bobAmt { + return fmt.Errorf("bob's local balance is incorrect, "+ + "got %v, expected %v", bobInfo.LocalBalance, + bobAmt) + } + + if bobInfo.RemoteBalance != aliceAmt { + return fmt.Errorf("bob's remote balance is incorrect, "+ + "got %v, expected %v", bobInfo.RemoteBalance, + aliceAmt) + } + + if len(bobInfo.PendingHtlcs) != 0 { + return fmt.Errorf("bob's pending htlcs is incorrect, "+ + "got %v, expected %v", + len(bobInfo.PendingHtlcs), 0) + } + + return nil + }, defaultTimeout) + require.NoError(t.t, err) // Finally, immediately close the channel. This function will also // block until the channel is closed and will additionally assert the