| #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 |
| |