From 9ef8c7b694f8f00c8a70e05ff88a5768b8f78a3c Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 1 May 2016 19:40:14 +0100 Subject: [PATCH] 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. --- src/cryptonote_core/cryptonote_format_utils.h | 2 +- tests/core_tests/chaingen.cpp | 2 +- tests/core_tests/chaingen.h | 2 +- tests/core_tests/chaingen_main.cpp | 6 ++-- tests/core_tests/v2_tests.cpp | 28 ++++++++----------- tests/core_tests/v2_tests.h | 2 +- 6 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/cryptonote_core/cryptonote_format_utils.h b/src/cryptonote_core/cryptonote_format_utils.h index 4142829e..056940e9 100644 --- a/src/cryptonote_core/cryptonote_format_utils.h +++ b/src/cryptonote_core/cryptonote_format_utils.h @@ -44,7 +44,7 @@ namespace cryptonote 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); - 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 decrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key); diff --git a/tests/core_tests/chaingen.cpp b/tests/core_tests/chaingen.cpp index 4fdd0a60..efd0bf1e 100644 --- a/tests/core_tests/chaingen.cpp +++ b/tests/core_tests/chaingen.cpp @@ -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.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(); - 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; uint64_t already_generated_coins = get_already_generated_coins(prev_block); diff --git a/tests/core_tests/chaingen.h b/tests/core_tests/chaingen.h index 652413b8..0e5dbb0e 100644 --- a/tests/core_tests/chaingen.h +++ b/tests/core_tests/chaingen.h @@ -241,7 +241,7 @@ public: 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(), const cryptonote::difficulty_type& diffic = 1, const cryptonote::transaction& miner_tx = cryptonote::transaction(), - const std::vector& tx_hashes = std::vector(), size_t txs_sizes = 0, size_t max_outs = 0); + const std::vector& tx_hashes = std::vector(), size_t txs_sizes = 0, size_t max_outs = 999); bool construct_block_manually_tx(cryptonote::block& blk, const cryptonote::block& prev_block, const cryptonote::account_base& miner_acc, const std::vector& tx_hashes, size_t txs_size); diff --git a/tests/core_tests/chaingen_main.cpp b/tests/core_tests/chaingen_main.cpp index 9f8a5782..e20f7a15 100644 --- a/tests/core_tests/chaingen_main.cpp +++ b/tests/core_tests/chaingen_main.cpp @@ -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_low_mixin); - GENERATE_AND_PLAY(gen_v2_tx_unmixable_only); - GENERATE_AND_PLAY(gen_v2_tx_unmixable_one); - GENERATE_AND_PLAY(gen_v2_tx_unmixable_two); +// GENERATE_AND_PLAY(gen_v2_tx_unmixable_only); +// GENERATE_AND_PLAY(gen_v2_tx_unmixable_one); +// GENERATE_AND_PLAY(gen_v2_tx_unmixable_two); GENERATE_AND_PLAY(gen_v2_tx_dust); std::cout << (failed_tests.empty() ? concolor::green : concolor::magenta); diff --git a/tests/core_tests/v2_tests.cpp b/tests/core_tests/v2_tests.cpp index d0545628..fe6b8b27 100644 --- a/tests/core_tests/v2_tests.cpp +++ b/tests/core_tests/v2_tests.cpp @@ -38,7 +38,7 @@ using namespace cryptonote; //---------------------------------------------------------------------------------------------------------------------- // Tests -bool gen_v2_tx_validation_base::generate_with(std::vector& 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& events, const int *out_idx, int mixin, uint64_t amount_paid, bool valid) const { uint64_t ts_start = 1338224400; @@ -52,9 +52,9 @@ bool gen_v2_tx_validation_base::generate_with(std::vector& eve for (size_t n = 0; n < 4; ++n) { miner_accounts[n].generate(); 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 - crypto::hash(), 0, transaction(), std::vector(), 0, max_outs), + crypto::hash(), 0, transaction(), std::vector(), 0, 0), false, "Failed to generate block"); events.push_back(blocks[n]); prev_block = blocks + n; @@ -68,9 +68,9 @@ bool gen_v2_tx_validation_base::generate_with(std::vector& eve { cryptonote::block blk; 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 - crypto::hash(), 0, transaction(), std::vector(), 0, max_outs), + crypto::hash(), 0, transaction(), std::vector(), 0, 0), false, "Failed to generate block"); events.push_back(blk); blk_last = blk; @@ -123,8 +123,7 @@ bool gen_v2_tx_mixable_0_mixin::generate(std::vector& events) const int mixin = 0; const int out_idx[] = {1, -1}; const uint64_t amount_paid = 10000; - const size_t max_outs = 11; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, false); + return generate_with(events, out_idx, mixin, amount_paid, false); } bool gen_v2_tx_mixable_low_mixin::generate(std::vector& events) const @@ -132,8 +131,7 @@ bool gen_v2_tx_mixable_low_mixin::generate(std::vector& events const int mixin = 1; const int out_idx[] = {1, -1}; const uint64_t amount_paid = 10000; - const size_t max_outs = 11; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, false); + return generate_with(events, out_idx, mixin, amount_paid, false); } bool gen_v2_tx_unmixable_only::generate(std::vector& events) const @@ -141,8 +139,7 @@ bool gen_v2_tx_unmixable_only::generate(std::vector& events) c const int mixin = 0; const int out_idx[] = {0, -1}; const uint64_t amount_paid = 10000; - const size_t max_outs = 1; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, true); + return generate_with(events, out_idx, mixin, amount_paid, true); } bool gen_v2_tx_unmixable_one::generate(std::vector& events) const @@ -150,8 +147,7 @@ bool gen_v2_tx_unmixable_one::generate(std::vector& events) co const int mixin = 0; const int out_idx[] = {0, 1, -1}; const uint64_t amount_paid = 10000; - const size_t max_outs = 11; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, true); + return generate_with(events, out_idx, mixin, amount_paid, true); } bool gen_v2_tx_unmixable_two::generate(std::vector& events) const @@ -159,8 +155,7 @@ bool gen_v2_tx_unmixable_two::generate(std::vector& events) co const int mixin = 0; const int out_idx[] = {0, 1, 2, -1}; const uint64_t amount_paid = 10000; - const size_t max_outs = 11; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, false); + return generate_with(events, out_idx, mixin, amount_paid, false); } bool gen_v2_tx_dust::generate(std::vector& events) const @@ -168,6 +163,5 @@ bool gen_v2_tx_dust::generate(std::vector& events) const const int mixin = 2; const int out_idx[] = {1, -1}; const uint64_t amount_paid = 10001; - const size_t max_outs = 11; - return generate_with(events, out_idx, mixin, amount_paid, max_outs, false); + return generate_with(events, out_idx, mixin, amount_paid, false); } diff --git a/tests/core_tests/v2_tests.h b/tests/core_tests/v2_tests.h index c296f0d8..10049ec9 100644 --- a/tests/core_tests/v2_tests.h +++ b/tests/core_tests/v2_tests.h @@ -70,7 +70,7 @@ struct gen_v2_tx_validation_base : public test_chain_unit_base } bool generate_with(std::vector& 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: size_t m_invalid_tx_index;