From 1714394add610f0c1c53e98045be33122fe5abab Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Mon, 26 Oct 2020 14:21:07 +0100 Subject: [PATCH] itest: fix send payment flake In some cases the router isn't yet fully aware of all newly opened channels. We need to give it some time to process the updates. Therefore we add a wait for sending payments to give it a few more changes to catch up. --- lntest/itest/lnd_test.go | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/lntest/itest/lnd_test.go b/lntest/itest/lnd_test.go index 835cbded3..b0905000e 100644 --- a/lntest/itest/lnd_test.go +++ b/lntest/itest/lnd_test.go @@ -13984,19 +13984,26 @@ func sendAndAssertSuccess(t *harnessTest, node *lntest.HarnessNode, ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout) defer cancel() - stream, err := node.RouterClient.SendPaymentV2(ctx, req) - if err != nil { - t.Fatalf("unable to send payment: %v", err) - } + var result *lnrpc.Payment + err := wait.NoError(func() error { + stream, err := node.RouterClient.SendPaymentV2(ctx, req) + if err != nil { + return fmt.Errorf("unable to send payment: %v", err) + } - result, err := getPaymentResult(stream) - if err != nil { - t.Fatalf("unable to get payment result: %v", err) - } + result, err = getPaymentResult(stream) + if err != nil { + return fmt.Errorf("unable to get payment result: %v", + err) + } - if result.Status != lnrpc.Payment_SUCCEEDED { - t.Fatalf("payment failed: %v", result.Status) - } + if result.Status != lnrpc.Payment_SUCCEEDED { + return fmt.Errorf("payment failed: %v", result.Status) + } + + return nil + }, defaultTimeout) + require.NoError(t.t, err) return result }