From aad08ba810038c07f6e0b676e727677a4a6383a1 Mon Sep 17 00:00:00 2001 From: Daniele Kruse <dkruse@cern.ch> Date: Mon, 9 Mar 2015 18:26:47 +0100 Subject: [PATCH] Fixed small bug with xattr plus created stub VFS test --- libs/middletier/CMakeLists.txt | 3 ++- libs/middletier/Vfs.cpp | 10 +++++----- libs/middletier/VfsTest.cpp | 24 ++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 libs/middletier/VfsTest.cpp diff --git a/libs/middletier/CMakeLists.txt b/libs/middletier/CMakeLists.txt index 4fae59d9a3..06d656a090 100644 --- a/libs/middletier/CMakeLists.txt +++ b/libs/middletier/CMakeLists.txt @@ -62,7 +62,8 @@ set (MIDDLE_TIER_UNIT_TESTS_LIB_SRC_FILES MockTapePoolTableTest.cpp SqliteMiddleTierAdminTest.cpp SqliteMiddleTierUserTest.cpp - UtilsTest.cpp) + UtilsTest.cpp + VfsTest.cpp) add_library (ctamiddletierunittests SHARED ${MIDDLE_TIER_UNIT_TESTS_LIB_SRC_FILES}) diff --git a/libs/middletier/Vfs.cpp b/libs/middletier/Vfs.cpp index f7e5a32afa..b3c39e3eef 100644 --- a/libs/middletier/Vfs.cpp +++ b/libs/middletier/Vfs.cpp @@ -68,7 +68,7 @@ cta::Vfs::Vfs() { throw(Exception(message.str())); } - rc = setxattr(m_fsDir.c_str(), "CTAStorageClass", (void *)"", 0, XATTR_REPLACE); + rc = setxattr(m_fsDir.c_str(), "user.CTAStorageClass", (void *)"", 0, 0); if(rc != 0) { char buf[256]; std::ostringstream message; @@ -91,7 +91,7 @@ void cta::Vfs::setDirectoryStorageClass(const SecurityIdentity &requester, const cta::Utils::checkAbsolutePathSyntax(path); checkDirectoryExists(m_fsDir+path); - int rc = setxattr((m_fsDir+path).c_str(), "CTAStorageClass", (void *)(storageClassName.c_str()), storageClassName.length(), XATTR_REPLACE); + int rc = setxattr((m_fsDir+path).c_str(), "user.CTAStorageClass", (void *)(storageClassName.c_str()), storageClassName.length(), 0); if(rc != 0) { char buf[256]; std::ostringstream message; @@ -107,7 +107,7 @@ void cta::Vfs::clearDirectoryStorageClass(const SecurityIdentity &requester, con cta::Utils::checkAbsolutePathSyntax(path); checkDirectoryExists(m_fsDir+path); - int rc = removexattr((m_fsDir+path).c_str(), "CTAStorageClass"); + int rc = removexattr((m_fsDir+path).c_str(), "user.CTAStorageClass"); if(rc != 0) { char buf[256]; std::ostringstream message; @@ -124,11 +124,11 @@ std::string cta::Vfs::getDirectoryStorageClass(const SecurityIdentity &requester checkDirectoryExists(m_fsDir+path); char value[1024]; - int rc = getxattr((m_fsDir+path).c_str(), "CTAStorageClass", (void *)value, 1024); + int rc = getxattr((m_fsDir+path).c_str(), "user.CTAStorageClass", (void *)value, 1024); if(rc != 0) { char buf[256]; std::ostringstream message; - message << "setDirectoryStorageClass() - " << m_fsDir+path << " setxattr error. Reason: " << strerror_r(errno, buf, 256); + message << "setDirectoryStorageClass() - " << m_fsDir+path << " getxattr error. Reason: " << strerror_r(errno, buf, 256); throw(Exception(message.str())); } return std::string(value); diff --git a/libs/middletier/VfsTest.cpp b/libs/middletier/VfsTest.cpp new file mode 100644 index 0000000000..d6e43a10f2 --- /dev/null +++ b/libs/middletier/VfsTest.cpp @@ -0,0 +1,24 @@ +#include "Vfs.hpp" + +#include <gtest/gtest.h> + +namespace unitTests { + +class cta_VfsTest: public ::testing::Test { +protected: + + virtual void SetUp() { + } + + virtual void TearDown() { + } +}; + +TEST_F(cta_VfsTest, trimSlashes_emptyString) { + using namespace cta; + + Vfs vfs; + const std::string s; +} + +} \ No newline at end of file -- GitLab