From 07618ca0c6d16f7fa0d7dad333091118c46a2f5e Mon Sep 17 00:00:00 2001 From: "Johan T. Halseth" Date: Fri, 13 Jul 2018 12:35:29 +0200 Subject: [PATCH] chainntnfs/interface_test: increase wait time for mempool spends This commit increases the time we wait for a spend client to notify a mempool spend from 50ms to 10s. This is done to catch the case where bitcoind would use up to 7 seconds before notifying about a mempool spend, which wasn't caught by the test. --- chainntnfs/interface_test.go | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/chainntnfs/interface_test.go b/chainntnfs/interface_test.go index c2bd8a13f..cee8c5144 100644 --- a/chainntnfs/interface_test.go +++ b/chainntnfs/interface_test.go @@ -425,14 +425,30 @@ func testSpendNotification(miner *rpctest.Harness, t.Fatalf("tx not relayed to miner: %v", err) } - // Make sure notifications are not yet sent. + // Make sure notifications are not yet sent. We launch a go routine for + // all the spend clients, such that we can wait for them all in + // parallel. + // + // Since bitcoind is at times very slow at notifying about txs in the + // mempool, we use a quite large timeout of 10 seconds. + // TODO(halseth): change this when mempool spends are removed. + mempoolSpendTimeout := 10 * time.Second + mempoolSpends := make(chan *chainntnfs.SpendDetail, numClients) for _, c := range spendClients { - select { - case <-c.Spend: - t.Fatalf("did not expect to get notification before " + - "block was mined") - case <-time.After(50 * time.Millisecond): - } + go func(client *chainntnfs.SpendEvent) { + select { + case s := <-client.Spend: + mempoolSpends <- s + case <-time.After(mempoolSpendTimeout): + } + }(c) + } + + select { + case <-mempoolSpends: + t.Fatalf("did not expect to get notification before " + + "block was mined") + case <-time.After(mempoolSpendTimeout): } // Now we mine a single block, which should include our spend. The