Skip to content

Commit

Permalink
test,tool: include <filesystem> if available
Browse files Browse the repository at this point in the history
and use "<experimental/filesystem>" as a fallback.

since GCC-9 has included <filesystem> already.

Signed-off-by: Kefu Chai <[email protected]>
  • Loading branch information
tchaikov committed Nov 27, 2020
1 parent 5929200 commit f0cb936
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 14 deletions.
1 change: 0 additions & 1 deletion src/test/admin_socket_output.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

#include <iostream>
#include <regex> // For regex, regex_search
#include <experimental/filesystem> // For extension

#include "common/admin_socket_client.h" // For AdminSocketClient
#include "common/ceph_json.h" // For JSONParser, JSONObjIter
Expand Down
8 changes: 6 additions & 2 deletions src/test/admin_socket_output.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@
#include <map>
#include <set>
#include <vector>
#include <experimental/filesystem> // For path

#if __has_include(<filesystem>) // For extension
#include <filesystem>
namespace fs = std::filesystem;
#else
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#endif

using socket_results = std::map<std::string, std::string>;
using test_functions =
Expand Down
8 changes: 7 additions & 1 deletion src/test/common/test_util.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,18 @@
#include "include/util.h"
#include "gtest/gtest.h"

#if __has_include(<filesystem>)
#include <filesystem>
namespace fs = std::filesystem;
#else
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#endif

#if defined(__linux__)
TEST(util, collect_sys_info)
{
if (!std::experimental::filesystem::exists("/etc/os-release")) {
if (!fs::exists("/etc/os-release")) {
GTEST_SKIP() << "skipping as '/etc/os-release' does not exist";
}

Expand Down
9 changes: 7 additions & 2 deletions src/test/immutable_object_cache/test_object_store.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@
#include <iostream>
#include <unistd.h>

#if __has_include(<filesystem>)
#include <filesystem>
namespace fs = std::filesystem;
#else
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#endif

#include "gtest/gtest.h"
#include "include/Context.h"
Expand All @@ -18,7 +24,6 @@

#include "tools/immutable_object_cache/ObjectCacheStore.h"

namespace efs = std::experimental::filesystem;
using namespace ceph::immutable_obj_cache;

std::string test_cache_path("/tmp/test_ceph_immutable_shared_cache");
Expand Down Expand Up @@ -85,7 +90,7 @@ TEST_F(TestObjectStore, test_1) {

std::string cache_path(test_cache_path);

efs::remove_all(test_cache_path);
fs::remove_all(test_cache_path);

init_object_cache_store(m_temp_pool_name, m_temp_volume_name, 1000, true);

Expand Down
21 changes: 13 additions & 8 deletions src/tools/immutable_object_cache/ObjectCacheStore.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@

#include "ObjectCacheStore.h"
#include "Utils.h"
#if __has_include(<filesystem>)
#include <filesystem>
namespace fs = std::filesystem;
#else
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#endif

#define dout_context g_ceph_context
#define dout_subsys ceph_subsys_immutable_obj_cache
#undef dout_prefix
#define dout_prefix *_dout << "ceph::cache::ObjectCacheStore: " << this << " " \
<< __func__ << ": "

namespace efs = std::experimental::filesystem;

namespace ceph {
namespace immutable_obj_cache {
Expand Down Expand Up @@ -61,15 +66,15 @@ int ObjectCacheStore::init(bool reset) {
// TODO(dehao): fsck and reuse existing cache objects
if (reset) {
try {
if (efs::exists(m_cache_root_dir)) {
if (fs::exists(m_cache_root_dir)) {
// remove all sub folders
for (auto& p : efs::directory_iterator(m_cache_root_dir)) {
efs::remove_all(p.path());
for (auto& p : fs::directory_iterator(m_cache_root_dir)) {
fs::remove_all(p.path());
}
} else {
efs::create_directories(m_cache_root_dir);
fs::create_directories(m_cache_root_dir);
}
} catch (const efs::filesystem_error& e) {
} catch (const fs::filesystem_error& e) {
lderr(m_cct) << "failed to initialize cache store directory: "
<< e.what() << dendl;
return -e.code().value();
Expand Down Expand Up @@ -287,12 +292,12 @@ std::string ObjectCacheStore::get_cache_file_path(std::string cache_file_name,
ldout(m_cct, 20) << "creating cache dir: " << cache_file_dir <<dendl;
std::error_code ec;
std::string new_dir = m_cache_root_dir + cache_file_dir;
if (efs::exists(new_dir, ec)) {
if (fs::exists(new_dir, ec)) {
ldout(m_cct, 20) << "cache dir exists: " << cache_file_dir <<dendl;
return new_dir + cache_file_name;
}

if (!efs::create_directories(new_dir, ec)) {
if (!fs::create_directories(new_dir, ec)) {
ldout(m_cct, 5) << "fail to create cache dir: " << new_dir
<< "error: " << ec.message() << dendl;
return "";
Expand Down

0 comments on commit f0cb936

Please sign in to comment.