diff options
Diffstat (limited to 'netfs/unittests/mockMount.h')
| -rw-r--r-- | netfs/unittests/mockMount.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/netfs/unittests/mockMount.h b/netfs/unittests/mockMount.h new file mode 100644 index 0000000..2fec87a --- /dev/null +++ b/netfs/unittests/mockMount.h @@ -0,0 +1,45 @@ +#pragma once + +#include "mockDaemon.h" +#include <definedDirs.h> +#include <fuseApp.h> +#include <memory> +#include <thread> +#include <visibility.h> + +inline const std::filesystem::path mntpnt {binDir / "mnt"}; + +class DLL_PUBLIC MockFuseApp : public NetFS::FuseApp { +public: + MockFuseApp(); + ~MockFuseApp() override; + SPECIAL_MEMBERS_DELETE(MockFuseApp); + + struct fuse_context * fuseGetContext() override; + + void vlogf(int, const char * fmt, va_list args) const noexcept override; + + const auto & + getStatCache() const + { + return statCache; + } + +private: + friend class FuseMountPoint; + static char * vstrdupf(const char * fmt, va_list args); + struct fuse * fs; + struct fuse_args fargs; +}; + +class DLL_PUBLIC FuseMountPoint : public MockDaemonHost { +public: + FuseMountPoint(); + ~FuseMountPoint(); + SPECIAL_MEMBERS_DELETE(FuseMountPoint); + + MockFuseApp fuseApp; + +private: + std::optional<std::thread> th; +}; |
