FastLED 3.9.15
Loading...
Searching...
No Matches
validation.h
Go to the documentation of this file.
1// src/fl/channels/validation.h
2//
3// Validation test logic - stateless single-test execution
4// Extracted from examples/validation for unit testing
5
6#pragma once
7
8#include "fl/stl/vector.h"
9#include "fl/stl/string.h"
10#include "fl/stl/optional.h"
11#include "fl/stl/int.h"
12#include "fl/stl/noexcept.h"
13
14// Forward declarations for detail modules
15namespace fl {
16namespace validation {
17 class RxTest; // IWYU pragma: keep
18 class ResultFormatter; // IWYU pragma: keep
19 class Platform; // IWYU pragma: keep
20}
21}
22
23namespace fl {
24
27 string driver_name;
29 string pattern;
31 int pin_tx;
32 int pin_rx;
33
35 : pattern("MSB_LSB_A")
36 , iterations(1)
37 , pin_tx(1)
38 , pin_rx(0) {}
39};
40
66
72 bool skipped;
73
74 DriverTestResult(const char* name)
75 : driver_name(name)
76 , total_tests(0)
77 , passed_tests(0)
78 , skipped(false) {}
79
84
86 bool allPassed() const { return !skipped && total_tests > 0 && passed_tests == total_tests; }
87
89 bool anyFailed() const { return !skipped && total_tests > 0 && passed_tests < total_tests; }
90};
91
95SingleTestResult runSingleValidationTest(const SingleTestConfig& config);
96
97} // namespace fl
Optional< T > optional
Definition optional.h:16
SingleTestResult runSingleValidationTest(const SingleTestConfig &config)
Run a single stateless validation test.
Base definition for an LED controller.
Definition crgb.hpp:179
#define FL_NOEXCEPT
bool allPassed() const
Check if all tests passed.
Definition validation.h:86
bool anyFailed() const
Check if any tests failed.
Definition validation.h:89
DriverTestResult() FL_NOEXCEPT
Definition validation.h:80
bool skipped
True if driver was skipped (e.g., failed to set exclusive)
Definition validation.h:72
int total_tests
Total test count across all chipset timings.
Definition validation.h:70
int passed_tests
Passed test count across all chipset timings.
Definition validation.h:71
DriverTestResult(const char *name)
Definition validation.h:74
fl::string driver_name
Driver name (e.g., "RMT", "SPI", "PARLIO")
Definition validation.h:69
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
SingleTestConfig() FL_NOEXCEPT
Definition validation.h:34
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
int pin_tx
TX pin (base pin for multi-lane)
Definition validation.h:31
vector< int > lane_sizes
LED counts per lane.
Definition validation.h:50
bool passed
All validation tests passed.
Definition validation.h:44
int total_tests
Total validation tests run.
Definition validation.h:45
int lane_count
Number of lanes tested.
Definition validation.h:49
optional< string > failure_details
Failure details.
Definition validation.h:56
optional< string > error_message
Error message if !success.
Definition validation.h:54
int passed_tests
Number of tests that passed.
Definition validation.h:46
bool success
RPC execution succeeded.
Definition validation.h:43
SingleTestResult() FL_NOEXCEPT
Definition validation.h:58
optional< string > failure_pattern
Pattern that failed if !passed.
Definition validation.h:55
string pattern
Pattern tested.
Definition validation.h:51
u32 duration_ms
Test execution time (milliseconds)
Definition validation.h:47
string driver
Driver tested.
Definition validation.h:48