Exception instead of assigning 0 in case of wrong vector length

This commit is contained in:
Pieter Wuille
2014-04-19 23:25:44 +02:00
parent eb2cbd754d
commit 4d480c8a3f
2 changed files with 15 additions and 10 deletions

View File

@@ -160,11 +160,11 @@ BOOST_AUTO_TEST_CASE( basics ) // constructors, equality, inequality
tmpS = ~R2S; BOOST_CHECK(tmpS == ~R2S);
tmpS = ~MaxS; BOOST_CHECK(tmpS == ~MaxS);
// Wrong length must give 0
BOOST_CHECK(uint256(std::vector<unsigned char>(OneArray,OneArray+31)) == 0);
BOOST_CHECK(uint256(std::vector<unsigned char>(OneArray,OneArray+20)) == 0);
BOOST_CHECK(uint160(std::vector<unsigned char>(OneArray,OneArray+32)) == 0);
BOOST_CHECK(uint160(std::vector<unsigned char>(OneArray,OneArray+19)) == 0);
// Wrong length must throw exception.
BOOST_CHECK_THROW(uint256(std::vector<unsigned char>(OneArray,OneArray+31)), uint_error);
BOOST_CHECK_THROW(uint256(std::vector<unsigned char>(OneArray,OneArray+20)), uint_error);
BOOST_CHECK_THROW(uint160(std::vector<unsigned char>(OneArray,OneArray+32)), uint_error);
BOOST_CHECK_THROW(uint160(std::vector<unsigned char>(OneArray,OneArray+19)), uint_error);
}
void shiftArrayRight(unsigned char* to, const unsigned char* from, unsigned int arrayLength, unsigned int bitsToShift)