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) { | BOOST_AUTO_TEST_CASE(index_validity_tests) { | ||||
CBlockIndex index; | CBlockIndex index; | ||||
// Test against all validity values | // Test against all validity values | ||||
std::set<BlockValidity> validityValues{ | std::set<BlockValidity> validityValues{ | ||||
BlockValidity::UNKNOWN, BlockValidity::HEADER, | BlockValidity::UNKNOWN, BlockValidity::HEADER, | ||||
BlockValidity::TREE, BlockValidity::TRANSACTIONS, | BlockValidity::TREE, BlockValidity::TRANSACTIONS, | ||||
BlockValidity::CHAIN, BlockValidity::SCRIPTS}; | BlockValidity::CHAIN, BlockValidity::SCRIPTS}; | ||||
std::set<bool> boolValues = {false, true}; | std::set<bool> boolValues = {false, true}; | ||||
for (BlockValidity validity : validityValues) { | for (BlockValidity validity : validityValues) { | ||||
index.nStatus = BlockStatus().withValidity(validity); | |||||
for (bool withFailed : boolValues) { | for (bool withFailed : boolValues) { | ||||
index.nStatus = index.nStatus.withFailed(withFailed); | |||||
for (bool withFailedParent : boolValues) { | for (bool withFailedParent : boolValues) { | ||||
index.nStatus = | index.nStatus = BlockStatus() | ||||
index.nStatus.withFailedParent(withFailedParent); | .withValidity(validity) | ||||
.withFailed(withFailed) | |||||
.withFailedParent(withFailedParent); | |||||
for (BlockValidity validUpTo : validityValues) { | for (BlockValidity validUpTo : validityValues) { | ||||
// Test isValidity() | |||||
bool isValid = index.IsValid(validUpTo); | bool isValid = index.IsValid(validUpTo); | ||||
if (validUpTo <= validity && !withFailed && | if (validUpTo <= validity && !withFailed && | ||||
!withFailedParent) { | !withFailedParent) { | ||||
BOOST_CHECK(isValid); | BOOST_CHECK(isValid); | ||||
} else { | } else { | ||||
BOOST_CHECK(!isValid); | BOOST_CHECK(!isValid); | ||||
} | } | ||||
// Test RaiseValidity() | |||||
CBlockIndex indexRaiseValidity; | |||||
for (BlockValidity validFrom : validityValues) { | |||||
indexRaiseValidity.nStatus = | |||||
BlockStatus() | |||||
.withValidity(validFrom) | |||||
.withFailed(withFailed) | |||||
.withFailedParent(withFailedParent); | |||||
bool raisedValidity = | |||||
indexRaiseValidity.RaiseValidity(validUpTo); | |||||
if (validFrom < validUpTo && !withFailed && | |||||
!withFailedParent) { | |||||
BOOST_CHECK(raisedValidity); | |||||
BOOST_CHECK( | |||||
indexRaiseValidity.nStatus.getValidity() == | |||||
validUpTo); | |||||
} else { | |||||
BOOST_CHECK(!raisedValidity); | |||||
BOOST_CHECK( | |||||
indexRaiseValidity.nStatus.getValidity() == | |||||
validFrom); | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |