diff options
author | Noel Tiernan <tiernolan@gmail.com> | 2014-01-19 13:32:10 +0000 |
---|---|---|
committer | Noel Tiernan <tiernolan@gmail.com> | 2014-01-19 13:55:08 +0000 |
commit | e6c6bc92f468b3eeffe1bd5ebc7b6c617bd31714 (patch) | |
tree | 4e4b13516d951388b6736237c633ffb2017297b9 | |
parent | dd7c1cf534b760e9da55c225d6bb05f2bdb8e2e7 (diff) | |
download | bitcoin-e6c6bc92f468b3eeffe1bd5ebc7b6c617bd31714.tar.xz |
Adds additional zero checks for setCompact
These encoded values should all decode to zero
Positive Numbers
0x01003456 (1 byte 0x00)
0x02000056 (2 bytes 0x0000)
0x03000000 (3 bytes 0x000000)
0x04000000 (4 bytes 0x000000_00)
Negative Numbers
0x00923456 -(0 bytes, so zero)
0x01803456 -(1 byte 0x00)
0x02800056 -(2 bytes 0x0000)
0x03800000 -(3 bytes 0x000000)
0x04800000 -(4 bytes 0x000000_00)
-rw-r--r-- | src/test/bignum_tests.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/bignum_tests.cpp b/src/test/bignum_tests.cpp index 9d67324c76..205b15adcf 100644 --- a/src/test/bignum_tests.cpp +++ b/src/test/bignum_tests.cpp @@ -135,6 +135,42 @@ BOOST_AUTO_TEST_CASE(bignum_SetCompact) BOOST_CHECK_EQUAL(num.GetHex(), "0"); BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + num.SetCompact(0x01003456); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x02000056); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x03000000); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x04000000); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x00923456); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x01803456); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x02800056); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x03800000); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + + num.SetCompact(0x04800000); + BOOST_CHECK_EQUAL(num.GetHex(), "0"); + BOOST_CHECK_EQUAL(num.GetCompact(), 0U); + num.SetCompact(0x01123456); BOOST_CHECK_EQUAL(num.GetHex(), "12"); BOOST_CHECK_EQUAL(num.GetCompact(), 0x01120000U); |