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_; }
70 [[nodiscard]] uint32_t ftp_server_ip()
const {
return ftp_server_ip_; }
71 [[nodiscard]] uint16_t ftp_server_port()
const {
return ftp_server_port_; }
72 [[nodiscard]]
const std::string& ftp_user()
const {
return ftp_user_; }
73 [[nodiscard]]
const std::string& ftp_password()
const {
return ftp_password_; }
74 [[nodiscard]] uint32_t ftp_timeout_milliseconds()
const {
return ftp_timeout_milliseconds_; }
76 [[nodiscard]] NetworkConfigMode network_config_mode()
const {
return network_config_mode_; }
77 [[nodiscard]] uint32_t static_ip()
const {
return static_ip_; }
78 [[nodiscard]] uint32_t static_gateway()
const {
return static_gateway_; }
79 [[nodiscard]] uint32_t static_netmask()
const {
return static_netmask_; }
80 [[nodiscard]] uint32_t static_dns_1()
const {
return static_dns_1_; }
81 [[nodiscard]] uint32_t static_dns_2()
const {
return static_dns_2_; }
83 [[nodiscard]]
const std::string& output_directory_path()
const {
return output_directory_path_; }
85 static std::string SanitizePath(
const std::string& path);
88#ifdef DUMP_CONFIG_FILE
89 static std::string EscapePath(
const std::string& path);
91 void WriteSettings(std::ostream& output)
const;
92 void WriteTestSuite(std::ostream& output,
const std::shared_ptr<TestSuite>& suite)
const;
93 void WriteTestCase(std::ostream& output,
const std::string& suite_name,
const std::string& test_name)
const;
96 bool ProcessNetworkSettings(
const void* parent, std::vector<std::string>& errors);
99 bool enable_progress_log_ = DEFAULT_ENABLE_PROGRESS_LOG;
102 uint32_t delay_milliseconds_between_tests_{0};
103 bool disable_autorun_ = DEFAULT_DISABLE_AUTORUN;
104 bool enable_autorun_immediately_ = DEFAULT_AUTORUN_IMMEDIATELY;
105 bool enable_shutdown_on_completion_ = DEFAULT_ENABLE_SHUTDOWN;
106 bool enable_pgraph_region_diff_ = DEFAULT_ENABLE_PGRAPH_REGION_DIFF;
107 bool skip_tests_by_default_ = DEFAULT_SKIP_TESTS_BY_DEFAULT;
109 uint32_t ftp_server_ip_{0};
110 uint16_t ftp_server_port_{0};
111 std::string ftp_user_;
112 std::string ftp_password_;
113 uint32_t ftp_timeout_milliseconds_{0};
115 NetworkConfigMode network_config_mode_ = NetworkConfigMode::OFF;
116 uint32_t static_ip_{0};
117 uint32_t static_gateway_{0};
118 uint32_t static_netmask_{0};
119 uint32_t static_dns_1_{0};
120 uint32_t static_dns_2_{0};
122 std::string output_directory_path_ = SanitizePath(DEFAULT_OUTPUT_DIRECTORY_PATH);
125 std::map<std::string, SkipConfiguration> configured_test_suites_;
127 std::map<std::string, std::map<std::string, SkipConfiguration>> configured_test_cases_;