diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-02-08 18:47:56 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-02-08 18:52:00 +0000 |
commit | a333c42cdeab4675c22df25255313752d81a2d4e (patch) | |
tree | 97abd7cc6a0a06375979eebfdc72913b7940bef8 /tests/core_tests | |
parent | core_tests: allow setting miner tx max_outs when creating a block (diff) | |
download | monero-a333c42cdeab4675c22df25255313752d81a2d4e.tar.xz |
core_tests: add tests for hard fork behaviors (MRL-0004)
We also replace the --fakechain option with an optional structure
containing details about configuration for the core/blockchain,
for test purposes. This seems more future friendly.
Diffstat (limited to 'tests/core_tests')
-rw-r--r-- | tests/core_tests/CMakeLists.txt | 6 | ||||
-rw-r--r-- | tests/core_tests/chaingen.h | 15 | ||||
-rw-r--r-- | tests/core_tests/chaingen_main.cpp | 7 | ||||
-rw-r--r-- | tests/core_tests/chaingen_tests_list.h | 1 |
4 files changed, 22 insertions, 7 deletions
diff --git a/tests/core_tests/CMakeLists.txt b/tests/core_tests/CMakeLists.txt index 5f34bdc10..c34039c17 100644 --- a/tests/core_tests/CMakeLists.txt +++ b/tests/core_tests/CMakeLists.txt @@ -38,7 +38,8 @@ set(core_tests_sources integer_overflow.cpp ring_signature_1.cpp transaction_tests.cpp - tx_validation.cpp) + tx_validation.cpp + v2_tests.cpp) set(core_tests_headers block_reward.h @@ -52,7 +53,8 @@ set(core_tests_headers integer_overflow.h ring_signature_1.h transaction_tests.h - tx_validation.h) + tx_validation.h + v2_tests.h) add_executable(coretests ${core_tests_sources} diff --git a/tests/core_tests/chaingen.h b/tests/core_tests/chaingen.h index a5e93390d..f2bbb7346 100644 --- a/tests/core_tests/chaingen.h +++ b/tests/core_tests/chaingen.h @@ -471,6 +471,14 @@ inline bool replay_events_through_core(cryptonote::core& cr, const std::vector<t } //-------------------------------------------------------------------------- template<class t_test_class> +struct get_test_options { + const std::pair<uint8_t, uint64_t> hard_forks[1] = {std::make_pair(1, 0)}; + const cryptonote::test_options test_options = { + hard_forks + }; +}; +//-------------------------------------------------------------------------- +template<class t_test_class> inline bool do_replay_events(std::vector<test_event_entry>& events) { boost::program_options::options_description desc("Allowed options"); @@ -485,15 +493,12 @@ inline bool do_replay_events(std::vector<test_event_entry>& events) if (!r) return false; - // hardcode a --fakechain option for tests - static const char * const fakechain[] = {"", "--fakechain"}; - boost::program_options::store(boost::program_options::parse_command_line(2, fakechain, desc), vm); - cryptonote::cryptonote_protocol_stub pr; //TODO: stub only for this kind of test, make real validation of relayed objects cryptonote::core c(&pr); // FIXME: make sure that vm has arg_testnet_on set to true or false if // this test needs for it to be so. - if (!c.init(vm)) + const get_test_options<t_test_class> gto; + if (!c.init(vm, >o.test_options)) { std::cout << concolor::magenta << "Failed to init core" << concolor::normal << std::endl; return false; diff --git a/tests/core_tests/chaingen_main.cpp b/tests/core_tests/chaingen_main.cpp index 99ae496e3..40bce1e4e 100644 --- a/tests/core_tests/chaingen_main.cpp +++ b/tests/core_tests/chaingen_main.cpp @@ -168,6 +168,13 @@ int main(int argc, char* argv[]) GENERATE_AND_PLAY(gen_block_reward); + 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_dust); + std::cout << (failed_tests.empty() ? concolor::green : concolor::magenta); std::cout << "\nREPORT:\n"; std::cout << " Test run: " << tests_count << '\n'; diff --git a/tests/core_tests/chaingen_tests_list.h b/tests/core_tests/chaingen_tests_list.h index e18e00f74..4da87a973 100644 --- a/tests/core_tests/chaingen_tests_list.h +++ b/tests/core_tests/chaingen_tests_list.h @@ -39,6 +39,7 @@ #include "integer_overflow.h" #include "ring_signature_1.h" #include "tx_validation.h" +#include "v2_tests.h" /************************************************************************/ /* */ /************************************************************************/ |