1*2cd25e64SAlexander Hansen #pragma once 2*2cd25e64SAlexander Hansen 3*2cd25e64SAlexander Hansen #include <unistd.h> 4*2cd25e64SAlexander Hansen 5*2cd25e64SAlexander Hansen #include <sdbusplus/async.hpp> 6*2cd25e64SAlexander Hansen 7*2cd25e64SAlexander Hansen #include <filesystem> 8*2cd25e64SAlexander Hansen 9*2cd25e64SAlexander Hansen #include <gtest/gtest.h> 10*2cd25e64SAlexander Hansen 11*2cd25e64SAlexander Hansen using namespace std::literals; 12*2cd25e64SAlexander Hansen 13*2cd25e64SAlexander Hansen namespace fs = std::filesystem; 14*2cd25e64SAlexander Hansen 15*2cd25e64SAlexander Hansen class FdioTimedTest : public ::testing::Test 16*2cd25e64SAlexander Hansen { 17*2cd25e64SAlexander Hansen protected: 18*2cd25e64SAlexander Hansen enum class testWriteOperation 19*2cd25e64SAlexander Hansen { 20*2cd25e64SAlexander Hansen writeSync, 21*2cd25e64SAlexander Hansen writeAsync, 22*2cd25e64SAlexander Hansen writeSkip 23*2cd25e64SAlexander Hansen }; 24*2cd25e64SAlexander Hansen 25*2cd25e64SAlexander Hansen fs::path path; 26*2cd25e64SAlexander Hansen 27*2cd25e64SAlexander Hansen FdioTimedTest(); 28*2cd25e64SAlexander Hansen 29*2cd25e64SAlexander Hansen ~FdioTimedTest() noexcept override; 30*2cd25e64SAlexander Hansen 31*2cd25e64SAlexander Hansen auto writeToFile() -> sdbusplus::async::task<>; 32*2cd25e64SAlexander Hansen 33*2cd25e64SAlexander Hansen auto testFdTimedEvents(bool& ran, testWriteOperation writeOperation, 34*2cd25e64SAlexander Hansen int testIterations) -> sdbusplus::async::task<>; 35*2cd25e64SAlexander Hansen 36*2cd25e64SAlexander Hansen std::unique_ptr<sdbusplus::async::fdio> fdioInstance; 37*2cd25e64SAlexander Hansen std::optional<sdbusplus::async::context> ctx{std::in_place}; 38*2cd25e64SAlexander Hansen 39*2cd25e64SAlexander Hansen private: 40*2cd25e64SAlexander Hansen int fd = -1; 41*2cd25e64SAlexander Hansen int wd = -1; 42*2cd25e64SAlexander Hansen }; 43