mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 19:03:16 +00:00
* **New Features** * Time and delay utilities added (ticks, ms, µs); SD card now uses an expansion-header CS pin; HTTP downloads warn when run on the GUI task and yield to avoid blocking. * **Bug Fixes / Reliability** * Many hard-crash paths converted to guarded checks to reduce abrupt termination and improve stability. * **Tests** * Unit tests added to validate time and delay accuracy. * **Chores** * License header and build/macro updates.
31 lines
948 B
C++
31 lines
948 B
C++
#include "doctest.h"
|
|
#include <Tactility/Time.h>
|
|
#include <Tactility/Delay.h>
|
|
|
|
TEST_CASE("delay ticks should be accurate within 1 tick") {
|
|
auto start_time = get_ticks();
|
|
delay_ticks(100);
|
|
auto end_time = get_ticks();
|
|
auto difference = end_time - start_time;
|
|
CHECK_EQ(difference >= 100, true);
|
|
CHECK_EQ(difference <= 101, true);
|
|
}
|
|
|
|
TEST_CASE("delay millis should be accurate within 1 tick") {
|
|
auto start_time = get_millis();
|
|
delay_millis(100);
|
|
auto end_time = get_millis();
|
|
auto difference = end_time - start_time;
|
|
CHECK_EQ(difference >= 100, true);
|
|
CHECK_EQ(difference <= 101, true);
|
|
}
|
|
|
|
TEST_CASE("microsecond time should be accurate within 1 tick") {
|
|
auto start_time = get_micros_since_boot();
|
|
delay_millis(100);
|
|
auto end_time = get_micros_since_boot();
|
|
auto difference = (end_time - start_time) / 1000;
|
|
CHECK_EQ(difference >= 99, true);
|
|
CHECK_EQ(difference <= 101, true);
|
|
}
|