- Add app path get() functions to `TactilityC` - Improved `Dispatcher` and `DispatcherThread` - Improved `PubSub` (type safety) - Created test for `DispatcherThread` and `PubSub` - Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit) - Fixed bug with `SystemSettings` being read from the wrong file path. - `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually - Increased timer task stack size (required due to issues when reading a properties file for the very first time) - General cleanup - Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left. - Cleanup of T-Deck board (updated to new style)
36 lines
800 B
C++
36 lines
800 B
C++
#include "doctest.h"
|
|
#include <Tactility/TactilityCore.h>
|
|
#include <Tactility/PubSub.h>
|
|
|
|
using namespace tt;
|
|
|
|
TEST_CASE("PubSub publishing with no subscriptions should not crash") {
|
|
PubSub<int> pubsub;
|
|
pubsub.publish(1);
|
|
}
|
|
|
|
TEST_CASE("PubSub subscription receives published data") {
|
|
PubSub<int> pubsub;
|
|
int value = 0;
|
|
|
|
auto subscription = pubsub.subscribe([&value](auto newValue) {
|
|
value = newValue;
|
|
});
|
|
pubsub.publish(1);
|
|
|
|
CHECK_EQ(value, 1);
|
|
}
|
|
|
|
TEST_CASE("PubSub unsubscribed subscription does not receive published data") {
|
|
PubSub<int> pubsub;
|
|
int value = 0;
|
|
|
|
auto subscription = pubsub.subscribe([&value](auto newValue) {
|
|
value = newValue;
|
|
});
|
|
pubsub.unsubscribe(subscription);
|
|
pubsub.publish(1);
|
|
|
|
CHECK_EQ(value, 0);
|
|
}
|