@@ -60,7 +60,7 @@ def set_test_params(self):
60
60
self .extra_args = [
61
61
[],
62
62
["-fastprune" , "-prune=1" , "-blockfilterindex=1" , "-coinstatsindex=1" ],
63
- ["-txindex=1" , "-blockfilterindex=1" , "-coinstatsindex=1" ],
63
+ ["-persistmempool=0" , "- txindex=1" , "-blockfilterindex=1" , "-coinstatsindex=1" ],
64
64
]
65
65
66
66
def setup_network (self ):
@@ -135,6 +135,19 @@ def expected_error(log_msg="", error_msg=""):
135
135
rmtree (chainstate_snapshot_path )
136
136
self .start_node (0 )
137
137
138
+ def test_invalid_mempool_state (self , dump_output_path ):
139
+ self .log .info ("Test bitcoind should fail when mempool not empty." )
140
+ node = self .nodes [2 ]
141
+ tx = MiniWallet (node ).send_self_transfer (from_node = node )
142
+
143
+ assert tx ['txid' ] in node .getrawmempool ()
144
+
145
+ # Attempt to load the snapshot on Node 2 and expect it to fail
146
+ with node .assert_debug_log (expected_msgs = ["[snapshot] can't activate a snapshot when mempool not empty" ]):
147
+ assert_raises_rpc_error (- 32603 , "Unable to load UTXO snapshot" , node .loadtxoutset , dump_output_path )
148
+
149
+ self .restart_node (2 , extra_args = self .extra_args [2 ])
150
+
138
151
def run_test (self ):
139
152
"""
140
153
Bring up two (disconnected) nodes, mine some new blocks on the first,
@@ -197,6 +210,7 @@ def run_test(self):
197
210
198
211
assert_equal (n0 .getblockchaininfo ()["blocks" ], FINAL_HEIGHT )
199
212
213
+ self .test_invalid_mempool_state (dump_output ['path' ])
200
214
self .test_invalid_snapshot_scenarios (dump_output ['path' ])
201
215
self .test_invalid_chainstate_scenarios ()
202
216
0 commit comments