nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
runtime_config.h
1#ifndef NXDK_PGRAPH_TESTS_RUNTIME_CONFIG_H
2#define NXDK_PGRAPH_TESTS_RUNTIME_CONFIG_H
3
4#include <memory>
5#include <vector>
6
7#include "configure.h"
8#include "tests/test_suite.h"
9
11 public:
12 enum class SkipConfiguration {
13 DEFAULT,
14 SKIPPED,
15 UNSKIPPED,
16 };
17
18 enum class NetworkConfigMode {
19 OFF,
20 AUTOMATIC,
21 DHCP,
22 STATIC,
23 };
24
25 public:
26 RuntimeConfig() = default;
27 explicit RuntimeConfig(const RuntimeConfig&) = delete;
28
35 bool LoadConfig(const char* config_file_path, std::vector<std::string>& errors);
36
43 bool LoadConfigBuffer(const std::string& config_content, std::vector<std::string>& errors);
44
49 bool ApplyConfig(std::vector<std::shared_ptr<TestSuite>>& test_suites, std::vector<std::string>& errors);
50
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);
57
58 bool DumpConfigToStream(std::ostream& config_file, const std::vector<std::shared_ptr<TestSuite>>& test_suites,
59 std::vector<std::string>& errors);
60#endif // DUMP_CONFIG_FILE
61
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
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_; }
75
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_; }
82
83 [[nodiscard]] const std::string& output_directory_path() const { return output_directory_path_; }
84
85 static std::string SanitizePath(const std::string& path);
86
87 private:
88#ifdef DUMP_CONFIG_FILE
89 static std::string EscapePath(const std::string& path);
90
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;
94#endif // DUMP_CONFIG_FILE
95
96 bool ProcessNetworkSettings(const void* parent, std::vector<std::string>& errors);
97
98 private:
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;
108
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};
114
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};
121
122 std::string output_directory_path_ = SanitizePath(DEFAULT_OUTPUT_DIRECTORY_PATH);
123
125 std::map<std::string, SkipConfiguration> configured_test_suites_;
127 std::map<std::string, std::map<std::string, SkipConfiguration>> configured_test_cases_;
128};
129
130#endif // NXDK_PGRAPH_TESTS_RUNTIME_CONFIG_H
Definition runtime_config.h:10
bool LoadConfigBuffer(const std::string &config_content, std::vector< std::string > &errors)
Definition runtime_config.cpp:127
bool LoadConfig(const char *config_file_path, std::vector< std::string > &errors)
Definition runtime_config.cpp:50
bool ApplyConfig(std::vector< std::shared_ptr< TestSuite > > &test_suites, std::vector< std::string > &errors)
Definition runtime_config.cpp:401