#pragma once #include "common/instance_id.hpp" #include #include #include static constexpr uintmax_t pldmMaxInstanceIds = 32; class TestInstanceIdDb : public pldm::InstanceIdDb { public: TestInstanceIdDb() : TestInstanceIdDb(createDb()) {} ~TestInstanceIdDb() { std::filesystem::remove(dbPath); }; private: static std::filesystem::path createDb() { static const char dbTmpl[] = "/tmp/db.XXXXXX"; char dbName[sizeof(dbTmpl)] = {}; ::strncpy(dbName, dbTmpl, sizeof(dbName)); ::close(::mkstemp(dbName)); std::filesystem::path dbPath(dbName); std::filesystem::resize_file( dbPath, static_cast(PLDM_MAX_TIDS) * pldmMaxInstanceIds); return dbPath; }; TestInstanceIdDb(std::filesystem::path dbPath) : InstanceIdDb(dbPath), dbPath(dbPath) {} std::filesystem::path dbPath; };