imported from "final" folder
This commit is contained in:
51
.pio/libdeps/esp01_1m/FastLED/tests/test_async.cpp
Normal file
51
.pio/libdeps/esp01_1m/FastLED/tests/test_async.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#include "doctest.h"
|
||||
#include "fl/async.h"
|
||||
#include "fl/task.h"
|
||||
#include "fl/time.h"
|
||||
#include "fl/warn.h"
|
||||
|
||||
TEST_CASE("Async tasks run correctly [async]") {
|
||||
// Clear any leftover tasks from previous tests
|
||||
fl::Scheduler::instance().clear_all_tasks();
|
||||
|
||||
SUBCASE("A simple task runs") {
|
||||
bool task_ran = false;
|
||||
auto task = fl::task::every_ms(10);
|
||||
task.then([&task_ran]() {
|
||||
task_ran = true;
|
||||
});
|
||||
|
||||
fl::Scheduler::instance().add_task(task);
|
||||
|
||||
fl::Scheduler::instance().update();
|
||||
|
||||
REQUIRE(task_ran);
|
||||
|
||||
// Clear task after this subcase to prevent interference
|
||||
fl::Scheduler::instance().clear_all_tasks();
|
||||
}
|
||||
|
||||
SUBCASE("Task timing works correctly") {
|
||||
// Clear any leftover tasks from previous subcases
|
||||
fl::Scheduler::instance().clear_all_tasks();
|
||||
|
||||
int run_count = 0;
|
||||
auto task = fl::task::every_ms(50); // 50ms interval
|
||||
task.then([&run_count]() {
|
||||
run_count++;
|
||||
});
|
||||
|
||||
fl::Scheduler::instance().add_task(task);
|
||||
|
||||
// Run immediately - should execute
|
||||
fl::Scheduler::instance().update();
|
||||
REQUIRE(run_count == 1);
|
||||
|
||||
// Run again immediately - should not execute (not enough time passed)
|
||||
fl::Scheduler::instance().update();
|
||||
REQUIRE(run_count == 1);
|
||||
|
||||
// Clear task after this subcase
|
||||
fl::Scheduler::instance().clear_all_tasks();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user