summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2015-02-19 01:14:04 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2015-05-06 00:40:49 +0100
commit3523abccb5104d27725e092103b43d75fa2b90d3 (patch)
treee54eef22f495d15497d80feaa4e413bfe6a802a7
parentTear down adapter on daemon destruction (diff)
downloadnetfs-3523abccb5104d27725e092103b43d75fa2b90d3.tar.bz2
netfs-3523abccb5104d27725e092103b43d75fa2b90d3.tar.xz
netfs-3523abccb5104d27725e092103b43d75fa2b90d3.zip
Virtualise fues_main so that the ut framework can get access to the operations map
-rw-r--r--libfusepp/fuseAppBase.h3
-rw-r--r--netfs/fuse/netfs.cpp6
-rw-r--r--netfs/unittests/testCore.cpp9
3 files changed, 15 insertions, 3 deletions
diff --git a/libfusepp/fuseAppBase.h b/libfusepp/fuseAppBase.h
index 73a809a..d76fbff 100644
--- a/libfusepp/fuseAppBase.h
+++ b/libfusepp/fuseAppBase.h
@@ -57,6 +57,7 @@ class FuseAppBase {
virtual int onError(const std::exception & err) throw();
virtual int fuse_opt_parse(struct fuse_args *args, void *data, const struct fuse_opt opts[], fuse_opt_proc_t proc) = 0;
+ virtual int main(int &, char **, const struct fuse_operations *) = 0;
#define GetHelper(func) getHelper<&FuseAppBase::func>(typeid(&FuseAppBase::func) != typeid(&FuseApp::func))
template <typename FuseApp>
@@ -121,7 +122,7 @@ class FuseAppBase {
#endif
#endif
};
- return fuse_main(args.argc, args.argv, &operations, fa);
+ return fa->main(args.argc, args.argv, &operations);
}
struct fuse_args runint(int &, char ** &);
diff --git a/netfs/fuse/netfs.cpp b/netfs/fuse/netfs.cpp
index 21689f2..f700a74 100644
--- a/netfs/fuse/netfs.cpp
+++ b/netfs/fuse/netfs.cpp
@@ -13,6 +13,12 @@ class FuseImpl : public NetFS::FuseApp {
{
return ::fuse_opt_parse(args, data, opts, proc);
}
+
+ int main(int & argc, char ** argv, const struct fuse_operations * ops) override
+ {
+ return ::fuse_main(argc, argv, ops, this);
+ }
+
};
int
diff --git a/netfs/unittests/testCore.cpp b/netfs/unittests/testCore.cpp
index 2262444..3be4ed0 100644
--- a/netfs/unittests/testCore.cpp
+++ b/netfs/unittests/testCore.cpp
@@ -56,6 +56,12 @@ class FuseMock : public NetFS::FuseApp {
return 0;
}
+ int main(int &, char **, const struct fuse_operations * o) override
+ {
+ o->init(NULL);
+ return 0;
+ }
+
protected:
virtual NetFS::Client::ConfigurationPtr ReadConfiguration(const std::string &) const override
{
@@ -86,8 +92,7 @@ class Core {
ic->getProperties()->setProperty("NetFSD.HostNameOverride", "unittest");
daemon->start("NetFSDaemonAdapter", ic, {});
char ** a = argv;
- fuse->runint(argc, a);
- fuse->init(NULL);
+ FuseAppBase::run(argc, a, fuse);
}
~Core()