FastLED 3.9.15
Loading...
Searching...
No Matches

◆ runSingleValidationTest()

SingleTestResult fl::runSingleValidationTest ( const SingleTestConfig & config)

Run a single stateless validation test.

Parameters
configTest configuration
Returns
Test result with pass/fail information

Definition at line 13 of file validation.cpp.hpp.

13 {
15 result.driver = config.driver_name;
16 result.lane_count = static_cast<int>(config.lane_sizes.size());
17 result.lane_sizes = config.lane_sizes;
18 result.pattern = config.pattern;
19
20 // ========================================================================
21 // Input Validation
22 // ========================================================================
23
24 // Validate driver name
25 if (config.driver_name.empty()) {
26 result.success = false;
27 result.error_message = "Driver name cannot be empty";
28 return result;
29 }
30
31 // Validate lane count (1-16 lanes)
32 if (config.lane_sizes.empty()) {
33 result.success = false;
34 result.error_message = "Lane count must be at least 1";
35 return result;
36 }
37
38 if (config.lane_sizes.size() > 16) {
39 result.success = false;
40 result.error_message = "Lane count cannot exceed 16";
41 return result;
42 }
43
44 // Validate individual lane sizes (must be > 0)
45 for (size_t i = 0; i < config.lane_sizes.size(); i++) {
46 if (config.lane_sizes[i] <= 0) {
47 result.success = false;
48 fl::sstream ss;
49 ss << "Lane size at index " << i << " must be positive (got " << config.lane_sizes[i] << ")";
50 result.error_message = ss.str();
51 return result;
52 }
53 }
54
55 // Validate iterations (must be > 0)
56 if (config.iterations <= 0) {
57 result.success = false;
58 result.error_message = "Iterations must be positive";
59 return result;
60 }
61
62 // Validate pattern name (must not be empty)
63 if (config.pattern.empty()) {
64 result.success = false;
65 result.error_message = "Pattern name cannot be empty";
66 return result;
67 }
68
69 // ========================================================================
70 // Test Execution (Placeholder)
71 // ========================================================================
72 // NOTE: Actual hardware validation logic (LED array creation, channel
73 // configuration, loopback testing) is implemented in the validation
74 // example sketch. This library function focuses on configuration
75 // validation and test orchestration.
76
77 result.success = true;
78 result.passed = true;
79 result.total_tests = 4 * config.iterations; // 4 patterns per iteration
80 result.passed_tests = result.total_tests;
81 result.duration_ms = 100; // Placeholder duration
82
83 return result;
84}
bool empty() const FL_NOEXCEPT
string str() const FL_NOEXCEPT
Definition strstream.h:43
fl::size size() const FL_NOEXCEPT
bool empty() const FL_NOEXCEPT
expected< T, E > result
Alias for expected (Rust-style naming)
Definition result.h:31
int iterations
Number of test iterations (default: 1)
Definition validation.h:30
string driver_name
Driver to test (e.g., "PARLIO", "RMT")
Definition validation.h:27
vector< int > lane_sizes
LED count per lane [100, 100, 200].
Definition validation.h:28
string pattern
Test pattern name (default: "MSB_LSB_A")
Definition validation.h:29
Single test result - comprehensive pass/fail information.
Definition validation.h:42

References fl::SingleTestConfig::driver_name, fl::basic_string::empty(), fl::vector_basic::empty(), fl::SingleTestConfig::iterations, fl::SingleTestConfig::lane_sizes, fl::SingleTestConfig::pattern, fl::vector_basic::size(), and fl::sstream::str().

+ Here is the call graph for this function: