Changeset View
Changeset View
Standalone View
Standalone View
src/test/blockencodings_tests.cpp
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | static CBlock BuildBlockTestCase() { | ||||
return block; | return block; | ||||
} | } | ||||
// Number of shared use_counts we expect for a tx we havent touched | // Number of shared use_counts we expect for a tx we havent touched | ||||
// == 2 (mempool + our copy from the GetSharedTx call) | // == 2 (mempool + our copy from the GetSharedTx call) | ||||
#define SHARED_TX_OFFSET 2 | #define SHARED_TX_OFFSET 2 | ||||
BOOST_AUTO_TEST_CASE(SimpleRoundTripTest) { | BOOST_AUTO_TEST_CASE(SimpleRoundTripTest) { | ||||
CTxMemPool pool(CFeeRate(Amount(0))); | CTxMemPool pool; | ||||
TestMemPoolEntryHelper entry; | TestMemPoolEntryHelper entry; | ||||
CBlock block(BuildBlockTestCase()); | CBlock block(BuildBlockTestCase()); | ||||
pool.addUnchecked(block.vtx[2]->GetId(), entry.FromTx(*block.vtx[2])); | pool.addUnchecked(block.vtx[2]->GetId(), entry.FromTx(*block.vtx[2])); | ||||
BOOST_CHECK_EQUAL( | BOOST_CHECK_EQUAL( | ||||
pool.mapTx.find(block.vtx[2]->GetId())->GetSharedTx().use_count(), | pool.mapTx.find(block.vtx[2]->GetId())->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 0); | SHARED_TX_OFFSET + 0); | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | inline void SerializationOp(Stream &s, Operation ser_action) { | ||||
READWRITE(msb); | READWRITE(msb); | ||||
shorttxids[i] = (uint64_t(msb) << 32) | uint64_t(lsb); | shorttxids[i] = (uint64_t(msb) << 32) | uint64_t(lsb); | ||||
} | } | ||||
READWRITE(prefilledtxn); | READWRITE(prefilledtxn); | ||||
} | } | ||||
}; | }; | ||||
BOOST_AUTO_TEST_CASE(NonCoinbasePreforwardRTTest) { | BOOST_AUTO_TEST_CASE(NonCoinbasePreforwardRTTest) { | ||||
CTxMemPool pool(CFeeRate(Amount(0))); | CTxMemPool pool; | ||||
TestMemPoolEntryHelper entry; | TestMemPoolEntryHelper entry; | ||||
CBlock block(BuildBlockTestCase()); | CBlock block(BuildBlockTestCase()); | ||||
pool.addUnchecked(block.vtx[2]->GetId(), entry.FromTx(*block.vtx[2])); | pool.addUnchecked(block.vtx[2]->GetId(), entry.FromTx(*block.vtx[2])); | ||||
BOOST_CHECK_EQUAL( | BOOST_CHECK_EQUAL( | ||||
pool.mapTx.find(block.vtx[2]->GetId())->GetSharedTx().use_count(), | pool.mapTx.find(block.vtx[2]->GetId())->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 0); | SHARED_TX_OFFSET + 0); | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | // Test with pre-forwarding tx 1, but not coinbase | ||||
BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 1); | SHARED_TX_OFFSET + 1); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 0); | SHARED_TX_OFFSET + 0); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(SufficientPreforwardRTTest) { | BOOST_AUTO_TEST_CASE(SufficientPreforwardRTTest) { | ||||
CTxMemPool pool(CFeeRate(Amount(0))); | CTxMemPool pool; | ||||
TestMemPoolEntryHelper entry; | TestMemPoolEntryHelper entry; | ||||
CBlock block(BuildBlockTestCase()); | CBlock block(BuildBlockTestCase()); | ||||
pool.addUnchecked(block.vtx[1]->GetId(), entry.FromTx(*block.vtx[1])); | pool.addUnchecked(block.vtx[1]->GetId(), entry.FromTx(*block.vtx[1])); | ||||
BOOST_CHECK_EQUAL( | BOOST_CHECK_EQUAL( | ||||
pool.mapTx.find(block.vtx[1]->GetId())->GetSharedTx().use_count(), | pool.mapTx.find(block.vtx[1]->GetId())->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 0); | SHARED_TX_OFFSET + 0); | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | // Test with pre-forwarding coinbase + tx 2 with tx 1 in mempool | ||||
BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 1); | SHARED_TX_OFFSET + 1); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | BOOST_CHECK_EQUAL(pool.mapTx.find(txhash)->GetSharedTx().use_count(), | ||||
SHARED_TX_OFFSET + 0); | SHARED_TX_OFFSET + 0); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest) { | BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest) { | ||||
CTxMemPool pool(CFeeRate(Amount(0))); | CTxMemPool pool; | ||||
CMutableTransaction coinbase; | CMutableTransaction coinbase; | ||||
coinbase.vin.resize(1); | coinbase.vin.resize(1); | ||||
coinbase.vin[0].scriptSig.resize(10); | coinbase.vin[0].scriptSig.resize(10); | ||||
coinbase.vout.resize(1); | coinbase.vout.resize(1); | ||||
coinbase.vout[0].nValue = Amount(42); | coinbase.vout[0].nValue = Amount(42); | ||||
CBlock block; | CBlock block; | ||||
block.vtx.resize(1); | block.vtx.resize(1); | ||||
▲ Show 20 Lines • Show All 65 Lines • Show Last 20 Lines |