74 lines
1.7 KiB
C++
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;
|
|
}
|