lntemp+itest: refactor testChannelForceClosure
This commit is contained in:
6 files changed
+338
-573
No files matched your search
@@ -17,7 +17,6 @@ import (
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
|
||||
"github.com/lightningnetwork/lnd/lnrpc/walletrpc"
|
||||
"github.com/lightningnetwork/lnd/lntest"
|
||||
"github.com/lightningnetwork/lnd/lntest/wait"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -815,100 +814,6 @@ func checkPendingHtlcStageAndMaturity(
|
||||
return nil
|
||||
}
|
||||
|
||||
// assertReports checks that the count of resolutions we have present per
|
||||
// type matches a set of expected resolutions.
|
||||
func assertReports(t *harnessTest, node *lntest.HarnessNode,
|
||||
channelPoint wire.OutPoint, expected map[string]*lnrpc.Resolution) {
|
||||
|
||||
// Get our node's closed channels.
|
||||
ctxb := context.Background()
|
||||
ctxt, cancel := context.WithTimeout(ctxb, defaultTimeout)
|
||||
defer cancel()
|
||||
|
||||
closed, err := node.ClosedChannels(
|
||||
ctxt, &lnrpc.ClosedChannelsRequest{},
|
||||
)
|
||||
require.NoError(t.t, err)
|
||||
|
||||
var resolutions []*lnrpc.Resolution
|
||||
for _, close := range closed.Channels {
|
||||
if close.ChannelPoint == channelPoint.String() {
|
||||
resolutions = close.Resolutions
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
require.NotNil(t.t, resolutions)
|
||||
require.Equal(t.t, len(expected), len(resolutions))
|
||||
|
||||
for _, res := range resolutions {
|
||||
outPointStr := fmt.Sprintf("%v:%v", res.Outpoint.TxidStr,
|
||||
res.Outpoint.OutputIndex)
|
||||
|
||||
expected, ok := expected[outPointStr]
|
||||
require.True(t.t, ok)
|
||||
require.Equal(t.t, expected, res)
|
||||
}
|
||||
}
|
||||
|
||||
// assertSweepFound looks up a sweep in a nodes list of broadcast sweeps.
|
||||
func assertSweepFound(t *testing.T, node *lntest.HarnessNode,
|
||||
sweep string, verbose bool) {
|
||||
|
||||
// List all sweeps that alice's node had broadcast.
|
||||
ctxb := context.Background()
|
||||
ctx, cancel := context.WithTimeout(ctxb, defaultTimeout)
|
||||
defer cancel()
|
||||
sweepResp, err := node.WalletKitClient.ListSweeps(
|
||||
ctx, &walletrpc.ListSweepsRequest{
|
||||
Verbose: verbose,
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
var found bool
|
||||
if verbose {
|
||||
found = findSweepInDetails(t, sweep, sweepResp)
|
||||
} else {
|
||||
found = findSweepInTxids(t, sweep, sweepResp)
|
||||
}
|
||||
|
||||
require.True(t, found, "sweep: %v not found", sweep)
|
||||
}
|
||||
|
||||
func findSweepInTxids(t *testing.T, sweepTxid string,
|
||||
sweepResp *walletrpc.ListSweepsResponse) bool {
|
||||
|
||||
sweepTxIDs := sweepResp.GetTransactionIds()
|
||||
require.NotNil(t, sweepTxIDs, "expected transaction ids")
|
||||
require.Nil(t, sweepResp.GetTransactionDetails())
|
||||
|
||||
// Check that the sweep tx we have just produced is present.
|
||||
for _, tx := range sweepTxIDs.TransactionIds {
|
||||
if tx == sweepTxid {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func findSweepInDetails(t *testing.T, sweepTxid string,
|
||||
sweepResp *walletrpc.ListSweepsResponse) bool {
|
||||
|
||||
sweepDetails := sweepResp.GetTransactionDetails()
|
||||
require.NotNil(t, sweepDetails, "expected transaction details")
|
||||
require.Nil(t, sweepResp.GetTransactionIds())
|
||||
|
||||
for _, tx := range sweepDetails.Transactions {
|
||||
if tx.TxHash == sweepTxid {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// assertAmountSent generates a closure which queries listchannels for sndr and
|
||||
// rcvr, and asserts that sndr sent amt satoshis, and that rcvr received amt
|
||||
// satoshis.
|
||||
|
||||
@@ -211,4 +211,8 @@ var allTestCasesTemp = []*lntemp.TestCase{
|
||||
Name: "commitment deadline",
|
||||
TestFunc: testCommitmentTransactionDeadline,
|
||||
},
|
||||
{
|
||||
Name: "channel force closure",
|
||||
TestFunc: testChannelForceClosure,
|
||||
},
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -8,10 +8,6 @@ var allTestCases = []*testCase{
|
||||
name: "open channel reorg test",
|
||||
test: testOpenChannelAfterReorg,
|
||||
},
|
||||
{
|
||||
name: "channel force closure",
|
||||
test: testChannelForceClosure,
|
||||
},
|
||||
{
|
||||
name: "single hop invoice",
|
||||
test: testSingleHopInvoice,
|
||||
|
||||
Reference in new issue
Block a user