tests: Test for expected return values when calling functions returning a success code

This commit is contained in:
practicalswift 2018-12-12 14:31:38 +01:00
parent 6d0a14703e
commit c84c2b8c92
16 changed files with 161 additions and 161 deletions

View file

@ -154,11 +154,11 @@ BOOST_AUTO_TEST_CASE(addrman_ports)
// Test 7; Addr with same IP but diff port does not replace existing addr. // Test 7; Addr with same IP but diff port does not replace existing addr.
CService addr1 = ResolveService("250.1.1.1", 8333); CService addr1 = ResolveService("250.1.1.1", 8333);
addrman.Add(CAddress(addr1, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr1, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 1U); BOOST_CHECK_EQUAL(addrman.size(), 1U);
CService addr1_port = ResolveService("250.1.1.1", 8334); CService addr1_port = ResolveService("250.1.1.1", 8334);
addrman.Add(CAddress(addr1_port, NODE_NONE), source); BOOST_CHECK(!addrman.Add(CAddress(addr1_port, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 1U); BOOST_CHECK_EQUAL(addrman.size(), 1U);
CAddrInfo addr_ret2 = addrman.Select(); CAddrInfo addr_ret2 = addrman.Select();
BOOST_CHECK_EQUAL(addr_ret2.ToString(), "250.1.1.1:8333"); BOOST_CHECK_EQUAL(addr_ret2.ToString(), "250.1.1.1:8333");
@ -181,7 +181,7 @@ BOOST_AUTO_TEST_CASE(addrman_select)
// Test: Select from new with 1 addr in new. // Test: Select from new with 1 addr in new.
CService addr1 = ResolveService("250.1.1.1", 8333); CService addr1 = ResolveService("250.1.1.1", 8333);
addrman.Add(CAddress(addr1, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr1, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 1U); BOOST_CHECK_EQUAL(addrman.size(), 1U);
bool newOnly = true; bool newOnly = true;
@ -205,20 +205,20 @@ BOOST_AUTO_TEST_CASE(addrman_select)
CService addr3 = ResolveService("250.3.2.2", 9999); CService addr3 = ResolveService("250.3.2.2", 9999);
CService addr4 = ResolveService("250.3.3.3", 9999); CService addr4 = ResolveService("250.3.3.3", 9999);
addrman.Add(CAddress(addr2, NODE_NONE), ResolveService("250.3.1.1", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr2, NODE_NONE), ResolveService("250.3.1.1", 8333)));
addrman.Add(CAddress(addr3, NODE_NONE), ResolveService("250.3.1.1", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr3, NODE_NONE), ResolveService("250.3.1.1", 8333)));
addrman.Add(CAddress(addr4, NODE_NONE), ResolveService("250.4.1.1", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr4, NODE_NONE), ResolveService("250.4.1.1", 8333)));
// Add three addresses to tried table. // Add three addresses to tried table.
CService addr5 = ResolveService("250.4.4.4", 8333); CService addr5 = ResolveService("250.4.4.4", 8333);
CService addr6 = ResolveService("250.4.5.5", 7777); CService addr6 = ResolveService("250.4.5.5", 7777);
CService addr7 = ResolveService("250.4.6.6", 8333); CService addr7 = ResolveService("250.4.6.6", 8333);
addrman.Add(CAddress(addr5, NODE_NONE), ResolveService("250.3.1.1", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr5, NODE_NONE), ResolveService("250.3.1.1", 8333)));
addrman.Good(CAddress(addr5, NODE_NONE)); addrman.Good(CAddress(addr5, NODE_NONE));
addrman.Add(CAddress(addr6, NODE_NONE), ResolveService("250.3.1.1", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr6, NODE_NONE), ResolveService("250.3.1.1", 8333)));
addrman.Good(CAddress(addr6, NODE_NONE)); addrman.Good(CAddress(addr6, NODE_NONE));
addrman.Add(CAddress(addr7, NODE_NONE), ResolveService("250.1.1.3", 8333)); BOOST_CHECK(addrman.Add(CAddress(addr7, NODE_NONE), ResolveService("250.1.1.3", 8333)));
addrman.Good(CAddress(addr7, NODE_NONE)); addrman.Good(CAddress(addr7, NODE_NONE));
// Test: 6 addrs + 1 addr from last test = 7. // Test: 6 addrs + 1 addr from last test = 7.
@ -242,7 +242,7 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
for (unsigned int i = 1; i < 18; i++) { for (unsigned int i = 1; i < 18; i++) {
CService addr = ResolveService("250.1.1." + std::to_string(i)); CService addr = ResolveService("250.1.1." + std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
//Test: No collision in new table yet. //Test: No collision in new table yet.
BOOST_CHECK_EQUAL(addrman.size(), i); BOOST_CHECK_EQUAL(addrman.size(), i);
@ -250,11 +250,11 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
//Test: new table collision! //Test: new table collision!
CService addr1 = ResolveService("250.1.1.18"); CService addr1 = ResolveService("250.1.1.18");
addrman.Add(CAddress(addr1, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr1, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 17U); BOOST_CHECK_EQUAL(addrman.size(), 17U);
CService addr2 = ResolveService("250.1.1.19"); CService addr2 = ResolveService("250.1.1.19");
addrman.Add(CAddress(addr2, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr2, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 18U); BOOST_CHECK_EQUAL(addrman.size(), 18U);
} }
@ -268,7 +268,7 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
for (unsigned int i = 1; i < 80; i++) { for (unsigned int i = 1; i < 80; i++) {
CService addr = ResolveService("250.1.1." + std::to_string(i)); CService addr = ResolveService("250.1.1." + std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(CAddress(addr, NODE_NONE)); addrman.Good(CAddress(addr, NODE_NONE));
//Test: No collision in tried table yet. //Test: No collision in tried table yet.
@ -277,11 +277,11 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
//Test: tried table collision! //Test: tried table collision!
CService addr1 = ResolveService("250.1.1.80"); CService addr1 = ResolveService("250.1.1.80");
addrman.Add(CAddress(addr1, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr1, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 79U); BOOST_CHECK_EQUAL(addrman.size(), 79U);
CService addr2 = ResolveService("250.1.1.81"); CService addr2 = ResolveService("250.1.1.81");
addrman.Add(CAddress(addr2, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr2, NODE_NONE), source));
BOOST_CHECK_EQUAL(addrman.size(), 80U); BOOST_CHECK_EQUAL(addrman.size(), 80U);
} }
@ -298,9 +298,9 @@ BOOST_AUTO_TEST_CASE(addrman_find)
CNetAddr source1 = ResolveIP("250.1.2.1"); CNetAddr source1 = ResolveIP("250.1.2.1");
CNetAddr source2 = ResolveIP("250.1.2.2"); CNetAddr source2 = ResolveIP("250.1.2.2");
addrman.Add(addr1, source1); BOOST_CHECK(addrman.Add(addr1, source1));
addrman.Add(addr2, source2); BOOST_CHECK(!addrman.Add(addr2, source2));
addrman.Add(addr3, source1); BOOST_CHECK(addrman.Add(addr3, source1));
// Test: ensure Find returns an IP matching what we searched on. // Test: ensure Find returns an IP matching what we searched on.
CAddrInfo* info1 = addrman.Find(addr1); CAddrInfo* info1 = addrman.Find(addr1);
@ -382,11 +382,11 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
CNetAddr source2 = ResolveIP("250.2.3.3"); CNetAddr source2 = ResolveIP("250.2.3.3");
// Test: Ensure GetAddr works with new addresses. // Test: Ensure GetAddr works with new addresses.
addrman.Add(addr1, source1); BOOST_CHECK(addrman.Add(addr1, source1));
addrman.Add(addr2, source2); BOOST_CHECK(addrman.Add(addr2, source2));
addrman.Add(addr3, source1); BOOST_CHECK(addrman.Add(addr3, source1));
addrman.Add(addr4, source2); BOOST_CHECK(addrman.Add(addr4, source2));
addrman.Add(addr5, source1); BOOST_CHECK(addrman.Add(addr5, source1));
// GetAddr returns 23% of addresses, 23% of 5 is 1 rounded down. // GetAddr returns 23% of addresses, 23% of 5 is 1 rounded down.
BOOST_CHECK_EQUAL(addrman.GetAddr().size(), 1U); BOOST_CHECK_EQUAL(addrman.GetAddr().size(), 1U);
@ -555,7 +555,7 @@ BOOST_AUTO_TEST_CASE(addrman_selecttriedcollision)
CNetAddr source = ResolveIP("252.2.2.2"); CNetAddr source = ResolveIP("252.2.2.2");
for (unsigned int i = 1; i < 23; i++) { for (unsigned int i = 1; i < 23; i++) {
CService addr = ResolveService("250.1.1."+std::to_string(i)); CService addr = ResolveService("250.1.1."+std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
// No collisions yet. // No collisions yet.
@ -585,7 +585,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
CNetAddr source = ResolveIP("252.2.2.2"); CNetAddr source = ResolveIP("252.2.2.2");
for (unsigned int i = 1; i < 23; i++) { for (unsigned int i = 1; i < 23; i++) {
CService addr = ResolveService("250.1.1."+std::to_string(i)); CService addr = ResolveService("250.1.1."+std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
// No collision yet. // No collision yet.
@ -595,7 +595,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
// Collision between 23 and 19. // Collision between 23 and 19.
CService addr23 = ResolveService("250.1.1.23"); CService addr23 = ResolveService("250.1.1.23");
addrman.Add(CAddress(addr23, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr23, NODE_NONE), source));
addrman.Good(addr23); addrman.Good(addr23);
BOOST_CHECK(addrman.size() == 23); BOOST_CHECK(addrman.size() == 23);
@ -608,7 +608,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
// Lets create two collisions. // Lets create two collisions.
for (unsigned int i = 24; i < 33; i++) { for (unsigned int i = 24; i < 33; i++) {
CService addr = ResolveService("250.1.1."+std::to_string(i)); CService addr = ResolveService("250.1.1."+std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
BOOST_CHECK(addrman.size() == i); BOOST_CHECK(addrman.size() == i);
@ -617,14 +617,14 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
// Cause a collision. // Cause a collision.
CService addr33 = ResolveService("250.1.1.33"); CService addr33 = ResolveService("250.1.1.33");
addrman.Add(CAddress(addr33, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr33, NODE_NONE), source));
addrman.Good(addr33); addrman.Good(addr33);
BOOST_CHECK(addrman.size() == 33); BOOST_CHECK(addrman.size() == 33);
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.27:0"); BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.27:0");
// Cause a second collision. // Cause a second collision.
addrman.Add(CAddress(addr23, NODE_NONE), source); BOOST_CHECK(!addrman.Add(CAddress(addr23, NODE_NONE), source));
addrman.Good(addr23); addrman.Good(addr23);
BOOST_CHECK(addrman.size() == 33); BOOST_CHECK(addrman.size() == 33);
@ -649,7 +649,7 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
CNetAddr source = ResolveIP("252.2.2.2"); CNetAddr source = ResolveIP("252.2.2.2");
for (unsigned int i = 1; i < 23; i++) { for (unsigned int i = 1; i < 23; i++) {
CService addr = ResolveService("250.1.1."+std::to_string(i)); CService addr = ResolveService("250.1.1."+std::to_string(i));
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
// No collision yet. // No collision yet.
@ -659,7 +659,7 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
// Collision between 23 and 19. // Collision between 23 and 19.
CService addr = ResolveService("250.1.1.23"); CService addr = ResolveService("250.1.1.23");
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
BOOST_CHECK(addrman.size() == 23); BOOST_CHECK(addrman.size() == 23);
@ -674,14 +674,14 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0"); BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0");
// If 23 was swapped for 19, then this should cause no collisions. // If 23 was swapped for 19, then this should cause no collisions.
addrman.Add(CAddress(addr, NODE_NONE), source); BOOST_CHECK(!addrman.Add(CAddress(addr, NODE_NONE), source));
addrman.Good(addr); addrman.Good(addr);
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0"); BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0");
// If we insert 19 is should collide with 23. // If we insert 19 is should collide with 23.
CService addr19 = ResolveService("250.1.1.19"); CService addr19 = ResolveService("250.1.1.19");
addrman.Add(CAddress(addr19, NODE_NONE), source); BOOST_CHECK(!addrman.Add(CAddress(addr19, NODE_NONE), source));
addrman.Good(addr19); addrman.Good(addr19);
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.23:0"); BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.23:0");

View file

@ -355,7 +355,7 @@ BOOST_AUTO_TEST_CASE(test_CheckQueue_FrozenCleanup)
// would get called twice). // would get called twice).
vChecks[0].should_freeze = true; vChecks[0].should_freeze = true;
control.Add(vChecks); control.Add(vChecks);
control.Wait(); // Hangs here BOOST_CHECK(control.Wait()); // Hangs here
}); });
{ {
std::unique_lock<std::mutex> l(FrozenCleanupCheck::m); std::unique_lock<std::mutex> l(FrozenCleanupCheck::m);

View file

@ -176,7 +176,7 @@ BOOST_AUTO_TEST_CASE(coins_cache_simulation_test)
} else { } else {
removed_an_entry = true; removed_an_entry = true;
coin.Clear(); coin.Clear();
stack.back()->SpendCoin(COutPoint(txid, 0)); BOOST_CHECK(stack.back()->SpendCoin(COutPoint(txid, 0)));
} }
} }
@ -211,14 +211,14 @@ BOOST_AUTO_TEST_CASE(coins_cache_simulation_test)
// Every 100 iterations, flush an intermediate cache // Every 100 iterations, flush an intermediate cache
if (stack.size() > 1 && InsecureRandBool() == 0) { if (stack.size() > 1 && InsecureRandBool() == 0) {
unsigned int flushIndex = InsecureRandRange(stack.size() - 1); unsigned int flushIndex = InsecureRandRange(stack.size() - 1);
stack[flushIndex]->Flush(); BOOST_CHECK(stack[flushIndex]->Flush());
} }
} }
if (InsecureRandRange(100) == 0) { if (InsecureRandRange(100) == 0) {
// Every 100 iterations, change the cache stack. // Every 100 iterations, change the cache stack.
if (stack.size() > 0 && InsecureRandBool() == 0) { if (stack.size() > 0 && InsecureRandBool() == 0) {
//Remove the top cache //Remove the top cache
stack.back()->Flush(); BOOST_CHECK(stack.back()->Flush());
delete stack.back(); delete stack.back();
stack.pop_back(); stack.pop_back();
} }
@ -403,7 +403,7 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
// Disconnect the tx from the current UTXO // Disconnect the tx from the current UTXO
// See code in DisconnectBlock // See code in DisconnectBlock
// remove outputs // remove outputs
stack.back()->SpendCoin(utxod->first); BOOST_CHECK(stack.back()->SpendCoin(utxod->first));
// restore inputs // restore inputs
if (!tx.IsCoinBase()) { if (!tx.IsCoinBase()) {
const COutPoint &out = tx.vin[0].prevout; const COutPoint &out = tx.vin[0].prevout;
@ -444,13 +444,13 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
// Every 100 iterations, flush an intermediate cache // Every 100 iterations, flush an intermediate cache
if (stack.size() > 1 && InsecureRandBool() == 0) { if (stack.size() > 1 && InsecureRandBool() == 0) {
unsigned int flushIndex = InsecureRandRange(stack.size() - 1); unsigned int flushIndex = InsecureRandRange(stack.size() - 1);
stack[flushIndex]->Flush(); BOOST_CHECK(stack[flushIndex]->Flush());
} }
} }
if (InsecureRandRange(100) == 0) { if (InsecureRandRange(100) == 0) {
// Every 100 iterations, change the cache stack. // Every 100 iterations, change the cache stack.
if (stack.size() > 0 && InsecureRandBool() == 0) { if (stack.size() > 0 && InsecureRandBool() == 0) {
stack.back()->Flush(); BOOST_CHECK(stack.back()->Flush());
delete stack.back(); delete stack.back();
stack.pop_back(); stack.pop_back();
} }
@ -589,7 +589,7 @@ void WriteCoinsViewEntry(CCoinsView& view, CAmount value, char flags)
{ {
CCoinsMap map; CCoinsMap map;
InsertCoinsMapEntry(map, value, flags); InsertCoinsMapEntry(map, value, flags);
view.BatchWrite(map, {}); BOOST_CHECK(view.BatchWrite(map, {}));
} }
class SingleEntryCacheTest class SingleEntryCacheTest

View file

@ -158,7 +158,7 @@ static void test_cache_erase(size_t megabytes)
set.insert(hashes_insert_copy[i]); set.insert(hashes_insert_copy[i]);
/** Erase the first quarter */ /** Erase the first quarter */
for (uint32_t i = 0; i < (n_insert / 4); ++i) for (uint32_t i = 0; i < (n_insert / 4); ++i)
set.contains(hashes[i], true); BOOST_CHECK(set.contains(hashes[i], true));
/** Insert the second half */ /** Insert the second half */
for (uint32_t i = (n_insert / 2); i < n_insert; ++i) for (uint32_t i = (n_insert / 2); i < n_insert; ++i)
set.insert(hashes_insert_copy[i]); set.insert(hashes_insert_copy[i]);
@ -238,7 +238,7 @@ static void test_cache_erase_parallel(size_t megabytes)
size_t start = ntodo*x; size_t start = ntodo*x;
size_t end = ntodo*(x+1); size_t end = ntodo*(x+1);
for (uint32_t i = start; i < end; ++i) for (uint32_t i = start; i < end; ++i)
set.contains(hashes[i], true); BOOST_CHECK(set.contains(hashes[i], true));
}); });
/** Wait for all threads to finish /** Wait for all threads to finish

View file

@ -67,7 +67,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper_batch)
// Remove key3 before it's even been written // Remove key3 before it's even been written
batch.Erase(key3); batch.Erase(key3);
dbw.WriteBatch(batch); BOOST_CHECK(dbw.WriteBatch(batch));
BOOST_CHECK(dbw.Read(key, res)); BOOST_CHECK(dbw.Read(key, res));
BOOST_CHECK_EQUAL(res.ToString(), in.ToString()); BOOST_CHECK_EQUAL(res.ToString(), in.ToString());

View file

@ -77,7 +77,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
// Test starts here // Test starts here
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); // should result in getheaders BOOST_CHECK(peerLogic->SendMessages(&dummyNode1)); // should result in getheaders
} }
{ {
LOCK2(cs_main, dummyNode1.cs_vSend); LOCK2(cs_main, dummyNode1.cs_vSend);
@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
SetMockTime(nStartTime+21*60); SetMockTime(nStartTime+21*60);
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); // should result in getheaders BOOST_CHECK(peerLogic->SendMessages(&dummyNode1)); // should result in getheaders
} }
{ {
LOCK2(cs_main, dummyNode1.cs_vSend); LOCK2(cs_main, dummyNode1.cs_vSend);
@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
SetMockTime(nStartTime+24*60); SetMockTime(nStartTime+24*60);
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); // should result in disconnect BOOST_CHECK(peerLogic->SendMessages(&dummyNode1)); // should result in disconnect
} }
BOOST_CHECK(dummyNode1.fDisconnect == true); BOOST_CHECK(dummyNode1.fDisconnect == true);
SetMockTime(0); SetMockTime(0);
@ -208,7 +208,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
} }
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
} }
BOOST_CHECK(connman->IsBanned(addr1)); BOOST_CHECK(connman->IsBanned(addr1));
BOOST_CHECK(!connman->IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned BOOST_CHECK(!connman->IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned
@ -225,7 +225,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
} }
{ {
LOCK2(cs_main, dummyNode2.cs_sendProcessing); LOCK2(cs_main, dummyNode2.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode2); BOOST_CHECK(peerLogic->SendMessages(&dummyNode2));
} }
BOOST_CHECK(!connman->IsBanned(addr2)); // 2 not banned yet... BOOST_CHECK(!connman->IsBanned(addr2)); // 2 not banned yet...
BOOST_CHECK(connman->IsBanned(addr1)); // ... but 1 still should be BOOST_CHECK(connman->IsBanned(addr1)); // ... but 1 still should be
@ -235,7 +235,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
} }
{ {
LOCK2(cs_main, dummyNode2.cs_sendProcessing); LOCK2(cs_main, dummyNode2.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode2); BOOST_CHECK(peerLogic->SendMessages(&dummyNode2));
} }
BOOST_CHECK(connman->IsBanned(addr2)); BOOST_CHECK(connman->IsBanned(addr2));
@ -261,7 +261,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
} }
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
} }
BOOST_CHECK(!connman->IsBanned(addr1)); BOOST_CHECK(!connman->IsBanned(addr1));
{ {
@ -270,7 +270,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
} }
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
} }
BOOST_CHECK(!connman->IsBanned(addr1)); BOOST_CHECK(!connman->IsBanned(addr1));
{ {
@ -279,7 +279,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
} }
{ {
LOCK2(cs_main, dummyNode1.cs_sendProcessing); LOCK2(cs_main, dummyNode1.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode1); BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
} }
BOOST_CHECK(connman->IsBanned(addr1)); BOOST_CHECK(connman->IsBanned(addr1));
gArgs.ForceSetArg("-banscore", std::to_string(DEFAULT_BANSCORE_THRESHOLD)); gArgs.ForceSetArg("-banscore", std::to_string(DEFAULT_BANSCORE_THRESHOLD));
@ -308,7 +308,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
} }
{ {
LOCK2(cs_main, dummyNode.cs_sendProcessing); LOCK2(cs_main, dummyNode.cs_sendProcessing);
peerLogic->SendMessages(&dummyNode); BOOST_CHECK(peerLogic->SendMessages(&dummyNode));
} }
BOOST_CHECK(connman->IsBanned(addr)); BOOST_CHECK(connman->IsBanned(addr));
@ -337,7 +337,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
CKey key; CKey key;
key.MakeNewKey(true); key.MakeNewKey(true);
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(key); BOOST_CHECK(keystore.AddKey(key));
// 50 orphan transactions: // 50 orphan transactions:
for (int i = 0; i < 50; i++) for (int i = 0; i < 50; i++)
@ -366,7 +366,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
tx.vout.resize(1); tx.vout.resize(1);
tx.vout[0].nValue = 1*CENT; tx.vout[0].nValue = 1*CENT;
tx.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID()); tx.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID());
SignSignature(keystore, *txPrev, tx, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, *txPrev, tx, 0, SIGHASH_ALL));
AddOrphanTx(MakeTransactionRef(tx), i); AddOrphanTx(MakeTransactionRef(tx), i);
} }
@ -386,7 +386,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
tx.vin[j].prevout.n = j; tx.vin[j].prevout.n = j;
tx.vin[j].prevout.hash = txPrev->GetHash(); tx.vin[j].prevout.hash = txPrev->GetHash();
} }
SignSignature(keystore, *txPrev, tx, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, *txPrev, tx, 0, SIGHASH_ALL));
// Re-use same signature for other inputs // Re-use same signature for other inputs
// (they don't have to be valid for this test) // (they don't have to be valid for this test)
for (unsigned int j = 1; j < tx.vin.size(); j++) for (unsigned int j = 1; j < tx.vin.size(); j++)

View file

@ -107,7 +107,7 @@ BOOST_AUTO_TEST_CASE(key_io_valid_gen)
} else { } else {
CTxDestination dest; CTxDestination dest;
CScript exp_script(exp_payload.begin(), exp_payload.end()); CScript exp_script(exp_payload.begin(), exp_payload.end());
ExtractDestination(exp_script, dest); BOOST_CHECK(ExtractDestination(exp_script, dest));
std::string address = EncodeDestination(dest); std::string address = EncodeDestination(dest);
BOOST_CHECK_EQUAL(address, exp_base58string); BOOST_CHECK_EQUAL(address, exp_base58string);

View file

@ -163,7 +163,7 @@ BOOST_AUTO_TEST_CASE(key_signature_tests)
for (int i = 1; i <=20; ++i) { for (int i = 1; i <=20; ++i) {
sig.clear(); sig.clear();
key.Sign(msg_hash, sig, false, i); BOOST_CHECK(key.Sign(msg_hash, sig, false, i));
found = sig[3] == 0x21 && sig[4] == 0x00; found = sig[3] == 0x21 && sig[4] == 0x00;
if (found) { if (found) {
break; break;
@ -179,7 +179,7 @@ BOOST_AUTO_TEST_CASE(key_signature_tests)
sig.clear(); sig.clear();
std::string msg = "A message to be signed" + std::to_string(i); std::string msg = "A message to be signed" + std::to_string(i);
msg_hash = Hash(msg.begin(), msg.end()); msg_hash = Hash(msg.begin(), msg.end());
key.Sign(msg_hash, sig); BOOST_CHECK(key.Sign(msg_hash, sig));
found = sig[3] == 0x20; found = sig[3] == 0x20;
BOOST_CHECK(sig.size() <= 70); BOOST_CHECK(sig.size() <= 70);
found_small |= sig.size() < 70; found_small |= sig.size() < 70;

View file

@ -179,7 +179,7 @@ BOOST_AUTO_TEST_CASE(multisig_Sign)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
key[i].MakeNewKey(true); key[i].MakeNewKey(true);
keystore.AddKey(key[i]); BOOST_CHECK(keystore.AddKey(key[i]));
} }
CScript a_and_b; CScript a_and_b;

View file

@ -54,10 +54,10 @@ public:
s << nUBuckets; s << nUBuckets;
CService serv; CService serv;
Lookup("252.1.1.1", serv, 7777, false); BOOST_CHECK(Lookup("252.1.1.1", serv, 7777, false));
CAddress addr = CAddress(serv, NODE_NONE); CAddress addr = CAddress(serv, NODE_NONE);
CNetAddr resolved; CNetAddr resolved;
LookupHost("252.2.2.2", resolved, false); BOOST_CHECK(LookupHost("252.2.2.2", resolved, false));
CAddrInfo info = CAddrInfo(addr, resolved); CAddrInfo info = CAddrInfo(addr, resolved);
s << info; s << info;
} }
@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE(cnode_listen_port)
BOOST_CHECK(port == Params().GetDefaultPort()); BOOST_CHECK(port == Params().GetDefaultPort());
// test set port // test set port
unsigned short altPort = 12345; unsigned short altPort = 12345;
gArgs.SoftSetArg("-port", std::to_string(altPort)); BOOST_CHECK(gArgs.SoftSetArg("-port", std::to_string(altPort)));
port = GetListenPort(); port = GetListenPort();
BOOST_CHECK(port == altPort); BOOST_CHECK(port == altPort);
} }
@ -94,16 +94,16 @@ BOOST_AUTO_TEST_CASE(caddrdb_read)
addrmanUncorrupted.MakeDeterministic(); addrmanUncorrupted.MakeDeterministic();
CService addr1, addr2, addr3; CService addr1, addr2, addr3;
Lookup("250.7.1.1", addr1, 8333, false); BOOST_CHECK(Lookup("250.7.1.1", addr1, 8333, false));
Lookup("250.7.2.2", addr2, 9999, false); BOOST_CHECK(Lookup("250.7.2.2", addr2, 9999, false));
Lookup("250.7.3.3", addr3, 9999, false); BOOST_CHECK(Lookup("250.7.3.3", addr3, 9999, false));
// Add three addresses to new table. // Add three addresses to new table.
CService source; CService source;
Lookup("252.5.1.1", source, 8333, false); BOOST_CHECK(Lookup("252.5.1.1", source, 8333, false));
addrmanUncorrupted.Add(CAddress(addr1, NODE_NONE), source); BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr1, NODE_NONE), source));
addrmanUncorrupted.Add(CAddress(addr2, NODE_NONE), source); BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr2, NODE_NONE), source));
addrmanUncorrupted.Add(CAddress(addr3, NODE_NONE), source); BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr3, NODE_NONE), source));
// Test that the de-serialization does not throw an exception. // Test that the de-serialization does not throw an exception.
CDataStream ssPeers1 = AddrmanToStream(addrmanUncorrupted); CDataStream ssPeers1 = AddrmanToStream(addrmanUncorrupted);
@ -128,7 +128,7 @@ BOOST_AUTO_TEST_CASE(caddrdb_read)
CAddrMan addrman2; CAddrMan addrman2;
CAddrDB adb; CAddrDB adb;
BOOST_CHECK(addrman2.size() == 0); BOOST_CHECK(addrman2.size() == 0);
adb.Read(addrman2, ssPeers2); BOOST_CHECK(adb.Read(addrman2, ssPeers2));
BOOST_CHECK(addrman2.size() == 3); BOOST_CHECK(addrman2.size() == 3);
} }
@ -161,7 +161,7 @@ BOOST_AUTO_TEST_CASE(caddrdb_read_corrupted)
CAddrMan addrman2; CAddrMan addrman2;
CAddrDB adb; CAddrDB adb;
BOOST_CHECK(addrman2.size() == 0); BOOST_CHECK(addrman2.size() == 0);
adb.Read(addrman2, ssPeers2); BOOST_CHECK(!adb.Read(addrman2, ssPeers2));
BOOST_CHECK(addrman2.size() == 0); BOOST_CHECK(addrman2.size() == 0);
} }

View file

@ -61,7 +61,7 @@ BOOST_AUTO_TEST_CASE(sign)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
key[i].MakeNewKey(true); key[i].MakeNewKey(true);
keystore.AddKey(key[i]); BOOST_CHECK(keystore.AddKey(key[i]));
} }
// 8 Scripts: checking all combinations of // 8 Scripts: checking all combinations of
@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE(sign)
CScript evalScripts[4]; CScript evalScripts[4];
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
keystore.AddCScript(standardScripts[i]); BOOST_CHECK(keystore.AddCScript(standardScripts[i]));
evalScripts[i] = GetScriptForDestination(CScriptID(standardScripts[i])); evalScripts[i] = GetScriptForDestination(CScriptID(standardScripts[i]));
} }
@ -159,7 +159,7 @@ BOOST_AUTO_TEST_CASE(set)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
key[i].MakeNewKey(true); key[i].MakeNewKey(true);
keystore.AddKey(key[i]); BOOST_CHECK(keystore.AddKey(key[i]));
keys.push_back(key[i].GetPubKey()); keys.push_back(key[i].GetPubKey());
} }
@ -173,7 +173,7 @@ BOOST_AUTO_TEST_CASE(set)
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
outer[i] = GetScriptForDestination(CScriptID(inner[i])); outer[i] = GetScriptForDestination(CScriptID(inner[i]));
keystore.AddCScript(inner[i]); BOOST_CHECK(keystore.AddCScript(inner[i]));
} }
CMutableTransaction txFrom; // Funding transaction: CMutableTransaction txFrom; // Funding transaction:
@ -266,7 +266,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
for (int i = 0; i < 6; i++) for (int i = 0; i < 6; i++)
{ {
key[i].MakeNewKey(true); key[i].MakeNewKey(true);
keystore.AddKey(key[i]); BOOST_CHECK(keystore.AddKey(key[i]));
} }
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
keys.push_back(key[i].GetPubKey()); keys.push_back(key[i].GetPubKey());
@ -276,7 +276,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
// First three are standard: // First three are standard:
CScript pay1 = GetScriptForDestination(key[0].GetPubKey().GetID()); CScript pay1 = GetScriptForDestination(key[0].GetPubKey().GetID());
keystore.AddCScript(pay1); BOOST_CHECK(keystore.AddCScript(pay1));
CScript pay1of3 = GetScriptForMultisig(1, keys); CScript pay1of3 = GetScriptForMultisig(1, keys);
txFrom.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(pay1)); // P2SH (OP_CHECKSIG) txFrom.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(pay1)); // P2SH (OP_CHECKSIG)
@ -293,7 +293,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
oneAndTwo << OP_3 << OP_CHECKMULTISIGVERIFY; oneAndTwo << OP_3 << OP_CHECKMULTISIGVERIFY;
oneAndTwo << OP_2 << ToByteVector(key[3].GetPubKey()) << ToByteVector(key[4].GetPubKey()) << ToByteVector(key[5].GetPubKey()); oneAndTwo << OP_2 << ToByteVector(key[3].GetPubKey()) << ToByteVector(key[4].GetPubKey()) << ToByteVector(key[5].GetPubKey());
oneAndTwo << OP_3 << OP_CHECKMULTISIG; oneAndTwo << OP_3 << OP_CHECKMULTISIG;
keystore.AddCScript(oneAndTwo); BOOST_CHECK(keystore.AddCScript(oneAndTwo));
txFrom.vout[3].scriptPubKey = GetScriptForDestination(CScriptID(oneAndTwo)); txFrom.vout[3].scriptPubKey = GetScriptForDestination(CScriptID(oneAndTwo));
txFrom.vout[3].nValue = 4000; txFrom.vout[3].nValue = 4000;
@ -302,17 +302,17 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
for (unsigned i = 0; i < MAX_P2SH_SIGOPS; i++) for (unsigned i = 0; i < MAX_P2SH_SIGOPS; i++)
fifteenSigops << ToByteVector(key[i%3].GetPubKey()); fifteenSigops << ToByteVector(key[i%3].GetPubKey());
fifteenSigops << OP_15 << OP_CHECKMULTISIG; fifteenSigops << OP_15 << OP_CHECKMULTISIG;
keystore.AddCScript(fifteenSigops); BOOST_CHECK(keystore.AddCScript(fifteenSigops));
txFrom.vout[4].scriptPubKey = GetScriptForDestination(CScriptID(fifteenSigops)); txFrom.vout[4].scriptPubKey = GetScriptForDestination(CScriptID(fifteenSigops));
txFrom.vout[4].nValue = 5000; txFrom.vout[4].nValue = 5000;
// vout[5/6] are non-standard because they exceed MAX_P2SH_SIGOPS // vout[5/6] are non-standard because they exceed MAX_P2SH_SIGOPS
CScript sixteenSigops; sixteenSigops << OP_16 << OP_CHECKMULTISIG; CScript sixteenSigops; sixteenSigops << OP_16 << OP_CHECKMULTISIG;
keystore.AddCScript(sixteenSigops); BOOST_CHECK(keystore.AddCScript(sixteenSigops));
txFrom.vout[5].scriptPubKey = GetScriptForDestination(CScriptID(sixteenSigops)); txFrom.vout[5].scriptPubKey = GetScriptForDestination(CScriptID(sixteenSigops));
txFrom.vout[5].nValue = 5000; txFrom.vout[5].nValue = 5000;
CScript twentySigops; twentySigops << OP_CHECKMULTISIG; CScript twentySigops; twentySigops << OP_CHECKMULTISIG;
keystore.AddCScript(twentySigops); BOOST_CHECK(keystore.AddCScript(twentySigops));
txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops)); txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops));
txFrom.vout[6].nValue = 6000; txFrom.vout[6].nValue = 6000;

View file

@ -398,7 +398,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has key // Keystore has key
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -413,7 +413,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has key // Keystore has key
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -428,7 +428,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has key // Keystore has key
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -443,7 +443,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has key // Keystore has key
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -460,12 +460,12 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has redeemScript but no key // Keystore has redeemScript but no key
keystore.AddCScript(redeemScript); BOOST_CHECK(keystore.AddCScript(redeemScript));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has redeemScript and key // Keystore has redeemScript and key
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -478,10 +478,10 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
CScript redeemscript = GetScriptForDestination(CScriptID(redeemscript_inner)); CScript redeemscript = GetScriptForDestination(CScriptID(redeemscript_inner));
scriptPubKey = GetScriptForDestination(CScriptID(redeemscript)); scriptPubKey = GetScriptForDestination(CScriptID(redeemscript));
keystore.AddCScript(redeemscript); BOOST_CHECK(keystore.AddCScript(redeemscript));
keystore.AddCScript(redeemscript_inner); BOOST_CHECK(keystore.AddCScript(redeemscript_inner));
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -494,10 +494,10 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
CScript witnessscript = GetScriptForDestination(CScriptID(redeemscript)); CScript witnessscript = GetScriptForDestination(CScriptID(redeemscript));
scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript)); scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript));
keystore.AddCScript(witnessscript); BOOST_CHECK(keystore.AddCScript(witnessscript));
keystore.AddCScript(redeemscript); BOOST_CHECK(keystore.AddCScript(redeemscript));
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -509,9 +509,9 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
CScript witnessscript = GetScriptForDestination(WitnessV0KeyHash(pubkeys[0].GetID())); CScript witnessscript = GetScriptForDestination(WitnessV0KeyHash(pubkeys[0].GetID()));
scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript)); scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript));
keystore.AddCScript(witnessscript); BOOST_CHECK(keystore.AddCScript(witnessscript));
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -524,10 +524,10 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
CScript witnessscript = GetScriptForDestination(WitnessV0ScriptHash(witnessscript_inner)); CScript witnessscript = GetScriptForDestination(WitnessV0ScriptHash(witnessscript_inner));
scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript)); scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessscript));
keystore.AddCScript(witnessscript_inner); BOOST_CHECK(keystore.AddCScript(witnessscript_inner));
keystore.AddCScript(witnessscript); BOOST_CHECK(keystore.AddCScript(witnessscript));
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -535,12 +535,12 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// P2WPKH compressed // P2WPKH compressed
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
scriptPubKey = GetScriptForDestination(WitnessV0KeyHash(pubkeys[0].GetID())); scriptPubKey = GetScriptForDestination(WitnessV0KeyHash(pubkeys[0].GetID()));
// Keystore implicitly has key and P2SH redeemScript // Keystore implicitly has key and P2SH redeemScript
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -548,7 +548,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// P2WPKH uncompressed // P2WPKH uncompressed
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
scriptPubKey = GetScriptForDestination(WitnessV0KeyHash(uncompressedPubkey.GetID())); scriptPubKey = GetScriptForDestination(WitnessV0KeyHash(uncompressedPubkey.GetID()));
@ -557,7 +557,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has key and P2SH redeemScript // Keystore has key and P2SH redeemScript
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -573,19 +573,19 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has 1/2 keys // Keystore has 1/2 keys
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has 2/2 keys // Keystore has 2/2 keys
keystore.AddKey(keys[1]); BOOST_CHECK(keystore.AddKey(keys[1]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has 2/2 keys and the script // Keystore has 2/2 keys and the script
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
@ -594,8 +594,8 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// P2SH multisig // P2SH multisig
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
keystore.AddKey(keys[1]); BOOST_CHECK(keystore.AddKey(keys[1]));
CScript redeemScript = GetScriptForMultisig(2, {uncompressedPubkey, pubkeys[1]}); CScript redeemScript = GetScriptForMultisig(2, {uncompressedPubkey, pubkeys[1]});
scriptPubKey = GetScriptForDestination(CScriptID(redeemScript)); scriptPubKey = GetScriptForDestination(CScriptID(redeemScript));
@ -605,7 +605,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has redeemScript // Keystore has redeemScript
keystore.AddCScript(redeemScript); BOOST_CHECK(keystore.AddCScript(redeemScript));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -613,8 +613,8 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// P2WSH multisig with compressed keys // P2WSH multisig with compressed keys
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
keystore.AddKey(keys[1]); BOOST_CHECK(keystore.AddKey(keys[1]));
CScript witnessScript = GetScriptForMultisig(2, {pubkeys[0], pubkeys[1]}); CScript witnessScript = GetScriptForMultisig(2, {pubkeys[0], pubkeys[1]});
scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessScript)); scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessScript));
@ -624,12 +624,12 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has keys and witnessScript, but no P2SH redeemScript // Keystore has keys and witnessScript, but no P2SH redeemScript
keystore.AddCScript(witnessScript); BOOST_CHECK(keystore.AddCScript(witnessScript));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has keys, witnessScript, P2SH redeemScript // Keystore has keys, witnessScript, P2SH redeemScript
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -637,8 +637,8 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// P2WSH multisig with uncompressed key // P2WSH multisig with uncompressed key
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(uncompressedKey); BOOST_CHECK(keystore.AddKey(uncompressedKey));
keystore.AddKey(keys[1]); BOOST_CHECK(keystore.AddKey(keys[1]));
CScript witnessScript = GetScriptForMultisig(2, {uncompressedPubkey, pubkeys[1]}); CScript witnessScript = GetScriptForMultisig(2, {uncompressedPubkey, pubkeys[1]});
scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessScript)); scriptPubKey = GetScriptForDestination(WitnessV0ScriptHash(witnessScript));
@ -648,12 +648,12 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has keys and witnessScript, but no P2SH redeemScript // Keystore has keys and witnessScript, but no P2SH redeemScript
keystore.AddCScript(witnessScript); BOOST_CHECK(keystore.AddCScript(witnessScript));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has keys, witnessScript, P2SH redeemScript // Keystore has keys, witnessScript, P2SH redeemScript
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
} }
@ -671,14 +671,14 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has witnessScript and P2SH redeemScript, but no keys // Keystore has witnessScript and P2SH redeemScript, but no keys
keystore.AddCScript(redeemScript); BOOST_CHECK(keystore.AddCScript(redeemScript));
keystore.AddCScript(witnessScript); BOOST_CHECK(keystore.AddCScript(witnessScript));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_NO); BOOST_CHECK_EQUAL(result, ISMINE_NO);
// Keystore has keys, witnessScript, P2SH redeemScript // Keystore has keys, witnessScript, P2SH redeemScript
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
keystore.AddKey(keys[1]); BOOST_CHECK(keystore.AddKey(keys[1]));
result = IsMine(keystore, scriptPubKey); result = IsMine(keystore, scriptPubKey);
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE); BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
} }
@ -686,7 +686,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// OP_RETURN // OP_RETURN
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
scriptPubKey.clear(); scriptPubKey.clear();
scriptPubKey << OP_RETURN << ToByteVector(pubkeys[0]); scriptPubKey << OP_RETURN << ToByteVector(pubkeys[0]);
@ -698,7 +698,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// witness unspendable // witness unspendable
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
scriptPubKey.clear(); scriptPubKey.clear();
scriptPubKey << OP_0 << ToByteVector(ParseHex("aabb")); scriptPubKey << OP_0 << ToByteVector(ParseHex("aabb"));
@ -710,7 +710,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// witness unknown // witness unknown
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
scriptPubKey.clear(); scriptPubKey.clear();
scriptPubKey << OP_16 << ToByteVector(ParseHex("aabb")); scriptPubKey << OP_16 << ToByteVector(ParseHex("aabb"));
@ -722,7 +722,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
// Nonstandard // Nonstandard
{ {
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(keys[0]); BOOST_CHECK(keystore.AddKey(keys[0]));
scriptPubKey.clear(); scriptPubKey.clear();
scriptPubKey << OP_9 << OP_ADD << OP_11 << OP_EQUAL; scriptPubKey << OP_9 << OP_ADD << OP_11 << OP_EQUAL;

View file

@ -1185,7 +1185,7 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
key.MakeNewKey(i%2 == 1); key.MakeNewKey(i%2 == 1);
keys.push_back(key); keys.push_back(key);
pubkeys.push_back(key.GetPubKey()); pubkeys.push_back(key.GetPubKey());
keystore.AddKey(key); BOOST_CHECK(keystore.AddKey(key));
} }
CMutableTransaction txFrom = BuildCreditingTransaction(GetScriptForDestination(keys[0].GetPubKey().GetID())); CMutableTransaction txFrom = BuildCreditingTransaction(GetScriptForDestination(keys[0].GetPubKey().GetID()));
@ -1198,7 +1198,7 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
BOOST_CHECK(combined.scriptSig.empty()); BOOST_CHECK(combined.scriptSig.empty());
// Single signature case: // Single signature case:
SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL); // changes scriptSig BOOST_CHECK(SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL)); // changes scriptSig
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]); scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty); combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
@ -1206,31 +1206,31 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
SignatureData scriptSigCopy = scriptSig; SignatureData scriptSigCopy = scriptSig;
// Signing again will give a different, valid signature: // Signing again will give a different, valid signature:
SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL));
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]); scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig); combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig);
BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig);
// P2SH, single-signature case: // P2SH, single-signature case:
CScript pkSingle; pkSingle << ToByteVector(keys[0].GetPubKey()) << OP_CHECKSIG; CScript pkSingle; pkSingle << ToByteVector(keys[0].GetPubKey()) << OP_CHECKSIG;
keystore.AddCScript(pkSingle); BOOST_CHECK(keystore.AddCScript(pkSingle));
scriptPubKey = GetScriptForDestination(CScriptID(pkSingle)); scriptPubKey = GetScriptForDestination(CScriptID(pkSingle));
SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL));
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]); scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty); combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
combined = CombineSignatures(txFrom.vout[0], txTo, empty, scriptSig); combined = CombineSignatures(txFrom.vout[0], txTo, empty, scriptSig);
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
scriptSigCopy = scriptSig; scriptSigCopy = scriptSig;
SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL));
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]); scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig); combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig);
BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig);
// Hardest case: Multisig 2-of-3 // Hardest case: Multisig 2-of-3
scriptPubKey = GetScriptForMultisig(2, pubkeys); scriptPubKey = GetScriptForMultisig(2, pubkeys);
keystore.AddCScript(scriptPubKey); BOOST_CHECK(keystore.AddCScript(scriptPubKey));
SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL); BOOST_CHECK(SignSignature(keystore, CTransaction(txFrom), txTo, 0, SIGHASH_ALL));
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]); scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty); combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig); BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);

View file

@ -421,7 +421,7 @@ BOOST_AUTO_TEST_CASE(test_big_witness_transaction) {
CKey key; CKey key;
key.MakeNewKey(true); // Need to use compressed keys in segwit or the signing will fail key.MakeNewKey(true); // Need to use compressed keys in segwit or the signing will fail
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKeyPubKey(key, key.GetPubKey()); BOOST_CHECK(keystore.AddKeyPubKey(key, key.GetPubKey()));
CKeyID hash = key.GetPubKey().GetID(); CKeyID hash = key.GetPubKey().GetID();
CScript scriptPubKey = CScript() << OP_0 << std::vector<unsigned char>(hash.begin(), hash.end()); CScript scriptPubKey = CScript() << OP_0 << std::vector<unsigned char>(hash.begin(), hash.end());
@ -518,10 +518,10 @@ BOOST_AUTO_TEST_CASE(test_witness)
pubkey3 = key3.GetPubKey(); pubkey3 = key3.GetPubKey();
pubkey1L = key1L.GetPubKey(); pubkey1L = key1L.GetPubKey();
pubkey2L = key2L.GetPubKey(); pubkey2L = key2L.GetPubKey();
keystore.AddKeyPubKey(key1, pubkey1); BOOST_CHECK(keystore.AddKeyPubKey(key1, pubkey1));
keystore.AddKeyPubKey(key2, pubkey2); BOOST_CHECK(keystore.AddKeyPubKey(key2, pubkey2));
keystore.AddKeyPubKey(key1L, pubkey1L); BOOST_CHECK(keystore.AddKeyPubKey(key1L, pubkey1L));
keystore.AddKeyPubKey(key2L, pubkey2L); BOOST_CHECK(keystore.AddKeyPubKey(key2L, pubkey2L));
CScript scriptPubkey1, scriptPubkey2, scriptPubkey1L, scriptPubkey2L, scriptMulti; CScript scriptPubkey1, scriptPubkey2, scriptPubkey1L, scriptPubkey2L, scriptMulti;
scriptPubkey1 << ToByteVector(pubkey1) << OP_CHECKSIG; scriptPubkey1 << ToByteVector(pubkey1) << OP_CHECKSIG;
scriptPubkey2 << ToByteVector(pubkey2) << OP_CHECKSIG; scriptPubkey2 << ToByteVector(pubkey2) << OP_CHECKSIG;
@ -531,19 +531,19 @@ BOOST_AUTO_TEST_CASE(test_witness)
oneandthree.push_back(pubkey1); oneandthree.push_back(pubkey1);
oneandthree.push_back(pubkey3); oneandthree.push_back(pubkey3);
scriptMulti = GetScriptForMultisig(2, oneandthree); scriptMulti = GetScriptForMultisig(2, oneandthree);
keystore.AddCScript(scriptPubkey1); BOOST_CHECK(keystore.AddCScript(scriptPubkey1));
keystore.AddCScript(scriptPubkey2); BOOST_CHECK(keystore.AddCScript(scriptPubkey2));
keystore.AddCScript(scriptPubkey1L); BOOST_CHECK(keystore.AddCScript(scriptPubkey1L));
keystore.AddCScript(scriptPubkey2L); BOOST_CHECK(keystore.AddCScript(scriptPubkey2L));
keystore.AddCScript(scriptMulti); BOOST_CHECK(keystore.AddCScript(scriptMulti));
keystore.AddCScript(GetScriptForWitness(scriptPubkey1)); BOOST_CHECK(keystore.AddCScript(GetScriptForWitness(scriptPubkey1)));
keystore.AddCScript(GetScriptForWitness(scriptPubkey2)); BOOST_CHECK(keystore.AddCScript(GetScriptForWitness(scriptPubkey2)));
keystore.AddCScript(GetScriptForWitness(scriptPubkey1L)); BOOST_CHECK(keystore.AddCScript(GetScriptForWitness(scriptPubkey1L)));
keystore.AddCScript(GetScriptForWitness(scriptPubkey2L)); BOOST_CHECK(keystore.AddCScript(GetScriptForWitness(scriptPubkey2L)));
keystore.AddCScript(GetScriptForWitness(scriptMulti)); BOOST_CHECK(keystore.AddCScript(GetScriptForWitness(scriptMulti)));
keystore2.AddCScript(scriptMulti); BOOST_CHECK(keystore2.AddCScript(scriptMulti));
keystore2.AddCScript(GetScriptForWitness(scriptMulti)); BOOST_CHECK(keystore2.AddCScript(GetScriptForWitness(scriptMulti)));
keystore2.AddKeyPubKey(key3, pubkey3); BOOST_CHECK(keystore2.AddKeyPubKey(key3, pubkey3));
CTransactionRef output1, output2; CTransactionRef output1, output2;
CMutableTransaction input1, input2; CMutableTransaction input1, input2;

View file

@ -156,8 +156,8 @@ BOOST_FIXTURE_TEST_CASE(checkinputs_test, TestChain100Setup)
CScript p2wpkh_scriptPubKey = GetScriptForWitness(p2pkh_scriptPubKey); CScript p2wpkh_scriptPubKey = GetScriptForWitness(p2pkh_scriptPubKey);
CBasicKeyStore keystore; CBasicKeyStore keystore;
keystore.AddKey(coinbaseKey); BOOST_CHECK(keystore.AddKey(coinbaseKey));
keystore.AddCScript(p2pk_scriptPubKey); BOOST_CHECK(keystore.AddCScript(p2pk_scriptPubKey));
// flags to test: SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY, SCRIPT_VERIFY_CHECKSEQUENCE_VERIFY, SCRIPT_VERIFY_NULLDUMMY, uncompressed pubkey thing // flags to test: SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY, SCRIPT_VERIFY_CHECKSEQUENCE_VERIFY, SCRIPT_VERIFY_NULLDUMMY, uncompressed pubkey thing
@ -314,7 +314,7 @@ BOOST_FIXTURE_TEST_CASE(checkinputs_test, TestChain100Setup)
// Sign // Sign
SignatureData sigdata; SignatureData sigdata;
ProduceSignature(keystore, MutableTransactionSignatureCreator(&valid_with_witness_tx, 0, 11*CENT, SIGHASH_ALL), spend_tx.vout[1].scriptPubKey, sigdata); BOOST_CHECK(ProduceSignature(keystore, MutableTransactionSignatureCreator(&valid_with_witness_tx, 0, 11*CENT, SIGHASH_ALL), spend_tx.vout[1].scriptPubKey, sigdata));
UpdateInput(valid_with_witness_tx.vin[0], sigdata); UpdateInput(valid_with_witness_tx.vin[0], sigdata);
// This should be valid under all script flags. // This should be valid under all script flags.
@ -342,7 +342,7 @@ BOOST_FIXTURE_TEST_CASE(checkinputs_test, TestChain100Setup)
// Sign // Sign
for (int i=0; i<2; ++i) { for (int i=0; i<2; ++i) {
SignatureData sigdata; SignatureData sigdata;
ProduceSignature(keystore, MutableTransactionSignatureCreator(&tx, i, 11*CENT, SIGHASH_ALL), spend_tx.vout[i].scriptPubKey, sigdata); BOOST_CHECK(ProduceSignature(keystore, MutableTransactionSignatureCreator(&tx, i, 11*CENT, SIGHASH_ALL), spend_tx.vout[i].scriptPubKey, sigdata));
UpdateInput(tx.vin[i], sigdata); UpdateInput(tx.vin[i], sigdata);
} }

View file

@ -137,7 +137,7 @@ BOOST_AUTO_TEST_CASE(processnewblock_signals_ordering)
BOOST_CHECK(ProcessNewBlockHeaders(headers, state, Params())); BOOST_CHECK(ProcessNewBlockHeaders(headers, state, Params()));
// Connect the genesis block and drain any outstanding events // Connect the genesis block and drain any outstanding events
ProcessNewBlock(Params(), std::make_shared<CBlock>(Params().GenesisBlock()), true, &ignored); BOOST_CHECK(ProcessNewBlock(Params(), std::make_shared<CBlock>(Params().GenesisBlock()), true, &ignored));
SyncWithValidationInterfaceQueue(); SyncWithValidationInterfaceQueue();
// subscribe to events (this subscriber will validate event ordering) // subscribe to events (this subscriber will validate event ordering)