12 enum class SkipConfiguration {
18 enum class NetworkConfigMode {
35 bool LoadConfig(
const char* config_file_path, std::vector<std::string>& errors);
43 bool LoadConfigBuffer(
const std::string& config_content, std::vector<std::string>& errors);
49 bool ApplyConfig(std::vector<std::shared_ptr<TestSuite>>& test_suites, std::vector<std::string>& errors);
51#ifdef DUMP_CONFIG_FILE
55 bool DumpConfig(
const std::string& config_file_path,
const std::vector<std::shared_ptr<TestSuite>>& test_suites,
56 std::vector<std::string>& errors);
58 bool DumpConfigToStream(std::ostream& config_file,
const std::vector<std::shared_ptr<TestSuite>>& test_suites,
59 std::vector<std::string>& errors);
62 [[nodiscard]]
bool enable_progress_log()
const {
return enable_progress_log_; }
63 [[nodiscard]]
bool disable_autorun()
const {
return disable_autorun_; }
64 [[nodiscard]]
bool enable_autorun_immediately()
const {
return enable_autorun_immediately_; }
65 [[nodiscard]]
bool enable_shutdown_on_completion()
const {
return enable_shutdown_on_completion_; }
66 [[nodiscard]]
bool enable_pgraph_region_diff()
const {
return enable_pgraph_region_diff_; }
67 [[nodiscard]]
bool skip_tests_by_default()
const {
return skip_tests_by_default_; }
68 [[nodiscard]] uint32_t delay_milliseconds_between_tests()
const {
return delay_milliseconds_between_tests_; }
69 [[nodiscard]] uint32_t delay_milliseconds_before_exit()
const {
return delay_milliseconds_before_exit_; }
71 [[nodiscard]] uint32_t shard_index()
const {
return shard_index_; }
72 [[nodiscard]] uint32_t shard_count()
const {
return shard_count_; }
74 [[nodiscard]] uint32_t ftp_server_ip()
const {
return ftp_server_ip_; }
75 [[nodiscard]] uint16_t ftp_server_port()
const {
return ftp_server_port_; }
76 [[nodiscard]]
const std::string& ftp_user()
const {
return ftp_user_; }
77 [[nodiscard]]
const std::string& ftp_password()
const {
return ftp_password_; }
78 [[nodiscard]] uint32_t ftp_timeout_milliseconds()
const {
return ftp_timeout_milliseconds_; }
80 [[nodiscard]] NetworkConfigMode network_config_mode()
const {
return network_config_mode_; }
81 [[nodiscard]] uint32_t static_ip()
const {
return static_ip_; }
82 [[nodiscard]] uint32_t static_gateway()
const {
return static_gateway_; }
83 [[nodiscard]] uint32_t static_netmask()
const {
return static_netmask_; }
84 [[nodiscard]] uint32_t static_dns_1()
const {
return static_dns_1_; }
85 [[nodiscard]] uint32_t static_dns_2()
const {
return static_dns_2_; }
87 [[nodiscard]]
const std::string& output_directory_path()
const {
return output_directory_path_; }
89 static std::string SanitizePath(
const std::string& path);
92#ifdef DUMP_CONFIG_FILE
93 static std::string EscapePath(
const std::string& path);
95 void WriteSettings(std::ostream& output)
const;
96 void WriteTestSuite(std::ostream& output,
const std::shared_ptr<TestSuite>& suite)
const;
97 void WriteTestCase(std::ostream& output,
const std::string& suite_name,
const std::string& test_name)
const;
100 bool ProcessNetworkSettings(
const void* parent, std::vector<std::string>& errors);
101 bool ProcessShardingSettings(
const void* parent, std::vector<std::string>& errors);
104 bool enable_progress_log_ = DEFAULT_ENABLE_PROGRESS_LOG;
107 uint32_t delay_milliseconds_between_tests_{0};
108 uint32_t delay_milliseconds_before_exit_{DEFAULT_DELAY_MILLISECONDS_BEFORE_EXIT};
109 bool disable_autorun_ = DEFAULT_DISABLE_AUTORUN;
110 bool enable_autorun_immediately_ = DEFAULT_AUTORUN_IMMEDIATELY;
111 bool enable_shutdown_on_completion_ = DEFAULT_ENABLE_SHUTDOWN;
112 bool enable_pgraph_region_diff_ = DEFAULT_ENABLE_PGRAPH_REGION_DIFF;
113 bool skip_tests_by_default_ = DEFAULT_SKIP_TESTS_BY_DEFAULT;
115 uint32_t shard_index_{0};
116 uint32_t shard_count_{0};
118 uint32_t ftp_server_ip_{0};
119 uint16_t ftp_server_port_{0};
120 std::string ftp_user_;
121 std::string ftp_password_;
122 uint32_t ftp_timeout_milliseconds_{0};
124 NetworkConfigMode network_config_mode_ = NetworkConfigMode::OFF;
125 uint32_t static_ip_{0};
126 uint32_t static_gateway_{0};
127 uint32_t static_netmask_{0};
128 uint32_t static_dns_1_{0};
129 uint32_t static_dns_2_{0};
131 std::string output_directory_path_ = SanitizePath(DEFAULT_OUTPUT_DIRECTORY_PATH);
134 std::map<std::string, SkipConfiguration> configured_test_suites_;
136 std::map<std::string, std::map<std::string, SkipConfiguration>> configured_test_cases_;