diff --git a/nameserver/mockNS/MockNameServer.cpp b/nameserver/mockNS/MockNameServer.cpp index a2f3c5fa6ba6a4d5349703ab136010f0f0972419..10fcfe23a49ea0b4cfbcae84c7dbc343f05a4bf6 100644 --- a/nameserver/mockNS/MockNameServer.cpp +++ b/nameserver/mockNS/MockNameServer.cpp @@ -294,7 +294,7 @@ void cta::MockNameServer::deleteTapeFile(const SecurityIdentity &requester, cons //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -cta::MockNameServer::MockNameServer(): m_fileIdCounter(0) { +cta::MockNameServer::MockNameServer(): m_fileIdCounter(0), m_deleteOnExit(true) { umask(0); char path[100]; strncpy(path, "/tmp/CTATmpFsXXXXXX", 100); @@ -312,7 +312,7 @@ cta::MockNameServer::MockNameServer(): m_fileIdCounter(0) { //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -cta::MockNameServer::MockNameServer(const std::string &path): m_fileIdCounter(0) { +cta::MockNameServer::MockNameServer(const std::string &path): m_fileIdCounter(0), m_deleteOnExit(false) { Utils::assertAbsolutePathSyntax(path); assertFsDirExists(path); m_fsDir = path; @@ -322,6 +322,11 @@ cta::MockNameServer::MockNameServer(const std::string &path): m_fileIdCounter(0) // destructor //------------------------------------------------------------------------------ cta::MockNameServer::~MockNameServer() throw() { + if(m_deleteOnExit) { + std::string cmd("rm -rf "); + cmd += m_fsDir; + system(cmd.c_str()); + } } //------------------------------------------------------------------------------ diff --git a/nameserver/mockNS/MockNameServer.hpp b/nameserver/mockNS/MockNameServer.hpp index 8f02cecfa1050dc1ecd9bd1458d3fb27e6b6ade4..003c214e80a762e679a3fec3c44ed6b0c309be47 100644 --- a/nameserver/mockNS/MockNameServer.hpp +++ b/nameserver/mockNS/MockNameServer.hpp @@ -240,6 +240,11 @@ private: * Mutex to serialize access to the file system modification functions */ std::mutex m_mutex; + + /** + * Flag that determines whether the base path of the mock name server needs to be deleted by the destructor + */ + bool m_deleteOnExit; }; // class MockNameServer