aboutsummaryrefslogtreecommitdiff
path: root/tests/core_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/core_tests')
-rw-r--r--tests/core_tests/chaingen.h10
-rw-r--r--tests/core_tests/tx_validation.cpp12
2 files changed, 20 insertions, 2 deletions
diff --git a/tests/core_tests/chaingen.h b/tests/core_tests/chaingen.h
index eef10312d..add48eebe 100644
--- a/tests/core_tests/chaingen.h
+++ b/tests/core_tests/chaingen.h
@@ -472,6 +472,16 @@ inline bool do_replay_events(std::vector<test_event_entry>& events)
MERROR("Failed to init core");
return false;
}
+
+ // start with a clean pool
+ std::vector<crypto::hash> pool_txs;
+ if (!c.get_pool_transaction_hashes(pool_txs))
+ {
+ MERROR("Failed to flush txpool");
+ return false;
+ }
+ c.get_blockchain_storage().flush_txes_from_pool(std::list<crypto::hash>(pool_txs.begin(), pool_txs.end()));
+
t_test_class validator;
bool ret = replay_events_through_core<t_test_class>(c, events, validator);
c.deinit();
diff --git a/tests/core_tests/tx_validation.cpp b/tests/core_tests/tx_validation.cpp
index 885b95c69..66460e876 100644
--- a/tests/core_tests/tx_validation.cpp
+++ b/tests/core_tests/tx_validation.cpp
@@ -163,6 +163,15 @@ namespace
throw std::runtime_error("invalid public key wasn't found");
return crypto::public_key();
}
+
+ crypto::key_image generate_invalid_key_image()
+ {
+ crypto::key_image key_image;
+ // a random key image plucked from the blockchain
+ if (!epee::string_tools::hex_to_pod("6b9f5d1be7c950dc6e4e258c6ef75509412ba9ecaaf90e6886140151d1365b5e", key_image))
+ throw std::runtime_error("invalid key image wasn't found");
+ return key_image;
+ }
}
//----------------------------------------------------------------------------------------------------------------------
@@ -541,8 +550,7 @@ bool gen_tx_key_image_is_invalid::generate(std::vector<test_event_entry>& events
builder.step2_fill_inputs(miner_account.get_keys(), sources);
txin_to_key& in_to_key = boost::get<txin_to_key>(builder.m_tx.vin.front());
- crypto::public_key pub = generate_invalid_pub_key();
- memcpy(&in_to_key.k_image, &pub, sizeof(crypto::ec_point));
+ in_to_key.k_image = generate_invalid_key_image();
builder.step3_fill_outputs(destinations);
builder.step4_calc_hash();