mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 03:47:29 -03:00
Merge bitcoin/bitcoin#30403: test, assumeutxo: Remove resolved todo comments and add new test
d63ef73800
test: Add loadtxoutset test with tip on snapshot block (Fabian Jahr)c2f86d4bcb
test: Remove already resolved assumeutxo todo comments (Fabian Jahr) Pull request description: The first commit removes three Todos that have been addressed previously (see commit message for details). The second message resolves another todo by adding the missing test case. This is a special case of "the tip has more work than the snapshot" where the tip is the same block as the snapshot base block. Related to #28648. ACKs for top commit: jrakibi: ACK [d63ef73
](d63ef73800
) achow101: ACKd63ef73800
maflcko: ACKd63ef73800
alfonsoromanz: Re ACKd63ef73800
Tree-SHA512: 8d5a25fc0b26531db3a9740132694138f2103b7b42eeb1d4a64095bfc901c1372e23601c0855c7def84c8a4e185d10611e4e830c4e479f1b663ae6ed53abb130
This commit is contained in:
commit
8ae79f1155
1 changed files with 7 additions and 15 deletions
|
@ -8,20 +8,6 @@ to a hash that has been compiled into bitcoind.
|
|||
|
||||
The assumeutxo value generated and used here is committed to in
|
||||
`CRegTestParams::m_assumeutxo_data` in `src/kernel/chainparams.cpp`.
|
||||
|
||||
## Possible test improvements
|
||||
|
||||
Interesting test cases could be loading an assumeutxo snapshot file with:
|
||||
|
||||
- TODO: Valid snapshot file, but referencing a snapshot block that turns out to be
|
||||
invalid, or has an invalid parent
|
||||
|
||||
Interesting starting states could be loading a snapshot when the current chain tip is:
|
||||
|
||||
- TODO: An ancestor of snapshot block
|
||||
- TODO: The snapshot block
|
||||
- TODO: A descendant of the snapshot block
|
||||
|
||||
"""
|
||||
from shutil import rmtree
|
||||
|
||||
|
@ -202,7 +188,6 @@ class AssumeutxoTest(BitcoinTestFramework):
|
|||
def test_snapshot_with_less_work(self, dump_output_path):
|
||||
self.log.info("Test bitcoind should fail when snapshot has less accumulated work than this node.")
|
||||
node = self.nodes[0]
|
||||
assert_equal(node.getblockcount(), FINAL_HEIGHT)
|
||||
with node.assert_debug_log(expected_msgs=["[snapshot] activation failed - work does not exceed active chainstate"]):
|
||||
assert_raises_rpc_error(-32603, "Unable to load UTXO snapshot", node.loadtxoutset, dump_output_path)
|
||||
|
||||
|
@ -316,6 +301,11 @@ class AssumeutxoTest(BitcoinTestFramework):
|
|||
self.log.info(f"Creating a UTXO snapshot at height {SNAPSHOT_BASE_HEIGHT}")
|
||||
dump_output = n0.dumptxoutset('utxos.dat')
|
||||
|
||||
self.log.info("Test loading snapshot when the node tip is on the same block as the snapshot")
|
||||
assert_equal(n0.getblockcount(), SNAPSHOT_BASE_HEIGHT)
|
||||
assert_equal(n0.getblockchaininfo()["blocks"], SNAPSHOT_BASE_HEIGHT)
|
||||
self.test_snapshot_with_less_work(dump_output['path'])
|
||||
|
||||
self.log.info("Test loading snapshot when headers are not synced")
|
||||
self.test_headers_not_synced(dump_output['path'])
|
||||
|
||||
|
@ -358,6 +348,8 @@ class AssumeutxoTest(BitcoinTestFramework):
|
|||
self.test_snapshot_not_on_most_work_chain(dump_output['path'])
|
||||
|
||||
self.log.info(f"Loading snapshot into second node from {dump_output['path']}")
|
||||
# This node's tip is on an ancestor block of the snapshot, which should
|
||||
# be the normal case
|
||||
loaded = n1.loadtxoutset(dump_output['path'])
|
||||
assert_equal(loaded['coins_loaded'], SNAPSHOT_BASE_HEIGHT)
|
||||
assert_equal(loaded['base_height'], SNAPSHOT_BASE_HEIGHT)
|
||||
|
|
Loading…
Reference in a new issue