Electroneum
Loading...
Searching...
No Matches
main.cpp File Reference
#include <boost/program_options.hpp>
#include "include_base_utils.h"
#include "string_tools.h"
#include "common/command_line.h"
#include "common/util.h"
#include "transactions_flow_test.h"
Include dependency graph for main.cpp:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 61 of file main.cpp.

62{
63 TRY_ENTRY();
66
67 //set up logging options
68 mlog_configure(mlog_get_default_log_path("functional_tests.log"), true);
70
71 po::options_description desc_options("Allowed options");
73
74 command_line::add_arg(desc_options, arg_test_transactions_flow);
75
76 command_line::add_arg(desc_options, arg_working_folder);
77 command_line::add_arg(desc_options, arg_source_wallet);
78 command_line::add_arg(desc_options, arg_dest_wallet);
79 command_line::add_arg(desc_options, arg_daemon_addr_a);
80 command_line::add_arg(desc_options, arg_daemon_addr_b);
81
82 command_line::add_arg(desc_options, arg_transfer_amount);
83 command_line::add_arg(desc_options, arg_mix_in_factor);
84 command_line::add_arg(desc_options, arg_tx_count);
85 command_line::add_arg(desc_options, arg_tx_per_second);
86 command_line::add_arg(desc_options, arg_test_repeat_count);
87
88 po::variables_map vm;
89 bool r = command_line::handle_error_helper(desc_options, [&]()
90 {
91 po::store(po::parse_command_line(argc, argv, desc_options), vm);
92 po::notify(vm);
93 return true;
94 });
95 if (!r)
96 return 1;
97
99 {
100 std::cout << desc_options << std::endl;
101 return 0;
102 }
103
104 if (command_line::get_arg(vm, arg_test_transactions_flow))
105 {
106 std::string working_folder = command_line::get_arg(vm, arg_working_folder);
107 std::string path_source_wallet, path_target_wallet;
108 if(command_line::has_arg(vm, arg_source_wallet))
109 path_source_wallet = command_line::get_arg(vm, arg_source_wallet);
110 if(command_line::has_arg(vm, arg_dest_wallet))
111 path_target_wallet = command_line::get_arg(vm, arg_dest_wallet);
112
113 std::string daemon_addr_a = command_line::get_arg(vm, arg_daemon_addr_a);
114 std::string daemon_addr_b = command_line::get_arg(vm, arg_daemon_addr_b);
115 uint64_t amount_to_transfer = command_line::get_arg(vm, arg_transfer_amount);
116 size_t mix_in_factor = command_line::get_arg(vm, arg_mix_in_factor);
117 size_t transactions_count = command_line::get_arg(vm, arg_tx_count);
118 size_t transactions_per_second = command_line::get_arg(vm, arg_tx_per_second);
119 size_t repeat_count = command_line::get_arg(vm, arg_test_repeat_count);
120
121 for(size_t i = 0; i != repeat_count; i++)
122 if(!transactions_flow_test(working_folder, path_source_wallet, path_target_wallet, daemon_addr_a, daemon_addr_b, amount_to_transfer, mix_in_factor, transactions_count, transactions_per_second))
123 break;
124
125 std::string s;
126 std::cin >> s;
127
128 return 1;
129 }
130 else
131 {
132 std::cout << desc_options << std::endl;
133 return 1;
134 }
135
136 CATCH_ENTRY_L0("main", 1);
137
138 return 0;
139}
void mlog_configure(const std::string &filename_base, bool console, const std::size_t max_log_file_size=MAX_LOG_FILE_SIZE, const std::size_t max_log_files=MAX_LOG_FILES)
Definition mlog.cpp:148
std::string mlog_get_default_log_path(const char *default_filename)
Definition mlog.cpp:72
void mlog_set_log_level(int level)
Definition mlog.cpp:282
#define CATCH_ENTRY_L0(lacation, return_val)
#define TRY_ENTRY()
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
const arg_descriptor< bool > arg_help
bool handle_error_helper(const boost::program_options::options_description &desc, F parser)
std::enable_if<!std::is_same< T, bool >::value, bool >::type has_arg(const boost::program_options::variables_map &vm, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg)
T get_arg(const boost::program_options::variables_map &vm, const arg_descriptor< T, false, true > &arg)
bool set_module_name_and_folder(const std::string &path_to_process_)
bool on_startup()
Definition util.cpp:778
unsigned __int64 uint64_t
Definition stdint.h:136
bool transactions_flow_test(std::string &working_folder, std::string path_source_wallet, std::string path_target_wallet, std::string &daemon_addr_a, std::string &daemon_addr_b, uint64_t amount_to_transfer, size_t mix_in_factor, size_t transactions_count, size_t transactions_per_second)
Here is the call graph for this function: