MCPcopy Create free account
hub / github.com/FastLED/FastLED / FL_TEST_FILE

Function FL_TEST_FILE

tests/fl/channels/spi.cpp:25–1394  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23#include "fl/stl/vector.h"
24
25FL_TEST_FILE(FL_FILEPATH) {
26
27using namespace fl::spi;
28using fl::SPIError;
29using fl::DMABuffer;
30
31// ============================================================================
32// Test Fixture - Reset SPIBusManager before each test
33// ============================================================================
34// NOTE: Fixture temporarily disabled to investigate crash issues
35// The Device destructors should handle all cleanup automatically via unregisterDevice()
36// struct SPITestFixture {
37// SPITestFixture() {
38// fl::getSPIBusManager().reset();
39// }
40// };
41
42// ============================================================================
43// Lazy Initialization Verification Tests
44// ============================================================================
45
46FL_TEST_CASE("Lazy Init - SPI stub instances are registered") {
47 // Verify that lazy initialization successfully registers all SPI stub instances
48 // This confirms the platform::initSpiHwNInstances() mechanism works correctly
49
50 auto spi1_instances = fl::SpiHw1::getAll();
51 auto spi2_instances = fl::SpiHw2::getAll();
52 auto spi4_instances = fl::SpiHw4::getAll();
53 auto spi8_instances = fl::SpiHw8::getAll();
54 auto spi16_instances = fl::SpiHw16::getAll();
55
56 FL_CHECK(spi1_instances.size() == 2);
57 FL_CHECK(spi2_instances.size() == 2);
58 FL_CHECK(spi4_instances.size() == 2);
59 FL_CHECK(spi8_instances.size() == 2);
60 FL_CHECK(spi16_instances.size() == 2);
61}
62
63// ============================================================================
64// fl::result<T> Tests
65// ============================================================================
66
67FL_TEST_CASE("fl::result<void, SPIError> basic operations") {
68 FL_SUBCASE("Default construction creates failure state") {
69 fl::result<void, SPIError> r;
70 FL_CHECK(!r.ok());
71 FL_CHECK(r.error() == SPIError::NOT_INITIALIZED);
72 }
73
74 FL_SUBCASE("Success creation") {
75 fl::result<void, SPIError> r = fl::result<void, SPIError>::success();
76 FL_CHECK(r.ok());
77 FL_CHECK(static_cast<bool>(r)); // Explicit bool conversion
78 }
79
80 FL_SUBCASE("Failure creation with error code") {
81 fl::result<void, SPIError> r = fl::result<void, SPIError>::failure(SPIError::BUFFER_TOO_LARGE);
82 FL_CHECK(!r.ok());

Callers

nothing calls this directly

Calls 15

strcmpFunction · 0.85
acquireBufferMethod · 0.80
writeAsyncMethod · 0.80
isPendingMethod · 0.80
getResultMethod · 0.80
cancelMethod · 0.80
sizeMethod · 0.45
okMethod · 0.45
errorMethod · 0.45
messageMethod · 0.45
valueMethod · 0.45
isReadyMethod · 0.45

Tested by

no test coverage detected