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:
moneromooo-monero 2016-05-01 19:40:14 +01:00
parent a6e717ed30
commit 9ef8c7b694
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
6 changed files with 18 additions and 24 deletions

View File

@ -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);

View File

@ -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<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;
uint64_t already_generated_coins = get_already_generated_coins(prev_block);

View File

@ -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<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,
const cryptonote::account_base& miner_acc, const std::vector<crypto::hash>& tx_hashes, size_t txs_size);

View File

@ -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);

View File

@ -38,7 +38,7 @@ using namespace cryptonote;
//----------------------------------------------------------------------------------------------------------------------
// 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;
@ -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) {
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<crypto::hash>(), 0, max_outs),
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 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<test_event_entry>& 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<crypto::hash>(), 0, max_outs),
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 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<test_event_entry>& 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<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 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<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 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<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 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<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 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<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 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);
}

View File

@ -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,
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;