Build fixes

This commit is contained in:
Ken Van Hoeylandt 2025-06-21 22:47:33 +02:00
parent f876f76c7e
commit 00fae61b14
3 changed files with 100 additions and 2 deletions

View File

@ -80,7 +80,6 @@ static void registerSystemApps() {
addApp(app::alertdialog::manifest); addApp(app::alertdialog::manifest);
addApp(app::applist::manifest); addApp(app::applist::manifest);
addApp(app::calculator::manifest); addApp(app::calculator::manifest);
addApp(app::development::manifest);
addApp(app::display::manifest); addApp(app::display::manifest);
addApp(app::filebrowser::manifest); addApp(app::filebrowser::manifest);
addApp(app::fileselection::manifest); addApp(app::fileselection::manifest);
@ -112,6 +111,7 @@ static void registerSystemApps() {
#ifdef ESP_PLATFORM #ifdef ESP_PLATFORM
addApp(app::chat::manifest); addApp(app::chat::manifest);
addApp(app::crashdiagnostics::manifest); addApp(app::crashdiagnostics::manifest);
addApp(app::development::manifest);
#endif #endif
if (getConfiguration()->hardware->power != nullptr) { if (getConfiguration()->hardware->power != nullptr) {

View File

@ -136,7 +136,7 @@ int getRssi() {
} }
std::string getIp() { std::string getIp() {
return "192.168.1.2" return "192.168.1.2";
} }
// endregion Public functions // endregion Public functions

View File

@ -0,0 +1,98 @@
#include "doctest.h"
#include <Tactility/hal/Device.h>
#include <utility>
using namespace tt;
class TestDevice final : public hal::Device {
private:
hal::Device::Type type;
std::string name;
std::string description;
public:
TestDevice(hal::Device::Type type, std::string name, std::string description) :
type(type),
name(std::move(name)),
description(std::move(description))
{}
TestDevice() : TestDevice(hal::Device::Type::Power, "PowerMock", "PowerMock description") {}
~TestDevice() final = default;
Type getType() const final { return type; }
std::string getName() const final { return name; }
std::string getDescription() const final { return description; }
};
class DeviceAutoRegistration {
std::shared_ptr<hal::Device> device;
public:
explicit DeviceAutoRegistration(std::shared_ptr<hal::Device> inDevice) : device(std::move(inDevice)) {
hal::registerDevice(device);
}
~DeviceAutoRegistration() {
hal::deregisterDevice(device);
}
};
/** We add 3 tests into 1 to ensure cleanup happens */
TEST_CASE("registering and deregistering a device works") {
auto device = std::make_shared<TestDevice>();
// Pre-registration
CHECK_EQ(hal::findDevice(device->getId()), nullptr);
// Registration
hal::registerDevice(device);
auto found_device = hal::findDevice(device->getId());
CHECK_NE(found_device, nullptr);
CHECK_EQ(found_device->getId(), device->getId());
// Deregistration
hal::deregisterDevice(device);
CHECK_EQ(hal::findDevice(device->getId()), nullptr);
found_device = nullptr; // to decrease use count
CHECK_EQ(device.use_count(), 1);
}
TEST_CASE("find device by id") {
auto device = std::make_shared<TestDevice>();
DeviceAutoRegistration auto_registration(device);
auto found_device = hal::findDevice(device->getId());
CHECK_NE(found_device, nullptr);
CHECK_EQ(found_device->getId(), device->getId());
}
TEST_CASE("find device by name") {
auto device = std::make_shared<TestDevice>();
DeviceAutoRegistration auto_registration(device);
auto found_device = hal::findDevice(device->getName());
CHECK_NE(found_device, nullptr);
CHECK_EQ(found_device->getId(), device->getId());
}
TEST_CASE("find device by type") {
// Headless mode shouldn't have a display, so we want to create one to find only our own display as unique device
// We first verify the initial assumption that there is no display:
auto unexpected_display = hal::findFirstDevice<TestDevice>(hal::Device::Type::Display);
CHECK_EQ(unexpected_display, nullptr);
auto device = std::make_shared<TestDevice>(hal::Device::Type::Display, "DisplayMock", "");
DeviceAutoRegistration auto_registration(device);
auto found_device = hal::findFirstDevice<TestDevice>(hal::Device::Type::Display);
CHECK_NE(found_device, nullptr);
CHECK_EQ(found_device->getId(), device->getId());
}