#ifndef LINUX_API_MOCK_H #define LINUX_API_MOCK_H #include #ifdef __cplusplus extern "C" { #endif // Modify all the real api. int __real_fx_open(const char *pathname, int flags); #ifdef __cplusplus } #endif class LinuxApiMock { public: LinuxApiMock() = default; virtual ~LinuxApiMock() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr) { static auto instance = std::make_shared(); if (impl) { // The non-thread-safe changing is only for gtest. instance = *impl; } return instance; } virtual void Init() {} virtual void UnInit() {} virtual int fx_open(const char *pathname, int flags); }; #endif