Files
klubhaus-doorbell/libraries/FastLED/tests/test_sketch_runner.cpp
2026-02-12 00:45:31 -08:00

74 lines
1.7 KiB
C++

// Unit tests for sketch runner functionality
#include "test.h"
using namespace fl;
// Test sketch implementation
static int setup_call_count = 0;
static int loop_call_count = 0;
static bool test_mode = false;
// Mock Arduino functions for testing
void setup() {
if (test_mode) {
setup_call_count++;
printf("SKETCH: setup() called (count: %d)\n", setup_call_count);
}
}
void loop() {
if (test_mode) {
loop_call_count++;
printf("SKETCH: loop() called (count: %d)\n", loop_call_count);
}
}
// Direct declarations for testing (avoiding DLL export complexity in test context)
extern "C" {
void sketch_setup();
void sketch_loop();
}
// Simple implementations that call the Arduino functions
void sketch_setup() {
setup();
}
void sketch_loop() {
loop();
}
TEST_CASE("Sketch Runner - Basic Functionality") {
// Reset counters and enable test mode
setup_call_count = 0;
loop_call_count = 0;
test_mode = true;
printf("RUNNER: Starting sketch runner test\n");
// Call sketch_setup() once
printf("RUNNER: Calling sketch_setup()\n");
sketch_setup();
CHECK_EQ(setup_call_count, 1);
// Call sketch_loop() five times
for (int i = 1; i <= 5; i++) {
printf("RUNNER: Calling sketch_loop() - iteration %d\n", i);
sketch_loop();
CHECK_EQ(loop_call_count, i);
}
printf("RUNNER: Test completed successfully\n");
printf("RUNNER: Final state - setup called %d times, loop called %d times\n",
setup_call_count, loop_call_count);
// Verify final state
CHECK_EQ(setup_call_count, 1);
CHECK_EQ(loop_call_count, 5);
// Disable test mode
test_mode = false;
}