blob: 078f6ba71eadabf731bceee4edcfa8cb3b498a5d [file] [log] [blame]
#include "bmc/daemon_context_bmc.h"
#include <chrono> // NOLINT(build/c++11)
#include "gtest/gtest.h"
#include "absl/status/status.h"
#include "absl/time/time.h"
namespace {
using safepower_agent::DaemonContextBMC;
TEST(PersistentStorageBMC, WriteStateAndRead) {
DaemonContextBMC global_context;
DaemonContextBMC& first = DaemonContextBMC::Get();
DaemonContextBMC& second = DaemonContextBMC::Get();
// check if the same instance is returned, specifically the same address
EXPECT_EQ(&first, &second);
// test the scheduler
bool ran_callback = false;
absl::Status res = first.scheduler().DelayCall(
[&ran_callback]() {
ran_callback = true;
},
absl::Milliseconds(100), "test");
DaemonContextBMC::Get().get_io_context()
.run_for(std::chrono::milliseconds(250));
EXPECT_TRUE(ran_callback);
}
} // namespace