mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge #14935: tests: Test for expected return values when calling functions returning a success code
c84c2b8c92 tests: Test for expected return values when calling functions returning a success code (practicalswift) Pull request description: Test for expected return values when calling functions returning a success code (instead of discarding the return values). **Note to reviewers:** The following commands can be used to verify that the only text fragments added in this PR are `BOOST_CHECK(`, `!` and `)` : ``` $ git diff HEAD~1 | grep -E '^[\-][^\-]' | cut -b2- > before.txt $ git diff HEAD~1 | grep -E '^[\+][^\+]' | cut -b2- > after.txt $ cat after.txt | sed 's/BOOST_CHECK(//g' | sed 's/));/);/g' | tr -d '!' > after-sed.txt $ diff -u before.txt after-sed.txt $ ``` Tree-SHA512: ff0863ef2046a2eda3c44e9c6b9aedfe167881f2fa58db29fef859416831233ef6502a3a11fd2322bc1a924db83df8d4a5c5879298007f2a7b085e2a7286af70
This commit is contained in:
parent
2f845d8074
commit
e7d6c49249
@ -189,11 +189,11 @@ BOOST_AUTO_TEST_CASE(addrman_ports)
|
||||
|
||||
// Test 7; Addr with same IP but diff port does not replace existing addr.
|
||||
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);
|
||||
|
||||
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);
|
||||
CAddrInfo addr_ret2 = addrman.Select();
|
||||
BOOST_CHECK_EQUAL(addr_ret2.ToString(), "250.1.1.1:8333");
|
||||
@ -216,7 +216,7 @@ BOOST_AUTO_TEST_CASE(addrman_select)
|
||||
|
||||
// Test: Select from new with 1 addr in new.
|
||||
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);
|
||||
|
||||
bool newOnly = true;
|
||||
@ -240,20 +240,20 @@ BOOST_AUTO_TEST_CASE(addrman_select)
|
||||
CService addr3 = ResolveService("250.3.2.2", 9999);
|
||||
CService addr4 = ResolveService("250.3.3.3", 9999);
|
||||
|
||||
addrman.Add(CAddress(addr2, NODE_NONE), ResolveService("250.3.1.1", 8333));
|
||||
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(addr2, NODE_NONE), ResolveService("250.3.1.1", 8333)));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr3, NODE_NONE), ResolveService("250.3.1.1", 8333)));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr4, NODE_NONE), ResolveService("250.4.1.1", 8333)));
|
||||
|
||||
// Add three addresses to tried table.
|
||||
CService addr5 = ResolveService("250.4.4.4", 8333);
|
||||
CService addr6 = ResolveService("250.4.5.5", 7777);
|
||||
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.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.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));
|
||||
|
||||
// Test: 6 addrs + 1 addr from last test = 7.
|
||||
@ -277,7 +277,7 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
|
||||
|
||||
for (unsigned int i = 1; i < 18; 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.
|
||||
BOOST_CHECK_EQUAL(addrman.size(), i);
|
||||
@ -285,11 +285,11 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
|
||||
|
||||
//Test: new table collision!
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -303,7 +303,7 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
|
||||
|
||||
for (unsigned int i = 1; i < 80; 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));
|
||||
|
||||
//Test: No collision in tried table yet.
|
||||
@ -312,11 +312,11 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
|
||||
|
||||
//Test: tried table collision!
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -333,9 +333,9 @@ BOOST_AUTO_TEST_CASE(addrman_find)
|
||||
CNetAddr source1 = ResolveIP("250.1.2.1");
|
||||
CNetAddr source2 = ResolveIP("250.1.2.2");
|
||||
|
||||
addrman.Add(addr1, source1);
|
||||
addrman.Add(addr2, source2);
|
||||
addrman.Add(addr3, source1);
|
||||
BOOST_CHECK(addrman.Add(addr1, source1));
|
||||
BOOST_CHECK(!addrman.Add(addr2, source2));
|
||||
BOOST_CHECK(addrman.Add(addr3, source1));
|
||||
|
||||
// Test: ensure Find returns an IP matching what we searched on.
|
||||
CAddrInfo* info1 = addrman.Find(addr1);
|
||||
@ -417,11 +417,11 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
|
||||
CNetAddr source2 = ResolveIP("250.2.3.3");
|
||||
|
||||
// Test: Ensure GetAddr works with new addresses.
|
||||
addrman.Add(addr1, source1);
|
||||
addrman.Add(addr2, source2);
|
||||
addrman.Add(addr3, source1);
|
||||
addrman.Add(addr4, source2);
|
||||
addrman.Add(addr5, source1);
|
||||
BOOST_CHECK(addrman.Add(addr1, source1));
|
||||
BOOST_CHECK(addrman.Add(addr2, source2));
|
||||
BOOST_CHECK(addrman.Add(addr3, source1));
|
||||
BOOST_CHECK(addrman.Add(addr4, source2));
|
||||
BOOST_CHECK(addrman.Add(addr5, source1));
|
||||
|
||||
// GetAddr returns 23% of addresses, 23% of 5 is 1 rounded down.
|
||||
BOOST_CHECK_EQUAL(addrman.GetAddr().size(), 1U);
|
||||
@ -802,7 +802,7 @@ BOOST_AUTO_TEST_CASE(addrman_selecttriedcollision)
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; 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);
|
||||
|
||||
// No collisions yet.
|
||||
@ -829,7 +829,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; 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);
|
||||
|
||||
// No collision yet.
|
||||
@ -839,7 +839,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
||||
|
||||
// Collision between 23 and 19.
|
||||
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);
|
||||
|
||||
BOOST_CHECK(addrman.size() == 23);
|
||||
@ -852,7 +852,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
||||
// Lets create two collisions.
|
||||
for (unsigned int i = 24; i < 33; 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);
|
||||
|
||||
BOOST_CHECK(addrman.size() == i);
|
||||
@ -861,14 +861,14 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
||||
|
||||
// Cause a collision.
|
||||
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);
|
||||
BOOST_CHECK(addrman.size() == 33);
|
||||
|
||||
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.27:0");
|
||||
|
||||
// Cause a second collision.
|
||||
addrman.Add(CAddress(addr23, NODE_NONE), source);
|
||||
BOOST_CHECK(!addrman.Add(CAddress(addr23, NODE_NONE), source));
|
||||
addrman.Good(addr23);
|
||||
BOOST_CHECK(addrman.size() == 33);
|
||||
|
||||
@ -890,7 +890,7 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; 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);
|
||||
|
||||
// No collision yet.
|
||||
@ -900,7 +900,7 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
|
||||
|
||||
// Collision between 23 and 19.
|
||||
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);
|
||||
|
||||
BOOST_CHECK(addrman.size() == 23);
|
||||
@ -915,14 +915,14 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
|
||||
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0");
|
||||
|
||||
// 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);
|
||||
|
||||
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "[::]:0");
|
||||
|
||||
// If we insert 19 is should collide with 23.
|
||||
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);
|
||||
|
||||
BOOST_CHECK(addrman.SelectTriedCollision().ToString() == "250.1.1.23:0");
|
||||
|
@ -333,7 +333,7 @@ BOOST_AUTO_TEST_CASE(test_CheckQueue_FrozenCleanup)
|
||||
// would get called twice).
|
||||
vChecks[0].should_freeze = true;
|
||||
control.Add(vChecks);
|
||||
control.Wait(); // Hangs here
|
||||
BOOST_CHECK(control.Wait()); // Hangs here
|
||||
});
|
||||
{
|
||||
std::unique_lock<std::mutex> l(FrozenCleanupCheck::m);
|
||||
|
@ -176,7 +176,7 @@ BOOST_AUTO_TEST_CASE(coins_cache_simulation_test)
|
||||
} else {
|
||||
removed_an_entry = true;
|
||||
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
|
||||
if (stack.size() > 1 && InsecureRandBool() == 0) {
|
||||
unsigned int flushIndex = InsecureRandRange(stack.size() - 1);
|
||||
stack[flushIndex]->Flush();
|
||||
BOOST_CHECK(stack[flushIndex]->Flush());
|
||||
}
|
||||
}
|
||||
if (InsecureRandRange(100) == 0) {
|
||||
// Every 100 iterations, change the cache stack.
|
||||
if (stack.size() > 0 && InsecureRandBool() == 0) {
|
||||
//Remove the top cache
|
||||
stack.back()->Flush();
|
||||
BOOST_CHECK(stack.back()->Flush());
|
||||
delete stack.back();
|
||||
stack.pop_back();
|
||||
}
|
||||
@ -406,7 +406,7 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
|
||||
// Disconnect the tx from the current UTXO
|
||||
// See code in DisconnectBlock
|
||||
// remove outputs
|
||||
stack.back()->SpendCoin(utxod->first);
|
||||
BOOST_CHECK(stack.back()->SpendCoin(utxod->first));
|
||||
// restore inputs
|
||||
if (!tx.IsCoinBase()) {
|
||||
const COutPoint &out = tx.vin[0].prevout;
|
||||
@ -447,13 +447,13 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
|
||||
// Every 100 iterations, flush an intermediate cache
|
||||
if (stack.size() > 1 && InsecureRandBool() == 0) {
|
||||
unsigned int flushIndex = InsecureRandRange(stack.size() - 1);
|
||||
stack[flushIndex]->Flush();
|
||||
BOOST_CHECK(stack[flushIndex]->Flush());
|
||||
}
|
||||
}
|
||||
if (InsecureRandRange(100) == 0) {
|
||||
// Every 100 iterations, change the cache stack.
|
||||
if (stack.size() > 0 && InsecureRandBool() == 0) {
|
||||
stack.back()->Flush();
|
||||
BOOST_CHECK(stack.back()->Flush());
|
||||
delete stack.back();
|
||||
stack.pop_back();
|
||||
}
|
||||
@ -594,7 +594,7 @@ void WriteCoinsViewEntry(CCoinsView& view, CAmount value, char flags)
|
||||
{
|
||||
CCoinsMap map;
|
||||
InsertCoinsMapEntry(map, value, flags);
|
||||
view.BatchWrite(map, {});
|
||||
BOOST_CHECK(view.BatchWrite(map, {}));
|
||||
}
|
||||
|
||||
class SingleEntryCacheTest
|
||||
|
@ -147,7 +147,7 @@ static void test_cache_erase(size_t megabytes)
|
||||
set.insert(hashes_insert_copy[i]);
|
||||
/** Erase the first quarter */
|
||||
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 */
|
||||
for (uint32_t i = (n_insert / 2); i < n_insert; ++i)
|
||||
set.insert(hashes_insert_copy[i]);
|
||||
@ -227,7 +227,7 @@ static void test_cache_erase_parallel(size_t megabytes)
|
||||
size_t start = ntodo*x;
|
||||
size_t end = ntodo*(x+1);
|
||||
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
|
||||
|
@ -147,7 +147,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper_batch)
|
||||
// Remove key3 before it's even been written
|
||||
batch.Erase(key3);
|
||||
|
||||
dbw.WriteBatch(batch);
|
||||
BOOST_CHECK(dbw.WriteBatch(batch));
|
||||
|
||||
BOOST_CHECK(dbw.Read(key, res));
|
||||
BOOST_CHECK_EQUAL(res.ToString(), in.ToString());
|
||||
|
@ -98,7 +98,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
|
||||
// Test starts here
|
||||
{
|
||||
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);
|
||||
@ -112,7 +112,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
|
||||
SetMockTime(nStartTime+21*60);
|
||||
{
|
||||
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);
|
||||
@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
|
||||
SetMockTime(nStartTime+24*60);
|
||||
{
|
||||
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);
|
||||
SetMockTime(0);
|
||||
@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode1.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode1);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
|
||||
}
|
||||
BOOST_CHECK(banman->IsBanned(addr1));
|
||||
BOOST_CHECK(!banman->IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned
|
||||
@ -253,7 +253,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode2.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode2);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode2));
|
||||
}
|
||||
BOOST_CHECK(!banman->IsBanned(addr2)); // 2 not banned yet...
|
||||
BOOST_CHECK(banman->IsBanned(addr1)); // ... but 1 still should be
|
||||
@ -263,7 +263,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode2.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode2);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode2));
|
||||
}
|
||||
BOOST_CHECK(banman->IsBanned(addr2));
|
||||
|
||||
@ -292,7 +292,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode1.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode1);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
|
||||
}
|
||||
BOOST_CHECK(!banman->IsBanned(addr1));
|
||||
{
|
||||
@ -301,7 +301,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode1.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode1);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
|
||||
}
|
||||
BOOST_CHECK(!banman->IsBanned(addr1));
|
||||
{
|
||||
@ -310,7 +310,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode1.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode1);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
|
||||
}
|
||||
BOOST_CHECK(banman->IsBanned(addr1));
|
||||
gArgs.ForceSetArg("-banscore", std::to_string(DEFAULT_BANSCORE_THRESHOLD));
|
||||
@ -342,7 +342,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
|
||||
}
|
||||
{
|
||||
LOCK2(cs_main, dummyNode.cs_sendProcessing);
|
||||
peerLogic->SendMessages(&dummyNode);
|
||||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode));
|
||||
}
|
||||
BOOST_CHECK(banman->IsBanned(addr));
|
||||
|
||||
@ -371,7 +371,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
|
||||
CKey key;
|
||||
key.MakeNewKey(true);
|
||||
CBasicKeyStore keystore;
|
||||
keystore.AddKey(key);
|
||||
BOOST_CHECK(keystore.AddKey(key));
|
||||
|
||||
// 50 orphan transactions:
|
||||
for (int i = 0; i < 50; i++)
|
||||
@ -400,7 +400,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
|
||||
tx.vout.resize(1);
|
||||
tx.vout[0].nValue = 1*CENT;
|
||||
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);
|
||||
}
|
||||
@ -420,7 +420,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
|
||||
tx.vin[j].prevout.n = j;
|
||||
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
|
||||
// (they don't have to be valid for this test)
|
||||
for (unsigned int j = 1; j < tx.vin.size(); j++)
|
||||
|
@ -107,7 +107,7 @@ BOOST_AUTO_TEST_CASE(key_io_valid_gen)
|
||||
} else {
|
||||
CTxDestination dest;
|
||||
CScript exp_script(exp_payload.begin(), exp_payload.end());
|
||||
ExtractDestination(exp_script, dest);
|
||||
BOOST_CHECK(ExtractDestination(exp_script, dest));
|
||||
std::string address = EncodeDestination(dest);
|
||||
|
||||
BOOST_CHECK_EQUAL(address, exp_base58string);
|
||||
|
@ -163,7 +163,7 @@ BOOST_AUTO_TEST_CASE(key_signature_tests)
|
||||
|
||||
for (int i = 1; i <=20; ++i) {
|
||||
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;
|
||||
if (found) {
|
||||
break;
|
||||
@ -179,7 +179,7 @@ BOOST_AUTO_TEST_CASE(key_signature_tests)
|
||||
sig.clear();
|
||||
std::string msg = "A message to be signed" + std::to_string(i);
|
||||
msg_hash = Hash(msg.begin(), msg.end());
|
||||
key.Sign(msg_hash, sig);
|
||||
BOOST_CHECK(key.Sign(msg_hash, sig));
|
||||
found = sig[3] == 0x20;
|
||||
BOOST_CHECK(sig.size() <= 70);
|
||||
found_small |= sig.size() < 70;
|
||||
|
@ -179,7 +179,7 @@ BOOST_AUTO_TEST_CASE(multisig_Sign)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
key[i].MakeNewKey(true);
|
||||
keystore.AddKey(key[i]);
|
||||
BOOST_CHECK(keystore.AddKey(key[i]));
|
||||
}
|
||||
|
||||
CScript a_and_b;
|
||||
|
@ -58,10 +58,10 @@ public:
|
||||
s << nUBuckets;
|
||||
|
||||
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);
|
||||
CNetAddr resolved;
|
||||
LookupHost("252.2.2.2", resolved, false);
|
||||
BOOST_CHECK(LookupHost("252.2.2.2", resolved, false));
|
||||
CAddrInfo info = CAddrInfo(addr, resolved);
|
||||
s << info;
|
||||
}
|
||||
@ -86,7 +86,7 @@ BOOST_AUTO_TEST_CASE(cnode_listen_port)
|
||||
BOOST_CHECK(port == Params().GetDefaultPort());
|
||||
// test set port
|
||||
unsigned short altPort = 12345;
|
||||
gArgs.SoftSetArg("-port", std::to_string(altPort));
|
||||
BOOST_CHECK(gArgs.SoftSetArg("-port", std::to_string(altPort)));
|
||||
port = GetListenPort();
|
||||
BOOST_CHECK(port == altPort);
|
||||
}
|
||||
@ -98,16 +98,16 @@ BOOST_AUTO_TEST_CASE(caddrdb_read)
|
||||
addrmanUncorrupted.MakeDeterministic();
|
||||
|
||||
CService addr1, addr2, addr3;
|
||||
Lookup("250.7.1.1", addr1, 8333, false);
|
||||
Lookup("250.7.2.2", addr2, 9999, false);
|
||||
Lookup("250.7.3.3", addr3, 9999, false);
|
||||
BOOST_CHECK(Lookup("250.7.1.1", addr1, 8333, false));
|
||||
BOOST_CHECK(Lookup("250.7.2.2", addr2, 9999, false));
|
||||
BOOST_CHECK(Lookup("250.7.3.3", addr3, 9999, false));
|
||||
|
||||
// Add three addresses to new table.
|
||||
CService source;
|
||||
Lookup("252.5.1.1", source, 8333, false);
|
||||
addrmanUncorrupted.Add(CAddress(addr1, NODE_NONE), source);
|
||||
addrmanUncorrupted.Add(CAddress(addr2, NODE_NONE), source);
|
||||
addrmanUncorrupted.Add(CAddress(addr3, NODE_NONE), source);
|
||||
BOOST_CHECK(Lookup("252.5.1.1", source, 8333, false));
|
||||
BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr1, NODE_NONE), source));
|
||||
BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr2, NODE_NONE), source));
|
||||
BOOST_CHECK(addrmanUncorrupted.Add(CAddress(addr3, NODE_NONE), source));
|
||||
|
||||
// Test that the de-serialization does not throw an exception.
|
||||
CDataStream ssPeers1 = AddrmanToStream(addrmanUncorrupted);
|
||||
@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE(caddrdb_read)
|
||||
CAddrMan addrman2;
|
||||
CAddrDB adb;
|
||||
BOOST_CHECK(addrman2.size() == 0);
|
||||
adb.Read(addrman2, ssPeers2);
|
||||
BOOST_CHECK(adb.Read(addrman2, ssPeers2));
|
||||
BOOST_CHECK(addrman2.size() == 3);
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ BOOST_AUTO_TEST_CASE(caddrdb_read_corrupted)
|
||||
CAddrMan addrman2;
|
||||
CAddrDB adb;
|
||||
BOOST_CHECK(addrman2.size() == 0);
|
||||
adb.Read(addrman2, ssPeers2);
|
||||
BOOST_CHECK(!adb.Read(addrman2, ssPeers2));
|
||||
BOOST_CHECK(addrman2.size() == 0);
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ BOOST_AUTO_TEST_CASE(sign)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
key[i].MakeNewKey(true);
|
||||
keystore.AddKey(key[i]);
|
||||
BOOST_CHECK(keystore.AddKey(key[i]));
|
||||
}
|
||||
|
||||
// 8 Scripts: checking all combinations of
|
||||
@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE(sign)
|
||||
CScript evalScripts[4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
keystore.AddCScript(standardScripts[i]);
|
||||
BOOST_CHECK(keystore.AddCScript(standardScripts[i]));
|
||||
evalScripts[i] = GetScriptForDestination(CScriptID(standardScripts[i]));
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ BOOST_AUTO_TEST_CASE(set)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
key[i].MakeNewKey(true);
|
||||
keystore.AddKey(key[i]);
|
||||
BOOST_CHECK(keystore.AddKey(key[i]));
|
||||
keys.push_back(key[i].GetPubKey());
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ BOOST_AUTO_TEST_CASE(set)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
outer[i] = GetScriptForDestination(CScriptID(inner[i]));
|
||||
keystore.AddCScript(inner[i]);
|
||||
BOOST_CHECK(keystore.AddCScript(inner[i]));
|
||||
}
|
||||
|
||||
CMutableTransaction txFrom; // Funding transaction:
|
||||
@ -275,7 +275,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
key[i].MakeNewKey(true);
|
||||
keystore.AddKey(key[i]);
|
||||
BOOST_CHECK(keystore.AddKey(key[i]));
|
||||
}
|
||||
for (int i = 0; i < 3; i++)
|
||||
keys.push_back(key[i].GetPubKey());
|
||||
@ -285,7 +285,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
|
||||
// First three are standard:
|
||||
CScript pay1 = GetScriptForDestination(key[0].GetPubKey().GetID());
|
||||
keystore.AddCScript(pay1);
|
||||
BOOST_CHECK(keystore.AddCScript(pay1));
|
||||
CScript pay1of3 = GetScriptForMultisig(1, keys);
|
||||
|
||||
txFrom.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(pay1)); // P2SH (OP_CHECKSIG)
|
||||
@ -302,7 +302,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
oneAndTwo << OP_3 << OP_CHECKMULTISIGVERIFY;
|
||||
oneAndTwo << OP_2 << ToByteVector(key[3].GetPubKey()) << ToByteVector(key[4].GetPubKey()) << ToByteVector(key[5].GetPubKey());
|
||||
oneAndTwo << OP_3 << OP_CHECKMULTISIG;
|
||||
keystore.AddCScript(oneAndTwo);
|
||||
BOOST_CHECK(keystore.AddCScript(oneAndTwo));
|
||||
txFrom.vout[3].scriptPubKey = GetScriptForDestination(CScriptID(oneAndTwo));
|
||||
txFrom.vout[3].nValue = 4000;
|
||||
|
||||
@ -311,17 +311,17 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
for (unsigned i = 0; i < MAX_P2SH_SIGOPS; i++)
|
||||
fifteenSigops << ToByteVector(key[i%3].GetPubKey());
|
||||
fifteenSigops << OP_15 << OP_CHECKMULTISIG;
|
||||
keystore.AddCScript(fifteenSigops);
|
||||
BOOST_CHECK(keystore.AddCScript(fifteenSigops));
|
||||
txFrom.vout[4].scriptPubKey = GetScriptForDestination(CScriptID(fifteenSigops));
|
||||
txFrom.vout[4].nValue = 5000;
|
||||
|
||||
// vout[5/6] are non-standard because they exceed MAX_P2SH_SIGOPS
|
||||
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].nValue = 5000;
|
||||
CScript twentySigops; twentySigops << OP_CHECKMULTISIG;
|
||||
keystore.AddCScript(twentySigops);
|
||||
BOOST_CHECK(keystore.AddCScript(twentySigops));
|
||||
txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops));
|
||||
txFrom.vout[6].nValue = 6000;
|
||||
|
||||
|
@ -322,7 +322,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has key
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -337,7 +337,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has key
|
||||
keystore.AddKey(uncompressedKey);
|
||||
BOOST_CHECK(keystore.AddKey(uncompressedKey));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -352,7 +352,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has key
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -367,7 +367,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has key
|
||||
keystore.AddKey(uncompressedKey);
|
||||
BOOST_CHECK(keystore.AddKey(uncompressedKey));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -384,12 +384,12 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has redeemScript but no key
|
||||
keystore.AddCScript(redeemScript);
|
||||
BOOST_CHECK(keystore.AddCScript(redeemScript));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has redeemScript and key
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -402,10 +402,10 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
CScript redeemscript = GetScriptForDestination(CScriptID(redeemscript_inner));
|
||||
scriptPubKey = GetScriptForDestination(CScriptID(redeemscript));
|
||||
|
||||
keystore.AddCScript(redeemscript);
|
||||
keystore.AddCScript(redeemscript_inner);
|
||||
keystore.AddCScript(scriptPubKey);
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddCScript(redeemscript));
|
||||
BOOST_CHECK(keystore.AddCScript(redeemscript_inner));
|
||||
BOOST_CHECK(keystore.AddCScript(scriptPubKey));
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
}
|
||||
@ -421,19 +421,19 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has 1/2 keys
|
||||
keystore.AddKey(uncompressedKey);
|
||||
BOOST_CHECK(keystore.AddKey(uncompressedKey));
|
||||
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has 2/2 keys
|
||||
keystore.AddKey(keys[1]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[1]));
|
||||
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has 2/2 keys and the script
|
||||
keystore.AddCScript(scriptPubKey);
|
||||
BOOST_CHECK(keystore.AddCScript(scriptPubKey));
|
||||
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
@ -442,8 +442,8 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
// P2SH multisig
|
||||
{
|
||||
CBasicKeyStore keystore;
|
||||
keystore.AddKey(uncompressedKey);
|
||||
keystore.AddKey(keys[1]);
|
||||
BOOST_CHECK(keystore.AddKey(uncompressedKey));
|
||||
BOOST_CHECK(keystore.AddKey(keys[1]));
|
||||
|
||||
CScript redeemScript = GetScriptForMultisig(2, {uncompressedPubkey, pubkeys[1]});
|
||||
scriptPubKey = GetScriptForDestination(CScriptID(redeemScript));
|
||||
@ -453,7 +453,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_NO);
|
||||
|
||||
// Keystore has redeemScript
|
||||
keystore.AddCScript(redeemScript);
|
||||
BOOST_CHECK(keystore.AddCScript(redeemScript));
|
||||
result = IsMine(keystore, scriptPubKey);
|
||||
BOOST_CHECK_EQUAL(result, ISMINE_SPENDABLE);
|
||||
}
|
||||
@ -461,7 +461,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
// OP_RETURN
|
||||
{
|
||||
CBasicKeyStore keystore;
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
|
||||
scriptPubKey.clear();
|
||||
scriptPubKey << OP_RETURN << ToByteVector(pubkeys[0]);
|
||||
@ -473,7 +473,7 @@ BOOST_AUTO_TEST_CASE(script_standard_IsMine)
|
||||
// Nonstandard
|
||||
{
|
||||
CBasicKeyStore keystore;
|
||||
keystore.AddKey(keys[0]);
|
||||
BOOST_CHECK(keystore.AddKey(keys[0]));
|
||||
|
||||
scriptPubKey.clear();
|
||||
scriptPubKey << OP_9 << OP_ADD << OP_11 << OP_EQUAL;
|
||||
|
@ -1152,7 +1152,7 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
|
||||
key.MakeNewKey(i%2 == 1);
|
||||
keys.push_back(key);
|
||||
pubkeys.push_back(key.GetPubKey());
|
||||
keystore.AddKey(key);
|
||||
BOOST_CHECK(keystore.AddKey(key));
|
||||
}
|
||||
|
||||
CMutableTransaction txFrom = BuildCreditingTransaction(GetScriptForDestination(keys[0].GetPubKey().GetID()));
|
||||
@ -1165,7 +1165,7 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
|
||||
BOOST_CHECK(combined.scriptSig.empty());
|
||||
|
||||
// Single signature case:
|
||||
SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL); // changes scriptSig
|
||||
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL)); // changes scriptSig
|
||||
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
|
||||
@ -1173,31 +1173,31 @@ BOOST_AUTO_TEST_CASE(script_combineSigs)
|
||||
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
|
||||
SignatureData scriptSigCopy = scriptSig;
|
||||
// Signing again will give a different, valid signature:
|
||||
SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL);
|
||||
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL));
|
||||
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig);
|
||||
|
||||
// P2SH, single-signature case:
|
||||
CScript pkSingle; pkSingle << ToByteVector(keys[0].GetPubKey()) << OP_CHECKSIG;
|
||||
keystore.AddCScript(pkSingle);
|
||||
BOOST_CHECK(keystore.AddCScript(pkSingle));
|
||||
scriptPubKey = GetScriptForDestination(CScriptID(pkSingle));
|
||||
SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL);
|
||||
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL));
|
||||
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, empty, scriptSig);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
|
||||
scriptSigCopy = scriptSig;
|
||||
SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL);
|
||||
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL));
|
||||
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSigCopy, scriptSig);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSigCopy.scriptSig || combined.scriptSig == scriptSig.scriptSig);
|
||||
|
||||
// Hardest case: Multisig 2-of-3
|
||||
scriptPubKey = GetScriptForMultisig(2, pubkeys);
|
||||
keystore.AddCScript(scriptPubKey);
|
||||
SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL);
|
||||
BOOST_CHECK(keystore.AddCScript(scriptPubKey));
|
||||
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0, SIGHASH_ALL));
|
||||
scriptSig = DataFromTransaction(txTo, 0, txFrom.vout[0]);
|
||||
combined = CombineSignatures(txFrom.vout[0], txTo, scriptSig, empty);
|
||||
BOOST_CHECK(combined.scriptSig == scriptSig.scriptSig);
|
||||
|
@ -163,8 +163,8 @@ BOOST_FIXTURE_TEST_CASE(checkinputs_test, TestChain100Setup)
|
||||
CScript p2pkh_scriptPubKey = GetScriptForDestination(coinbaseKey.GetPubKey().GetID());
|
||||
|
||||
CBasicKeyStore keystore;
|
||||
keystore.AddKey(coinbaseKey);
|
||||
keystore.AddCScript(p2pk_scriptPubKey);
|
||||
BOOST_CHECK(keystore.AddKey(coinbaseKey));
|
||||
BOOST_CHECK(keystore.AddCScript(p2pk_scriptPubKey));
|
||||
|
||||
// flags to test: SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY, SCRIPT_VERIFY_CHECKSEQUENCE_VERIFY, SCRIPT_VERIFY_NULLDUMMY, uncompressed pubkey thing
|
||||
|
||||
|
@ -133,7 +133,7 @@ BOOST_AUTO_TEST_CASE(processnewblock_signals_ordering)
|
||||
BOOST_CHECK(ProcessNewBlockHeaders(headers, state, Params()));
|
||||
|
||||
// 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();
|
||||
|
||||
// subscribe to events (this subscriber will validate event ordering)
|
||||
|
Loading…
Reference in New Issue
Block a user