aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cryptonote_basic/hardfork.cpp5
-rwxr-xr-xtests/functional_tests/blockchain.py7
-rwxr-xr-xtests/functional_tests/cold_signing.py7
-rwxr-xr-xtests/functional_tests/mining.py7
-rwxr-xr-xtests/functional_tests/multisig.py7
-rwxr-xr-xtests/functional_tests/proofs.py7
-rwxr-xr-xtests/functional_tests/transfer.py7
-rwxr-xr-xtests/functional_tests/txpool.py7
-rwxr-xr-xtests/functional_tests/wallet_address.py8
-rw-r--r--tests/unit_tests/net.cpp20
10 files changed, 72 insertions, 10 deletions
diff --git a/src/cryptonote_basic/hardfork.cpp b/src/cryptonote_basic/hardfork.cpp
index d5710f727..98158a513 100644
--- a/src/cryptonote_basic/hardfork.cpp
+++ b/src/cryptonote_basic/hardfork.cpp
@@ -292,8 +292,7 @@ void HardFork::on_block_popped(uint64_t nblocks)
const uint64_t new_chain_height = db.height();
const uint64_t old_chain_height = new_chain_height + nblocks;
uint8_t version;
- uint64_t height;
- for (height = old_chain_height - 1; height >= new_chain_height; --height)
+ for (uint64_t height = old_chain_height - 1; height >= new_chain_height; --height)
{
version = versions.back();
last_versions[version]--;
@@ -305,7 +304,7 @@ void HardFork::on_block_popped(uint64_t nblocks)
// does not take voting into account
for (current_fork_index = heights.size() - 1; current_fork_index > 0; --current_fork_index)
- if (height >= heights[current_fork_index].height)
+ if (new_chain_height >= heights[current_fork_index].height)
break;
}
diff --git a/tests/functional_tests/blockchain.py b/tests/functional_tests/blockchain.py
index 56164600d..6376b86d0 100755
--- a/tests/functional_tests/blockchain.py
+++ b/tests/functional_tests/blockchain.py
@@ -45,9 +45,16 @@ from framework.daemon import Daemon
class BlockchainTest():
def run_test(self):
+ self.reset()
self._test_generateblocks(5)
self._test_alt_chains()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def _test_generateblocks(self, blocks):
assert blocks >= 2
diff --git a/tests/functional_tests/cold_signing.py b/tests/functional_tests/cold_signing.py
index e5430f87c..59a879e0a 100755
--- a/tests/functional_tests/cold_signing.py
+++ b/tests/functional_tests/cold_signing.py
@@ -38,10 +38,17 @@ from framework.wallet import Wallet
class ColdSigningTest():
def run_test(self):
+ self.reset()
self.create(0)
self.mine()
self.transfer()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def create(self, idx):
print 'Creating hot and cold wallet'
diff --git a/tests/functional_tests/mining.py b/tests/functional_tests/mining.py
index 1b189beb2..78dc68640 100755
--- a/tests/functional_tests/mining.py
+++ b/tests/functional_tests/mining.py
@@ -43,9 +43,16 @@ from framework.wallet import Wallet
class MiningTest():
def run_test(self):
+ self.reset()
self.create()
self.mine()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def create(self):
print 'Creating wallet'
wallet = Wallet()
diff --git a/tests/functional_tests/multisig.py b/tests/functional_tests/multisig.py
index a61f30001..476e3a02d 100755
--- a/tests/functional_tests/multisig.py
+++ b/tests/functional_tests/multisig.py
@@ -38,6 +38,7 @@ from framework.wallet import Wallet
class MultisigTest():
def run_test(self):
+ self.reset()
self.mine('493DsrfJPqiN3Suv9RcRDoZEbQtKZX1sNcGPA3GhkKYEEmivk8kjQrTdRdVc4ZbmzWJuE157z9NNUKmF2VDfdYDR3CziGMk', 5)
self.mine('42jSRGmmKN96V2j3B8X2DbiNThBXW1tSi1rW1uwkqbyURenq3eC3yosNm8HEMdHuWwKMFGzMUB3RCTvcTaW9kHpdRPP7p5y', 5)
self.mine('47fF32AdrmXG84FcPY697uZdd42pMMGiH5UpiTRTt3YX2pZC7t7wkzEMStEicxbQGRfrYvAAYxH6Fe8rnD56EaNwUgxRd53', 5)
@@ -68,6 +69,12 @@ class MultisigTest():
self.import_multisig_info([0, 1, 2, 3], 6)
self.check_transaction(txid)
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def mine(self, address, blocks):
print("Mining some blocks")
daemon = Daemon()
diff --git a/tests/functional_tests/proofs.py b/tests/functional_tests/proofs.py
index 0a0b6304d..844131095 100755
--- a/tests/functional_tests/proofs.py
+++ b/tests/functional_tests/proofs.py
@@ -38,6 +38,7 @@ from framework.wallet import Wallet
class ProofsTest():
def run_test(self):
+ self.reset()
self.mine('42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm', 80)
self.create_wallets()
txid, tx_key, amount = self.transfer()
@@ -45,6 +46,12 @@ class ProofsTest():
self.check_tx_proof(txid, amount)
self.check_reserve_proof()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def mine(self, address, blocks):
print("Mining some blocks")
daemon = Daemon()
diff --git a/tests/functional_tests/transfer.py b/tests/functional_tests/transfer.py
index bc2f5472b..1ff641d1f 100755
--- a/tests/functional_tests/transfer.py
+++ b/tests/functional_tests/transfer.py
@@ -39,6 +39,7 @@ from framework.wallet import Wallet
class TransferTest():
def run_test(self):
+ self.reset()
self.create()
self.mine()
self.transfer()
@@ -46,6 +47,12 @@ class TransferTest():
self.check_double_spend_detection()
self.sweep_single()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def create(self):
print 'Creating wallets'
seeds = [
diff --git a/tests/functional_tests/txpool.py b/tests/functional_tests/txpool.py
index 71109c9e5..d74395f10 100755
--- a/tests/functional_tests/txpool.py
+++ b/tests/functional_tests/txpool.py
@@ -38,10 +38,17 @@ from framework.wallet import Wallet
class TransferTest():
def run_test(self):
+ self.reset()
self.create()
self.mine()
self.check_txpool()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def create(self):
print 'Creating wallet'
wallet = Wallet()
diff --git a/tests/functional_tests/wallet_address.py b/tests/functional_tests/wallet_address.py
index cb9c52e7a..8a55521c6 100755
--- a/tests/functional_tests/wallet_address.py
+++ b/tests/functional_tests/wallet_address.py
@@ -39,9 +39,11 @@ Test the following RPCs:
"""
from framework.wallet import Wallet
+from framework.daemon import Daemon
class WalletAddressTest():
def run_test(self):
+ self.reset()
self.create()
self.check_main_address()
self.check_keys()
@@ -49,6 +51,12 @@ class WalletAddressTest():
self.open_close()
self.languages()
+ def reset(self):
+ print 'Resetting blockchain'
+ daemon = Daemon()
+ daemon.pop_blocks(1000)
+ daemon.flush_txpool()
+
def create(self):
print 'Creating wallet'
wallet = Wallet()
diff --git a/tests/unit_tests/net.cpp b/tests/unit_tests/net.cpp
index 77fb71d96..326e63db8 100644
--- a/tests/unit_tests/net.cpp
+++ b/tests/unit_tests/net.cpp
@@ -546,7 +546,7 @@ namespace
connected(false)
{
acceptor.open(boost::asio::ip::tcp::v4());
- acceptor.bind(stream_type::endpoint{boost::asio::ip::tcp::v4(), 0});
+ acceptor.bind(stream_type::endpoint{boost::asio::ip::address_v4::loopback(), 0});
acceptor.listen();
acceptor.async_accept(server, [this] (boost::system::error_code error) {
this->connected = true;
@@ -621,7 +621,8 @@ TEST(socks_client, connect_command)
ASSERT_TRUE(test_client->set_connect_command("example.com", 8080));
EXPECT_FALSE(test_client->buffer().empty());
ASSERT_TRUE(net::socks::client::connect_and_send(std::move(test_client), io.acceptor.local_endpoint()));
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_FALSE(called);
const std::uint8_t expected_bytes[] = {
4, 1, 0x1f, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00,
@@ -657,7 +658,8 @@ TEST(socks_client, connect_command_failed)
);
EXPECT_FALSE(test_client->buffer().empty());
ASSERT_TRUE(net::socks::client::connect_and_send(std::move(test_client), io.acceptor.local_endpoint()));
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_FALSE(called);
const std::uint8_t expected_bytes[] = {
4, 1, 0x0b, 0xb8, 0x00, 0x00, 0x13, 0x88, 0x00
@@ -713,7 +715,8 @@ TEST(socks_client, resolve_command)
ASSERT_TRUE(test_client->set_resolve_command("example.com"));
EXPECT_FALSE(test_client->buffer().empty());
ASSERT_TRUE(net::socks::client::connect_and_send(test_client, io.acceptor.local_endpoint()));
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_EQ(0u, test_client->called_);
const std::uint8_t expected_bytes[] = {
4, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
@@ -753,7 +756,8 @@ TEST(socks_connector, host)
boost::unique_future<boost::asio::ip::tcp::socket> sock =
net::socks::connector{io.acceptor.local_endpoint()}("example.com", "8080", timeout);
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_FALSE(sock.is_ready());
const std::uint8_t expected_bytes[] = {
4, 1, 0x1f, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00,
'e', 'x', 'a', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm', 0x00
@@ -779,7 +783,8 @@ TEST(socks_connector, ipv4)
boost::unique_future<boost::asio::ip::tcp::socket> sock =
net::socks::connector{io.acceptor.local_endpoint()}("250.88.125.99", "8080", timeout);
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_FALSE(sock.is_ready());
const std::uint8_t expected_bytes[] = {
4, 1, 0x1f, 0x90, 0xfa, 0x58, 0x7d, 0x63, 0x00
};
@@ -804,7 +809,8 @@ TEST(socks_connector, error)
boost::unique_future<boost::asio::ip::tcp::socket> sock =
net::socks::connector{io.acceptor.local_endpoint()}("250.88.125.99", "8080", timeout);
- while (!io.connected);
+ while (!io.connected)
+ ASSERT_FALSE(sock.is_ready());
const std::uint8_t expected_bytes[] = {
4, 1, 0x1f, 0x90, 0xfa, 0x58, 0x7d, 0x63, 0x00
};