Changeset View
Changeset View
Standalone View
Standalone View
src/test/blockindex_tests.cpp
Show First 20 Lines • Show All 155 Lines • ▼ Show 20 Lines | std::array<std::pair<int, int>, 12> times2 = {{{0, 0}, | ||||
{8, 3}, | {8, 3}, | ||||
{9, 4}}}; | {9, 4}}}; | ||||
for (size_t i = 0; i < indices.size(); i++) { | for (size_t i = 0; i < indices.size(); i++) { | ||||
indices[i].nTime = times2[i].first; | indices[i].nTime = times2[i].first; | ||||
BOOST_CHECK(indices[i].GetMedianTimePast() == times2[i].second); | BOOST_CHECK(indices[i].GetMedianTimePast() == times2[i].second); | ||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(index_isvalid) { | |||||
CBlockIndex index; | |||||
// Test against all validity values | |||||
std::set<BlockValidity> validityValues{ | |||||
BlockValidity::UNKNOWN, BlockValidity::HEADER, | |||||
BlockValidity::TREE, BlockValidity::TRANSACTIONS, | |||||
BlockValidity::CHAIN, BlockValidity::SCRIPTS}; | |||||
std::set<bool> boolValues = {false, true}; | |||||
for (BlockValidity validity : validityValues) { | |||||
index.nStatus = BlockStatus().withValidity(validity); | |||||
for (bool withFailed : boolValues) { | |||||
index.nStatus = index.nStatus.withFailed(withFailed); | |||||
for (bool withFailedParent : boolValues) { | |||||
index.nStatus = | |||||
index.nStatus.withFailedParent(withFailedParent); | |||||
for (BlockValidity validUpTo : validityValues) { | |||||
bool isValid = index.IsValid(validUpTo); | |||||
if (validUpTo <= validity && !withFailed && | |||||
!withFailedParent) { | |||||
BOOST_CHECK(isValid); | |||||
} else { | |||||
BOOST_CHECK(!isValid); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |