xref: /openbmc/sdbusplus/test/async/fdio_timed/suite.hpp (revision 2cd25e64299ecc20e2258727e836a31b7ce6fad3)
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