diff --git a/reorganization_test.go b/reorganization_test.go index 87afbe44..69f22b0f 100644 --- a/reorganization_test.go +++ b/reorganization_test.go @@ -56,6 +56,12 @@ func TestReorganization(t *testing.T) { defer os.Remove(dbname) defer db.Close() + // Insert the main network genesis block. + genesis := btcutil.NewBlock(&btcwire.GenesisBlock) + if _, err := db.InsertBlock(genesis); err != nil { + t.Errorf("Failed to insert genesis block: %v", err) + } + // Since we're not dealing with the real block chain, disable // checkpoints and set the coinbase maturity to 1. blockChain := btcchain.New(db, btcwire.MainNet, nil) diff --git a/test_coverage.txt b/test_coverage.txt index ae333a52..e0681766 100644 --- a/test_coverage.txt +++ b/test_coverage.txt @@ -1,79 +1,90 @@ -github.com/conformal/btcchain/chain.go BlockChain.removeOrphanBlock 100.00% (12/12) -github.com/conformal/btcchain/chain.go BlockChain.getOrphanRoot 100.00% (7/7) +github.com/conformal/btcchain/chain.go BlockChain.removeOrphanBlock 100.00% (16/16) +github.com/conformal/btcchain/validate.go countSigOps 100.00% (8/8) github.com/conformal/btcchain/checkpoints.go init 100.00% (6/6) -github.com/conformal/btcchain/merkle.go hashMerkleBranches 100.00% (5/5) github.com/conformal/btcchain/difficulty.go ShaHashToBig 100.00% (5/5) -github.com/conformal/btcchain/chain.go newBlockNode 100.00% (4/4) +github.com/conformal/btcchain/merkle.go hashMerkleBranches 100.00% (5/5) github.com/conformal/btcchain/merkle.go nextPowerOfTwo 100.00% (4/4) -github.com/conformal/btcchain/difficulty.go calcWork 100.00% (3/3) +github.com/conformal/btcchain/chain.go newBlockNode 100.00% (4/4) github.com/conformal/btcchain/process.go BlockChain.blockExists 100.00% (3/3) -github.com/conformal/btcchain/chain.go New 100.00% (2/2) github.com/conformal/btcchain/checkpoints.go newShaHashFromStr 100.00% (2/2) -github.com/conformal/btcchain/timesorter.go timeSorter.Less 100.00% (1/1) -github.com/conformal/btcchain/validate.go calcBlockSubsidy 100.00% (1/1) -github.com/conformal/btcchain/timesorter.go timeSorter.Swap 100.00% (1/1) -github.com/conformal/btcchain/checkpoints.go BlockChain.DisableCheckpoints 100.00% (1/1) -github.com/conformal/btcchain/timesorter.go timeSorter.Len 100.00% (1/1) +github.com/conformal/btcchain/chain.go New 100.00% (2/2) github.com/conformal/btcchain/log.go DisableLog 100.00% (1/1) +github.com/conformal/btcchain/validate.go calcBlockSubsidy 100.00% (1/1) +github.com/conformal/btcchain/timesorter.go timeSorter.Less 100.00% (1/1) +github.com/conformal/btcchain/timesorter.go timeSorter.Swap 100.00% (1/1) +github.com/conformal/btcchain/timesorter.go timeSorter.Len 100.00% (1/1) github.com/conformal/btcchain/log.go init 100.00% (1/1) +github.com/conformal/btcchain/params.go BlockChain.chainParams 100.00% (1/1) +github.com/conformal/btcchain/checkpoints.go BlockChain.DisableCheckpoints 100.00% (1/1) github.com/conformal/btcchain/merkle.go BuildMerkleTreeStore 94.12% (16/17) +github.com/conformal/btcchain/txlookup.go disconnectTransactions 93.75% (15/16) +github.com/conformal/btcchain/txlookup.go fetchTxListMain 93.33% (14/15) +github.com/conformal/btcchain/process.go BlockChain.processOrphans 92.86% (13/14) github.com/conformal/btcchain/chain.go BlockChain.getReorganizeNodes 92.86% (13/14) -github.com/conformal/btcchain/process.go BlockChain.processOrphans 91.67% (11/12) -github.com/conformal/btcchain/txlookup.go disconnectTransactions 90.91% (10/11) -github.com/conformal/btcchain/txlookup.go BlockChain.fetchTxList 88.57% (31/35) -github.com/conformal/btcchain/scriptval.go validateAllTxIn 87.88% (29/33) -github.com/conformal/btcchain/scriptval.go checkBlockScripts 87.50% (7/8) -github.com/conformal/btcchain/chain.go BlockChain.connectBestChain 86.96% (20/23) -github.com/conformal/btcchain/validate.go countSigOps 86.67% (13/15) +github.com/conformal/btcchain/chain.go BlockChain.connectBestChain 90.00% (27/30) +github.com/conformal/btcchain/chain.go BlockChain.getPrevNodeFromBlock 88.89% (8/9) +github.com/conformal/btcchain/scriptval.go ValidateTransactionScripts 88.24% (30/34) +github.com/conformal/btcchain/chain.go BlockChain.calcPastMedianTime 88.24% (15/17) +github.com/conformal/btcchain/txlookup.go BlockChain.fetchTxList 86.36% (19/22) +github.com/conformal/btcchain/scriptval.go checkBlockScripts 85.71% (6/7) +github.com/conformal/btcchain/chain.go BlockChain.reorganizeChain 85.29% (29/34) github.com/conformal/btcchain/chain.go BlockChain.connectBlock 83.33% (10/12) -github.com/conformal/btcchain/validate.go isCoinBase 83.33% (5/6) -github.com/conformal/btcchain/chain.go BlockChain.calcPastMedianTime 82.35% (14/17) -github.com/conformal/btcchain/chain.go BlockChain.reorganizeChain 80.77% (21/26) +github.com/conformal/btcchain/validate.go IsCoinBase 83.33% (5/6) github.com/conformal/btcchain/chain.go BlockChain.isMajorityVersion 80.00% (8/10) -github.com/conformal/btcchain/txlookup.go BlockChain.fetchInputTransactions 78.26% (18/23) -github.com/conformal/btcchain/chain.go BlockChain.getPrevNodeFromBlock 77.78% (7/9) +github.com/conformal/btcchain/difficulty.go calcWork 80.00% (4/5) +github.com/conformal/btcchain/chain.go BlockChain.addOrphanBlock 77.78% (14/18) +github.com/conformal/btcchain/txlookup.go BlockChain.fetchInputTransactions 76.92% (20/26) github.com/conformal/btcchain/chain.go BlockChain.disconnectBlock 76.92% (10/13) -github.com/conformal/btcchain/chain.go BlockChain.addOrphanBlock 75.00% (12/16) +github.com/conformal/btcchain/difficulty.go BigToCompact 75.00% (12/16) github.com/conformal/btcchain/difficulty.go CompactToBig 75.00% (9/12) -github.com/conformal/btcchain/validate.go BlockChain.checkConnectBlock 68.52% (37/54) -github.com/conformal/btcchain/validate.go BlockChain.checkBlockSanity 66.67% (30/45) +github.com/conformal/btcchain/validate.go BlockChain.checkConnectBlock 69.23% (36/52) github.com/conformal/btcchain/validate.go isNullOutpoint 66.67% (2/3) +github.com/conformal/btcchain/validate.go BlockChain.checkBlockSanity 65.12% (28/43) github.com/conformal/btcchain/scriptval.go validateTxIn 64.71% (11/17) -github.com/conformal/btcchain/validate.go checkTransactionInputs 63.64% (28/44) -github.com/conformal/btcchain/validate.go checkTransactionSanity 62.16% (23/37) +github.com/conformal/btcchain/validate.go CheckTransactionInputs 64.44% (29/45) +github.com/conformal/btcchain/validate.go CheckTransactionSanity 62.16% (23/37) github.com/conformal/btcchain/txlookup.go connectTransactions 60.00% (9/15) +github.com/conformal/btcchain/params.go ChainParams 60.00% (3/5) github.com/conformal/btcchain/validate.go isBIP0030Node 60.00% (3/5) -github.com/conformal/btcchain/params.go BlockChain.netParams 60.00% (3/5) -github.com/conformal/btcchain/process.go BlockChain.ProcessBlock 59.09% (26/44) github.com/conformal/btcchain/validate.go BlockChain.checkProofOfWork 58.82% (10/17) github.com/conformal/btcchain/validate.go BlockChain.checkBIP0030 57.14% (8/14) +github.com/conformal/btcchain/process.go BlockChain.ProcessBlock 55.81% (24/43) +github.com/conformal/btcchain/accept.go BlockChain.maybeAcceptBlock 53.52% (38/71) github.com/conformal/btcchain/chain.go BlockChain.loadBlockNode 50.00% (11/22) -github.com/conformal/btcchain/checkpoints.go BlockChain.LatestCheckpoint 50.00% (2/4) +github.com/conformal/btcchain/chain.go BlockChain.getPrevNodeFromNode 50.00% (4/8) github.com/conformal/btcchain/notifications.go BlockChain.sendNotification 50.00% (2/4) -github.com/conformal/btcchain/accept.go BlockChain.maybeAcceptBlock 46.38% (32/69) -github.com/conformal/btcchain/chain.go BlockChain.getPrevNodeFromNode 33.33% (4/12) +github.com/conformal/btcchain/checkpoints.go BlockChain.LatestCheckpoint 50.00% (2/4) +github.com/conformal/btcchain/chain.go BlockChain.pruneBlockNodes 41.18% (7/17) github.com/conformal/btcchain/checkpoints.go BlockChain.verifyCheckpoint 33.33% (2/6) -github.com/conformal/btcchain/validate.go isFinalizedTransaction 23.08% (3/13) +github.com/conformal/btcchain/validate.go IsFinalizedTransaction 23.08% (3/13) +github.com/conformal/btcchain/difficulty.go BlockChain.calcNextRequiredDifficulty 19.51% (8/41) github.com/conformal/btcchain/checkpoints.go BlockChain.findLatestKnownCheckpoint 18.18% (2/11) -github.com/conformal/btcchain/difficulty.go BlockChain.calcNextRequiredDifficulty 15.00% (6/40) +github.com/conformal/btcchain/blocklocator.go BlockChain.BlockLocatorFromHash 0.00% (0/39) github.com/conformal/btcchain/checkpoints.go BlockChain.IsCheckpointCandidate 0.00% (0/32) -github.com/conformal/btcchain/validate.go countP2SHSigOps 0.00% (0/26) -github.com/conformal/btcchain/difficulty.go BigToCompact 0.00% (0/16) -github.com/conformal/btcchain/difficulty.go BlockChain.calcEasiestDifficulty 0.00% (0/14) +github.com/conformal/btcchain/validate.go countP2SHSigOps 0.00% (0/24) +github.com/conformal/btcchain/chain.go BlockChain.GenerateInitialIndex 0.00% (0/17) +github.com/conformal/btcchain/txlookup.go BlockChain.FetchTransactionStore 0.00% (0/15) +github.com/conformal/btcchain/difficulty.go BlockChain.calcEasiestDifficulty 0.00% (0/15) github.com/conformal/btcchain/validate.go checkSerializedHeight 0.00% (0/12) github.com/conformal/btcchain/difficulty.go BlockChain.findPrevTestNetDifficulty 0.00% (0/12) +github.com/conformal/btcchain/chain.go BlockChain.removeBlockNode 0.00% (0/12) +github.com/conformal/btcchain/chain.go BlockChain.GetOrphanRoot 0.00% (0/11) +github.com/conformal/btcchain/chain.go BlockChain.IsCurrent 0.00% (0/9) github.com/conformal/btcchain/chain.go removeChildNode 0.00% (0/8) +github.com/conformal/btcchain/chain.go BlockChain.HaveInventory 0.00% (0/7) github.com/conformal/btcchain/log.go SetLogWriter 0.00% (0/7) +github.com/conformal/btcchain/blocklocator.go BlockChain.LatestBlockLocator 0.00% (0/6) +github.com/conformal/btcchain/chain.go BlockChain.IsKnownOrphan 0.00% (0/5) github.com/conformal/btcchain/checkpoints.go isNonstandardTransaction 0.00% (0/5) github.com/conformal/btcchain/checkpoints.go BlockChain.checkpointData 0.00% (0/4) github.com/conformal/btcchain/validate.go isTransactionSpent 0.00% (0/4) github.com/conformal/btcchain/notifications.go NotificationType.String 0.00% (0/3) github.com/conformal/btcchain/chain.go addChildrenWork 0.00% (0/3) -github.com/conformal/btcchain/process.go RuleError.Error 0.00% (0/1) -github.com/conformal/btcchain/chain.go BlockChain.DisableVerify 0.00% (0/1) -github.com/conformal/btcchain/log.go UseLogger 0.00% (0/1) -github.com/conformal/btcchain/log.go logClosure.String 0.00% (0/1) github.com/conformal/btcchain/log.go newLogClosure 0.00% (0/1) -github.com/conformal/btcchain ------------------------------------- 57.57% (578/1004) +github.com/conformal/btcchain/log.go UseLogger 0.00% (0/1) +github.com/conformal/btcchain/chain.go BlockChain.DisableVerify 0.00% (0/1) +github.com/conformal/btcchain/log.go logClosure.String 0.00% (0/1) +github.com/conformal/btcchain/process.go RuleError.Error 0.00% (0/1) +github.com/conformal/btcchain ------------------------------------- 53.97% (625/1158)