diff --git a/invoices/invoiceregistry_test.go b/invoices/invoiceregistry_test.go index f91777f3d..03e58af36 100644 --- a/invoices/invoiceregistry_test.go +++ b/invoices/invoiceregistry_test.go @@ -3,6 +3,7 @@ package invoices_test import ( "context" "crypto/rand" + "fmt" "math" "testing" "testing/quick" @@ -12,6 +13,7 @@ import ( "github.com/lightningnetwork/lnd/chainntnfs" "github.com/lightningnetwork/lnd/clock" invpkg "github.com/lightningnetwork/lnd/invoices" + "github.com/lightningnetwork/lnd/lntest/wait" "github.com/lightningnetwork/lnd/lntypes" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/record" @@ -1059,9 +1061,7 @@ func TestInvoiceExpiryWithRegistry(t *testing.T) { require.NoError(t, err) } - if err := registry.Start(); err != nil { - t.Fatalf("cannot start registry: %v", err) - } + require.NoError(t, registry.Start(), "cannot start registry") // Now generate pending and invoices and add them to the registry while // it is up and running. We'll manipulate the clock to let them expire. @@ -1085,10 +1085,8 @@ func TestInvoiceExpiryWithRegistry(t *testing.T) { ctxb, invoicesThatWillCancel[i], ) require.NoError(t, err, "cannot find invoice") - - if invoice.State == invpkg.ContractCanceled { - t.Fatalf("expected pending invoice, got canceled") - } + require.NotEqual(t, invpkg.ContractCanceled, invoice.State, + "expected pending invoice, got canceled") } // Fwd time 1 day. @@ -1101,24 +1099,28 @@ func TestInvoiceExpiryWithRegistry(t *testing.T) { // canceled returns a bool to indicate whether all the invoices are // canceled. - canceled := func() bool { + canceled := func() error { for i := range expectedCancellations { invoice, err := registry.LookupInvoice( ctxb, expectedCancellations[i], ) - require.NoError(t, err) + if err != nil { + return err + } if invoice.State != invpkg.ContractCanceled { - return false + return fmt.Errorf("expected state %v, got %v", + invpkg.ContractCanceled, invoice.State) } } - return true + return nil } // Retrospectively check that all invoices that were expected to be // canceled are indeed canceled. - require.Eventually(t, canceled, testTimeout, 10*time.Millisecond) + err = wait.NoError(canceled, testTimeout) + require.NoError(t, err, "timeout checking invoice state") // Finally stop the registry. require.NoError(t, registry.Stop(), "failed to stop invoice registry") diff --git a/itest/lnd_multi-hop_test.go b/itest/lnd_multi-hop_test.go index 1841d77ca..e85de046a 100644 --- a/itest/lnd_multi-hop_test.go +++ b/itest/lnd_multi-hop_test.go @@ -2166,7 +2166,6 @@ func runExtraPreimageFromRemoteCommit(ht *lntest.HarnessTest, if ht.IsNeutrinoBackend() { // Mine a block to confirm Carol's 2nd level success tx. ht.MineBlocksAndAssertNumTxes(1, 1) - numTxesMempool-- numBlocks-- } @@ -2195,12 +2194,6 @@ func runExtraPreimageFromRemoteCommit(ht *lntest.HarnessTest, // anchor sweep tx in the mempool. case lnrpc.CommitmentType_SCRIPT_ENFORCED_LEASE: numTxesMempool++ - - // For neutrino backend, because of the additional block mined, - // Bob's output is now mature. - if ht.IsNeutrinoBackend() { - numTxesMempool++ - } } // Mine a block to clean the mempool. diff --git a/lntest/harness.go b/lntest/harness.go index 5915abed7..ccb5be930 100644 --- a/lntest/harness.go +++ b/lntest/harness.go @@ -1504,11 +1504,13 @@ func (h *HarnessTest) CleanupForceClose(hn *node.HarnessNode) { h.AssertNumPendingForceClose(hn, 1) // Mine enough blocks for the node to sweep its funds from the force - // closed channel. + // closed channel. The commit sweep resolver is able to broadcast the + // sweep tx up to one block before the CSV elapses, so wait until + // defaulCSV-1. // - // The commit sweep resolver is able to broadcast the sweep tx up to - // one block before the CSV elapses, so wait until defaulCSV-1. - h.MineBlocks(node.DefaultCSV - 1) + // NOTE: we might empty blocks here as we don't know the exact number + // of blocks to mine. This may end up mining more blocks than needed. + h.MineEmptyBlocks(node.DefaultCSV - 1) // The node should now sweep the funds, clean up by mining the sweeping // tx.