Merge pull request #2846 from cfromknecht/lntest-darwin-timeouts

lntest/timeout: split into darwin and non-darwin timeouts
This commit is contained in:
Olaoluwa Osuntokun authored and GitHub committed 2019-03-28 16:14:38 -07:00
commit 341f5e4329
4 files changed
+82 -62

No files matched your search

+25 -41
View File
@@ -625,9 +625,8 @@ func makeFakePayHash(t *harnessTest) []byte {
// createPayReqs is a helper method that will create a slice of payment // createPayReqs is a helper method that will create a slice of payment
// requests for the given node. // requests for the given node.
func createPayReqs(ctx context.Context, node *lntest.HarnessNode, func createPayReqs(node *lntest.HarnessNode, paymentAmt btcutil.Amount,
paymentAmt btcutil.Amount, numInvoices int) ([]string, [][]byte, numInvoices int) ([]string, [][]byte, []*lnrpc.Invoice, error) {
[]*lnrpc.Invoice, error) {
payReqs := make([]string, numInvoices) payReqs := make([]string, numInvoices)
rHashes := make([][]byte, numInvoices) rHashes := make([][]byte, numInvoices)
@@ -644,7 +643,10 @@ func createPayReqs(ctx context.Context, node *lntest.HarnessNode,
RPreimage: preimage, RPreimage: preimage,
Value: int64(paymentAmt), Value: int64(paymentAmt),
} }
resp, err := node.AddInvoice(ctx, invoice) ctxt, _ := context.WithTimeout(
context.Background(), defaultTimeout,
)
resp, err := node.AddInvoice(ctxt, invoice)
if err != nil { if err != nil {
return nil, nil, nil, fmt.Errorf("unable to add "+ return nil, nil, nil, fmt.Errorf("unable to add "+
"invoice: %v", err) "invoice: %v", err)
@@ -4045,9 +4047,8 @@ func testMultiHopPayments(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, net.Bob, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -4274,9 +4275,8 @@ func testSingleHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Create 5 invoices for Bob, which expect a payment from Alice for 1k // Create 5 invoices for Bob, which expect a payment from Alice for 1k
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, rHashes, _, err := createPayReqs( _, rHashes, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, net.Bob, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -4459,9 +4459,8 @@ func testMultiHopSendToRoute(net *lntest.NetworkHarness, t *harnessTest) {
// Create 5 invoices for Carol, which expect a payment from Alice for 1k // Create 5 invoices for Carol, which expect a payment from Alice for 1k
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
_, rHashes, _, err := createPayReqs( _, rHashes, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, carol, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -4986,9 +4985,8 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// by only using one of the channels. // by only using one of the channels.
const numPayments = 2 const numPayments = 2
const paymentAmt = 70000 const paymentAmt = 70000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numPayments, net.Bob, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -5043,9 +5041,8 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
// Alice should also be able to route payments using this channel, // Alice should also be able to route payments using this channel,
// so send two payments of 60k back to Carol. // so send two payments of 60k back to Carol.
const paymentAmt60k = 60000 const paymentAmt60k = 60000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err = createPayReqs( payReqs, _, _, err = createPayReqs(
ctxt, carol, paymentAmt60k, numPayments, carol, paymentAmt60k, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -5706,9 +5703,8 @@ func testInvoiceSubscriptions(net *lntest.NetworkHarness, t *harnessTest) {
// We'll now add 3 more invoices to Bob's invoice registry. // We'll now add 3 more invoices to Bob's invoice registry.
const numInvoices = 3 const numInvoices = 3
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, newInvoices, err := createPayReqs( payReqs, _, newInvoices, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, net.Bob, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -6724,9 +6720,8 @@ func testRevokedCloseRetribution(net *lntest.NetworkHarness, t *harnessTest) {
// With the channel open, we'll create a few invoices for Bob that // With the channel open, we'll create a few invoices for Bob that
// Carol will pay to in order to advance the state of the channel. // Carol will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, net.Bob, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -6988,9 +6983,8 @@ func testRevokedCloseRetributionZeroValueRemoteOutput(net *lntest.NetworkHarness
// With the channel open, we'll create a few invoices for Carol that // With the channel open, we'll create a few invoices for Carol that
// Dave will pay to in order to advance the state of the channel. // Dave will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolPayReqs, _, _, err := createPayReqs( carolPayReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numInvoices, carol, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -7240,9 +7234,8 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// With the channel open, we'll create a few invoices for Carol that // With the channel open, we'll create a few invoices for Carol that
// Dave will pay to in order to advance the state of the channel. // Dave will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
carolPayReqs, _, _, err := createPayReqs( carolPayReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numInvoices, carol, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -7303,9 +7296,8 @@ func testRevokedCloseRetributionRemoteHodl(net *lntest.NetworkHarness,
// At this point, we'll also send over a set of HTLC's from Carol to // At this point, we'll also send over a set of HTLC's from Carol to
// Dave. This ensures that the final revoked transaction has HTLC's in // Dave. This ensures that the final revoked transaction has HTLC's in
// both directions. // both directions.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
davePayReqs, _, _, err := createPayReqs( davePayReqs, _, _, err := createPayReqs(
ctxt, dave, paymentAmt, numInvoices, dave, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -7694,9 +7686,8 @@ func testDataLossProtection(net *lntest.NetworkHarness, t *harnessTest) {
// the channel. // the channel.
// TODO(halseth): have dangling HTLCs on the commitment, able to // TODO(halseth): have dangling HTLCs on the commitment, able to
// retrive funds? // retrive funds?
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, node, paymentAmt, numInvoices, node, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -8882,9 +8873,8 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// With the channel open, we'll create invoices for Bob that Alice // With the channel open, we'll create invoices for Bob that Alice
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, net.Bob, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -8901,7 +8891,7 @@ func testAsyncPayments(net *lntest.NetworkHarness, t *harnessTest) {
// Open up a payment stream to Alice that we'll use to send payment to // Open up a payment stream to Alice that we'll use to send payment to
// Bob. We also create a small helper function to send payments to Bob, // Bob. We also create a small helper function to send payments to Bob,
// consuming the payment hashes we generated above. // consuming the payment hashes we generated above.
ctxt, _ = context.WithTimeout(ctxb, time.Minute) ctxt, _ = context.WithTimeout(ctxb, lntest.AsyncBenchmarkTimeout)
alicePayStream, err := net.Alice.SendPayment(ctxt) alicePayStream, err := net.Alice.SendPayment(ctxt)
if err != nil { if err != nil {
t.Fatalf("unable to create payment stream for alice: %v", err) t.Fatalf("unable to create payment stream for alice: %v", err)
@@ -9034,9 +9024,8 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// With the channel open, we'll create invoices for Bob that Alice // With the channel open, we'll create invoices for Bob that Alice
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
bobPayReqs, _, _, err := createPayReqs( bobPayReqs, _, _, err := createPayReqs(
ctxt, net.Bob, paymentAmt, numInvoices, net.Bob, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -9044,9 +9033,8 @@ func testBidirectionalAsyncPayments(net *lntest.NetworkHarness, t *harnessTest)
// With the channel open, we'll create invoices for Alice that Bob // With the channel open, we'll create invoices for Alice that Bob
// will pay to in order to advance the state of the channel. // will pay to in order to advance the state of the channel.
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
alicePayReqs, _, _, err := createPayReqs( alicePayReqs, _, _, err := createPayReqs(
ctxt, net.Alice, paymentAmt, numInvoices, net.Alice, paymentAmt, numInvoices,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -11147,9 +11135,8 @@ func testSwitchCircuitPersistence(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, carol, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -11487,9 +11474,8 @@ func testSwitchOfflineDelivery(net *lntest.NetworkHarness, t *harnessTest) {
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, carol, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -11835,9 +11821,8 @@ func testSwitchOfflineDeliveryPersistence(net *lntest.NetworkHarness, t *harness
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, carol, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
@@ -12186,9 +12171,8 @@ func testSwitchOfflineDeliveryOutgoingOffline(
// satoshis with a different preimage each time. // satoshis with a different preimage each time.
const numPayments = 5 const numPayments = 5
const paymentAmt = 1000 const paymentAmt = 1000
ctxt, _ = context.WithTimeout(ctxb, defaultTimeout)
payReqs, _, _, err := createPayReqs( payReqs, _, _, err := createPayReqs(
ctxt, carol, paymentAmt, numPayments, carol, paymentAmt, numPayments,
) )
if err != nil { if err != nil {
t.Fatalf("unable to create pay reqs: %v", err) t.Fatalf("unable to create pay reqs: %v", err)
+2 -21
View File
@@ -24,27 +24,8 @@ import (
"github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/lnwire"
) )
const ( // DefaultCSV is the CSV delay (remotedelay) we will start our test nodes with.
// DefaultCSV is the CSV delay (remotedelay) we will start our test const DefaultCSV = 4
// nodes with.
DefaultCSV = 4
// MinerMempoolTimeout is the max time we will wait for a transaction
// to propagate to the mining node's mempool.
MinerMempoolTimeout = time.Second * 30
// ChannelOpenTimeout is the max time we will wait before a channel to
// be considered opened.
ChannelOpenTimeout = time.Second * 30
// ChannelCloseTimeout is the max time we will wait before a channel is
// considered closed.
ChannelCloseTimeout = time.Second * 30
// DefaultTimeout is a timeout that will be used for various wait
// scenarios where no custom timeout value is defined.
DefaultTimeout = time.Second * 30
)
// NetworkHarness is an integration testing harness for the lightning network. // NetworkHarness is an integration testing harness for the lightning network.
// The harness by default is created with two active nodes on the network: // The harness by default is created with two active nodes on the network:
+27
View File
@@ -0,0 +1,27 @@
// +build !darwin
package lntest
import "time"
const (
// MinerMempoolTimeout is the max time we will wait for a transaction
// to propagate to the mining node's mempool.
MinerMempoolTimeout = time.Second * 30
// ChannelOpenTimeout is the max time we will wait before a channel to
// be considered opened.
ChannelOpenTimeout = time.Second * 30
// ChannelCloseTimeout is the max time we will wait before a channel is
// considered closed.
ChannelCloseTimeout = time.Second * 30
// DefaultTimeout is a timeout that will be used for various wait
// scenarios where no custom timeout value is defined.
DefaultTimeout = time.Second * 30
// AsyncBenchmarkTimeout is the timeout used when running the async
// payments benchmark.
AsyncBenchmarkTimeout = time.Minute
)
+28
View File
@@ -0,0 +1,28 @@
// +build darwin
package lntest
import "time"
const (
// MinerMempoolTimeout is the max time we will wait for a transaction
// to propagate to the mining node's mempool.
MinerMempoolTimeout = time.Second * 30
// ChannelOpenTimeout is the max time we will wait before a channel to
// be considered opened.
ChannelOpenTimeout = time.Second * 30
// ChannelCloseTimeout is the max time we will wait before a channel is
// considered closed.
ChannelCloseTimeout = time.Second * 30
// DefaultTimeout is a timeout that will be used for various wait
// scenarios where no custom timeout value is defined.
DefaultTimeout = time.Second * 30
// AsyncBenchmarkTimeout is the timeout used when running the async
// payments benchmark. This timeout takes considerably longer on darwin
// after go1.12 corrected its use of fsync.
AsyncBenchmarkTimeout = time.Minute * 3
)