Changeset View
Changeset View
Standalone View
Standalone View
src/test/undo_tests.cpp
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(connect_utxo_extblock) { | ||||
tx.vin[0].prevout.n = 0; | tx.vin[0].prevout.n = 0; | ||||
tx.vin[0].nSequence = CTxIn::SEQUENCE_FINAL; | tx.vin[0].nSequence = CTxIn::SEQUENCE_FINAL; | ||||
tx.vin[0].scriptSig.resize(0); | tx.vin[0].scriptSig.resize(0); | ||||
tx.nVersion = 2; | tx.nVersion = 2; | ||||
auto prevTx0 = CTransaction(tx); | auto prevTx0 = CTransaction(tx); | ||||
AddCoins(view, prevTx0, 100); | AddCoins(view, prevTx0, 100); | ||||
tx.vin[0].prevout.hash = prevTx0.GetId(); | tx.vin[0].prevout.hash = prevTx0.GetHash(); | ||||
auto tx0 = CTransaction(tx); | auto tx0 = CTransaction(tx); | ||||
block.vtx[1] = MakeTransactionRef(tx0); | block.vtx[1] = MakeTransactionRef(tx0); | ||||
// Now update the UTXO set. | // Now update the UTXO set. | ||||
CBlockUndo blockundo; | CBlockUndo blockundo; | ||||
UpdateUTXOSet(block, view, blockundo, chainparams, 123456); | UpdateUTXOSet(block, view, blockundo, chainparams, 123456); | ||||
BOOST_CHECK(view.GetBestBlock() == block.GetHash()); | BOOST_CHECK(view.GetBestBlock() == block.GetHash()); | ||||
BOOST_CHECK(HasSpendableCoin(view, coinbaseTx.GetId())); | BOOST_CHECK(HasSpendableCoin(view, coinbaseTx.GetHash())); | ||||
BOOST_CHECK(HasSpendableCoin(view, tx0.GetId())); | BOOST_CHECK(HasSpendableCoin(view, tx0.GetHash())); | ||||
BOOST_CHECK(!HasSpendableCoin(view, prevTx0.GetId())); | BOOST_CHECK(!HasSpendableCoin(view, prevTx0.GetHash())); | ||||
UndoBlock(block, view, blockundo, chainparams, 123456); | UndoBlock(block, view, blockundo, chainparams, 123456); | ||||
BOOST_CHECK(view.GetBestBlock() == block.hashPrevBlock); | BOOST_CHECK(view.GetBestBlock() == block.hashPrevBlock); | ||||
BOOST_CHECK(!HasSpendableCoin(view, coinbaseTx.GetId())); | BOOST_CHECK(!HasSpendableCoin(view, coinbaseTx.GetHash())); | ||||
BOOST_CHECK(!HasSpendableCoin(view, tx0.GetId())); | BOOST_CHECK(!HasSpendableCoin(view, tx0.GetHash())); | ||||
BOOST_CHECK(HasSpendableCoin(view, prevTx0.GetId())); | BOOST_CHECK(HasSpendableCoin(view, prevTx0.GetHash())); | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |