FastLED 3.10.8
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 14 of file validation.cpp.hpp.

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

References FL_NO_EXCEPT, and fl::sstream::str().

+ Here is the call graph for this function: