mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-11-30 03:03:17 +00:00
tests: fix tests broken by the removal of the block reward accumulation loop
The tests for rejection of unmixable outputs in v2 are commented out, as there are no unmixable outputs created anymore. This should be restored at some point.
This commit is contained in:
parent
a6e717ed30
commit
9ef8c7b694
6 changed files with 18 additions and 24 deletions
|
@ -44,7 +44,7 @@ namespace cryptonote
|
||||||
crypto::hash get_transaction_prefix_hash(const transaction_prefix& tx);
|
crypto::hash get_transaction_prefix_hash(const transaction_prefix& tx);
|
||||||
bool parse_and_validate_tx_from_blob(const blobdata& tx_blob, transaction& tx, crypto::hash& tx_hash, crypto::hash& tx_prefix_hash);
|
bool parse_and_validate_tx_from_blob(const blobdata& tx_blob, transaction& tx, crypto::hash& tx_hash, crypto::hash& tx_prefix_hash);
|
||||||
bool parse_and_validate_tx_from_blob(const blobdata& tx_blob, transaction& tx);
|
bool parse_and_validate_tx_from_blob(const blobdata& tx_blob, transaction& tx);
|
||||||
bool construct_miner_tx(size_t height, size_t median_size, uint64_t already_generated_coins, size_t current_block_size, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce = blobdata(), size_t max_outs = 1, uint8_t hard_fork_version = 1);
|
bool construct_miner_tx(size_t height, size_t median_size, uint64_t already_generated_coins, size_t current_block_size, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce = blobdata(), size_t max_outs = 999, uint8_t hard_fork_version = 1);
|
||||||
bool encrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key);
|
bool encrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key);
|
||||||
bool decrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key);
|
bool decrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key);
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ bool test_generator::construct_block_manually(block& blk, const block& prev_bloc
|
||||||
blk.timestamp = actual_params & bf_timestamp ? timestamp : prev_block.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN; // Keep difficulty unchanged
|
blk.timestamp = actual_params & bf_timestamp ? timestamp : prev_block.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN; // Keep difficulty unchanged
|
||||||
blk.prev_id = actual_params & bf_prev_id ? prev_id : get_block_hash(prev_block);
|
blk.prev_id = actual_params & bf_prev_id ? prev_id : get_block_hash(prev_block);
|
||||||
blk.tx_hashes = actual_params & bf_tx_hashes ? tx_hashes : std::vector<crypto::hash>();
|
blk.tx_hashes = actual_params & bf_tx_hashes ? tx_hashes : std::vector<crypto::hash>();
|
||||||
max_outs = actual_params & bf_max_outs ? max_outs : 1;
|
max_outs = actual_params & bf_max_outs ? max_outs : 9999;
|
||||||
|
|
||||||
size_t height = get_block_height(prev_block) + 1;
|
size_t height = get_block_height(prev_block) + 1;
|
||||||
uint64_t already_generated_coins = get_already_generated_coins(prev_block);
|
uint64_t already_generated_coins = get_already_generated_coins(prev_block);
|
||||||
|
|
|
@ -241,7 +241,7 @@ public:
|
||||||
const cryptonote::account_base& miner_acc, int actual_params = bf_none, uint8_t major_ver = 0,
|
const cryptonote::account_base& miner_acc, int actual_params = bf_none, uint8_t major_ver = 0,
|
||||||
uint8_t minor_ver = 0, uint64_t timestamp = 0, const crypto::hash& prev_id = crypto::hash(),
|
uint8_t minor_ver = 0, uint64_t timestamp = 0, const crypto::hash& prev_id = crypto::hash(),
|
||||||
const cryptonote::difficulty_type& diffic = 1, const cryptonote::transaction& miner_tx = cryptonote::transaction(),
|
const cryptonote::difficulty_type& diffic = 1, const cryptonote::transaction& miner_tx = cryptonote::transaction(),
|
||||||
const std::vector<crypto::hash>& tx_hashes = std::vector<crypto::hash>(), size_t txs_sizes = 0, size_t max_outs = 0);
|
const std::vector<crypto::hash>& tx_hashes = std::vector<crypto::hash>(), size_t txs_sizes = 0, size_t max_outs = 999);
|
||||||
bool construct_block_manually_tx(cryptonote::block& blk, const cryptonote::block& prev_block,
|
bool construct_block_manually_tx(cryptonote::block& blk, const cryptonote::block& prev_block,
|
||||||
const cryptonote::account_base& miner_acc, const std::vector<crypto::hash>& tx_hashes, size_t txs_size);
|
const cryptonote::account_base& miner_acc, const std::vector<crypto::hash>& tx_hashes, size_t txs_size);
|
||||||
|
|
||||||
|
|
|
@ -168,9 +168,9 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_mixable_0_mixin);
|
GENERATE_AND_PLAY(gen_v2_tx_mixable_0_mixin);
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_mixable_low_mixin);
|
GENERATE_AND_PLAY(gen_v2_tx_mixable_low_mixin);
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_unmixable_only);
|
// GENERATE_AND_PLAY(gen_v2_tx_unmixable_only);
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_unmixable_one);
|
// GENERATE_AND_PLAY(gen_v2_tx_unmixable_one);
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_unmixable_two);
|
// GENERATE_AND_PLAY(gen_v2_tx_unmixable_two);
|
||||||
GENERATE_AND_PLAY(gen_v2_tx_dust);
|
GENERATE_AND_PLAY(gen_v2_tx_dust);
|
||||||
|
|
||||||
std::cout << (failed_tests.empty() ? concolor::green : concolor::magenta);
|
std::cout << (failed_tests.empty() ? concolor::green : concolor::magenta);
|
||||||
|
|
|
@ -38,7 +38,7 @@ using namespace cryptonote;
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
// Tests
|
// Tests
|
||||||
|
|
||||||
bool gen_v2_tx_validation_base::generate_with(std::vector<test_event_entry>& events, const int *out_idx, int mixin, uint64_t amount_paid, size_t max_outs, bool valid) const
|
bool gen_v2_tx_validation_base::generate_with(std::vector<test_event_entry>& events, const int *out_idx, int mixin, uint64_t amount_paid, bool valid) const
|
||||||
{
|
{
|
||||||
uint64_t ts_start = 1338224400;
|
uint64_t ts_start = 1338224400;
|
||||||
|
|
||||||
|
@ -52,9 +52,9 @@ bool gen_v2_tx_validation_base::generate_with(std::vector<test_event_entry>& eve
|
||||||
for (size_t n = 0; n < 4; ++n) {
|
for (size_t n = 0; n < 4; ++n) {
|
||||||
miner_accounts[n].generate();
|
miner_accounts[n].generate();
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blocks[n], *prev_block, miner_accounts[n],
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blocks[n], *prev_block, miner_accounts[n],
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_max_outs,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp,
|
||||||
2, 2, prev_block->timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
2, 2, prev_block->timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, max_outs),
|
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blocks[n]);
|
events.push_back(blocks[n]);
|
||||||
prev_block = blocks + n;
|
prev_block = blocks + n;
|
||||||
|
@ -68,9 +68,9 @@ bool gen_v2_tx_validation_base::generate_with(std::vector<test_event_entry>& eve
|
||||||
{
|
{
|
||||||
cryptonote::block blk;
|
cryptonote::block blk;
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_max_outs,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp,
|
||||||
2, 2, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
2, 2, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, max_outs),
|
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blk);
|
events.push_back(blk);
|
||||||
blk_last = blk;
|
blk_last = blk;
|
||||||
|
@ -123,8 +123,7 @@ bool gen_v2_tx_mixable_0_mixin::generate(std::vector<test_event_entry>& events)
|
||||||
const int mixin = 0;
|
const int mixin = 0;
|
||||||
const int out_idx[] = {1, -1};
|
const int out_idx[] = {1, -1};
|
||||||
const uint64_t amount_paid = 10000;
|
const uint64_t amount_paid = 10000;
|
||||||
const size_t max_outs = 11;
|
return generate_with(events, out_idx, mixin, amount_paid, false);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gen_v2_tx_mixable_low_mixin::generate(std::vector<test_event_entry>& events) const
|
bool gen_v2_tx_mixable_low_mixin::generate(std::vector<test_event_entry>& events) const
|
||||||
|
@ -132,8 +131,7 @@ bool gen_v2_tx_mixable_low_mixin::generate(std::vector<test_event_entry>& events
|
||||||
const int mixin = 1;
|
const int mixin = 1;
|
||||||
const int out_idx[] = {1, -1};
|
const int out_idx[] = {1, -1};
|
||||||
const uint64_t amount_paid = 10000;
|
const uint64_t amount_paid = 10000;
|
||||||
const size_t max_outs = 11;
|
return generate_with(events, out_idx, mixin, amount_paid, false);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gen_v2_tx_unmixable_only::generate(std::vector<test_event_entry>& events) const
|
bool gen_v2_tx_unmixable_only::generate(std::vector<test_event_entry>& events) const
|
||||||
|
@ -141,8 +139,7 @@ bool gen_v2_tx_unmixable_only::generate(std::vector<test_event_entry>& events) c
|
||||||
const int mixin = 0;
|
const int mixin = 0;
|
||||||
const int out_idx[] = {0, -1};
|
const int out_idx[] = {0, -1};
|
||||||
const uint64_t amount_paid = 10000;
|
const uint64_t amount_paid = 10000;
|
||||||
const size_t max_outs = 1;
|
return generate_with(events, out_idx, mixin, amount_paid, true);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gen_v2_tx_unmixable_one::generate(std::vector<test_event_entry>& events) const
|
bool gen_v2_tx_unmixable_one::generate(std::vector<test_event_entry>& events) const
|
||||||
|
@ -150,8 +147,7 @@ bool gen_v2_tx_unmixable_one::generate(std::vector<test_event_entry>& events) co
|
||||||
const int mixin = 0;
|
const int mixin = 0;
|
||||||
const int out_idx[] = {0, 1, -1};
|
const int out_idx[] = {0, 1, -1};
|
||||||
const uint64_t amount_paid = 10000;
|
const uint64_t amount_paid = 10000;
|
||||||
const size_t max_outs = 11;
|
return generate_with(events, out_idx, mixin, amount_paid, true);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gen_v2_tx_unmixable_two::generate(std::vector<test_event_entry>& events) const
|
bool gen_v2_tx_unmixable_two::generate(std::vector<test_event_entry>& events) const
|
||||||
|
@ -159,8 +155,7 @@ bool gen_v2_tx_unmixable_two::generate(std::vector<test_event_entry>& events) co
|
||||||
const int mixin = 0;
|
const int mixin = 0;
|
||||||
const int out_idx[] = {0, 1, 2, -1};
|
const int out_idx[] = {0, 1, 2, -1};
|
||||||
const uint64_t amount_paid = 10000;
|
const uint64_t amount_paid = 10000;
|
||||||
const size_t max_outs = 11;
|
return generate_with(events, out_idx, mixin, amount_paid, false);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gen_v2_tx_dust::generate(std::vector<test_event_entry>& events) const
|
bool gen_v2_tx_dust::generate(std::vector<test_event_entry>& events) const
|
||||||
|
@ -168,6 +163,5 @@ bool gen_v2_tx_dust::generate(std::vector<test_event_entry>& events) const
|
||||||
const int mixin = 2;
|
const int mixin = 2;
|
||||||
const int out_idx[] = {1, -1};
|
const int out_idx[] = {1, -1};
|
||||||
const uint64_t amount_paid = 10001;
|
const uint64_t amount_paid = 10001;
|
||||||
const size_t max_outs = 11;
|
return generate_with(events, out_idx, mixin, amount_paid, false);
|
||||||
return generate_with(events, out_idx, mixin, amount_paid, max_outs, false);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ struct gen_v2_tx_validation_base : public test_chain_unit_base
|
||||||
}
|
}
|
||||||
|
|
||||||
bool generate_with(std::vector<test_event_entry>& events, const int *out_idx, int mixin,
|
bool generate_with(std::vector<test_event_entry>& events, const int *out_idx, int mixin,
|
||||||
uint64_t amount_paid, size_t max_outs, bool valid) const;
|
uint64_t amount_paid, bool valid) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t m_invalid_tx_index;
|
size_t m_invalid_tx_index;
|
||||||
|
|
Loading…
Reference in a new issue