initial commit
This commit is contained in:
73
libraries/FastLED/tests/test_sketch_runner.cpp
Normal file
73
libraries/FastLED/tests/test_sketch_runner.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user