aboutsummaryrefslogtreecommitdiff
path: root/tests/core_tests
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-02-08 18:47:56 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-02-08 18:52:00 +0000
commita333c42cdeab4675c22df25255313752d81a2d4e (patch)
tree97abd7cc6a0a06375979eebfdc72913b7940bef8 /tests/core_tests
parentcore_tests: allow setting miner tx max_outs when creating a block (diff)
downloadmonero-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.txt6
-rw-r--r--tests/core_tests/chaingen.h15
-rw-r--r--tests/core_tests/chaingen_main.cpp7
-rw-r--r--tests/core_tests/chaingen_tests_list.h1
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, &gto.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"
/************************************************************************/
/* */
/************************************************************************/