Merge pull request #5467
aba2b2e7
functional_tests: reset blockchain on test start (moneromooo-monero)375fde94
hardfork: fix off by one updating fork index after popping (moneromooo-monero)
This commit is contained in:
commit
eb1da46ac1
@ -292,8 +292,7 @@ void HardFork::on_block_popped(uint64_t nblocks)
|
|||||||
const uint64_t new_chain_height = db.height();
|
const uint64_t new_chain_height = db.height();
|
||||||
const uint64_t old_chain_height = new_chain_height + nblocks;
|
const uint64_t old_chain_height = new_chain_height + nblocks;
|
||||||
uint8_t version;
|
uint8_t version;
|
||||||
uint64_t height;
|
for (uint64_t height = old_chain_height - 1; height >= new_chain_height; --height)
|
||||||
for (height = old_chain_height - 1; height >= new_chain_height; --height)
|
|
||||||
{
|
{
|
||||||
version = versions.back();
|
version = versions.back();
|
||||||
last_versions[version]--;
|
last_versions[version]--;
|
||||||
@ -305,7 +304,7 @@ void HardFork::on_block_popped(uint64_t nblocks)
|
|||||||
|
|
||||||
// does not take voting into account
|
// does not take voting into account
|
||||||
for (current_fork_index = heights.size() - 1; current_fork_index > 0; --current_fork_index)
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,9 +45,16 @@ from framework.daemon import Daemon
|
|||||||
|
|
||||||
class BlockchainTest():
|
class BlockchainTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self._test_generateblocks(5)
|
self._test_generateblocks(5)
|
||||||
self._test_alt_chains()
|
self._test_alt_chains()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def _test_generateblocks(self, blocks):
|
def _test_generateblocks(self, blocks):
|
||||||
assert blocks >= 2
|
assert blocks >= 2
|
||||||
|
|
||||||
|
@ -38,10 +38,17 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class ColdSigningTest():
|
class ColdSigningTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.create(0)
|
self.create(0)
|
||||||
self.mine()
|
self.mine()
|
||||||
self.transfer()
|
self.transfer()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def create(self, idx):
|
def create(self, idx):
|
||||||
print 'Creating hot and cold wallet'
|
print 'Creating hot and cold wallet'
|
||||||
|
|
||||||
|
@ -43,9 +43,16 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class MiningTest():
|
class MiningTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.create()
|
self.create()
|
||||||
self.mine()
|
self.mine()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
print 'Creating wallet'
|
print 'Creating wallet'
|
||||||
wallet = Wallet()
|
wallet = Wallet()
|
||||||
|
@ -38,6 +38,7 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class MultisigTest():
|
class MultisigTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.mine('493DsrfJPqiN3Suv9RcRDoZEbQtKZX1sNcGPA3GhkKYEEmivk8kjQrTdRdVc4ZbmzWJuE157z9NNUKmF2VDfdYDR3CziGMk', 5)
|
self.mine('493DsrfJPqiN3Suv9RcRDoZEbQtKZX1sNcGPA3GhkKYEEmivk8kjQrTdRdVc4ZbmzWJuE157z9NNUKmF2VDfdYDR3CziGMk', 5)
|
||||||
self.mine('42jSRGmmKN96V2j3B8X2DbiNThBXW1tSi1rW1uwkqbyURenq3eC3yosNm8HEMdHuWwKMFGzMUB3RCTvcTaW9kHpdRPP7p5y', 5)
|
self.mine('42jSRGmmKN96V2j3B8X2DbiNThBXW1tSi1rW1uwkqbyURenq3eC3yosNm8HEMdHuWwKMFGzMUB3RCTvcTaW9kHpdRPP7p5y', 5)
|
||||||
self.mine('47fF32AdrmXG84FcPY697uZdd42pMMGiH5UpiTRTt3YX2pZC7t7wkzEMStEicxbQGRfrYvAAYxH6Fe8rnD56EaNwUgxRd53', 5)
|
self.mine('47fF32AdrmXG84FcPY697uZdd42pMMGiH5UpiTRTt3YX2pZC7t7wkzEMStEicxbQGRfrYvAAYxH6Fe8rnD56EaNwUgxRd53', 5)
|
||||||
@ -68,6 +69,12 @@ class MultisigTest():
|
|||||||
self.import_multisig_info([0, 1, 2, 3], 6)
|
self.import_multisig_info([0, 1, 2, 3], 6)
|
||||||
self.check_transaction(txid)
|
self.check_transaction(txid)
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def mine(self, address, blocks):
|
def mine(self, address, blocks):
|
||||||
print("Mining some blocks")
|
print("Mining some blocks")
|
||||||
daemon = Daemon()
|
daemon = Daemon()
|
||||||
|
@ -38,6 +38,7 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class ProofsTest():
|
class ProofsTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.mine('42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm', 80)
|
self.mine('42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm', 80)
|
||||||
self.create_wallets()
|
self.create_wallets()
|
||||||
txid, tx_key, amount = self.transfer()
|
txid, tx_key, amount = self.transfer()
|
||||||
@ -45,6 +46,12 @@ class ProofsTest():
|
|||||||
self.check_tx_proof(txid, amount)
|
self.check_tx_proof(txid, amount)
|
||||||
self.check_reserve_proof()
|
self.check_reserve_proof()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def mine(self, address, blocks):
|
def mine(self, address, blocks):
|
||||||
print("Mining some blocks")
|
print("Mining some blocks")
|
||||||
daemon = Daemon()
|
daemon = Daemon()
|
||||||
|
@ -39,6 +39,7 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class TransferTest():
|
class TransferTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.create()
|
self.create()
|
||||||
self.mine()
|
self.mine()
|
||||||
self.transfer()
|
self.transfer()
|
||||||
@ -46,6 +47,12 @@ class TransferTest():
|
|||||||
self.check_double_spend_detection()
|
self.check_double_spend_detection()
|
||||||
self.sweep_single()
|
self.sweep_single()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
print 'Creating wallets'
|
print 'Creating wallets'
|
||||||
seeds = [
|
seeds = [
|
||||||
|
@ -38,10 +38,17 @@ from framework.wallet import Wallet
|
|||||||
|
|
||||||
class TransferTest():
|
class TransferTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.create()
|
self.create()
|
||||||
self.mine()
|
self.mine()
|
||||||
self.check_txpool()
|
self.check_txpool()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
print 'Creating wallet'
|
print 'Creating wallet'
|
||||||
wallet = Wallet()
|
wallet = Wallet()
|
||||||
|
@ -39,9 +39,11 @@ Test the following RPCs:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from framework.wallet import Wallet
|
from framework.wallet import Wallet
|
||||||
|
from framework.daemon import Daemon
|
||||||
|
|
||||||
class WalletAddressTest():
|
class WalletAddressTest():
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
self.reset()
|
||||||
self.create()
|
self.create()
|
||||||
self.check_main_address()
|
self.check_main_address()
|
||||||
self.check_keys()
|
self.check_keys()
|
||||||
@ -49,6 +51,12 @@ class WalletAddressTest():
|
|||||||
self.open_close()
|
self.open_close()
|
||||||
self.languages()
|
self.languages()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
print 'Resetting blockchain'
|
||||||
|
daemon = Daemon()
|
||||||
|
daemon.pop_blocks(1000)
|
||||||
|
daemon.flush_txpool()
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
print 'Creating wallet'
|
print 'Creating wallet'
|
||||||
wallet = Wallet()
|
wallet = Wallet()
|
||||||
|
Loading…
Reference in New Issue
Block a user