updated build system
Some checks failed
BlockStorage/repertory/pipeline/head There was a failure building this commit
Some checks failed
BlockStorage/repertory/pipeline/head There was a failure building this commit
This commit is contained in:
parent
e6fc6093b2
commit
7fcc40d0e1
162
support/3rd_party/src/utils/path.cpp
vendored
162
support/3rd_party/src/utils/path.cpp
vendored
@ -19,158 +19,20 @@
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#include "gtest/gtest.h"
|
|
||||||
|
|
||||||
#include "utils/path.hpp"
|
|
||||||
|
|
||||||
namespace repertory {
|
|
||||||
TEST(path_utils, combine) {
|
|
||||||
auto s = utils::path::combine(R"(\test\path)", {});
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\test\path)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/test/path", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::combine(R"(\test)", {R"(\path)"});
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\test\path)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/test/path", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::combine(R"(\test)", {R"(\path)", R"(\again\)"});
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\test\path\again)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/test/path/again", s.c_str());
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(path_utils, create_api_path) {
|
|
||||||
auto s = utils::path::create_api_path("");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path(R"(\)");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path("/");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path(".");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path(R"(\\)");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path("//");
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path("/cow///moose/////dog/chicken");
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path("\\cow\\\\\\moose\\\\\\\\dog\\chicken/");
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::create_api_path("/cow\\\\/moose\\\\/\\dog\\chicken\\");
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(path_utils, finalize) {
|
|
||||||
auto s = utils::path::finalize("");
|
|
||||||
EXPECT_STREQ("", s.c_str());
|
|
||||||
|
|
||||||
s = utils::path::finalize(R"(\)");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize("/");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize(R"(\\)");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize("//");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize("/cow///moose/////dog/chicken");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize("\\cow\\\\\\moose\\\\\\\\dog\\chicken/");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = utils::path::finalize("/cow\\\\/moose\\\\/\\dog\\chicken\\");
|
|
||||||
#if defined(_WIN32)
|
|
||||||
EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str());
|
|
||||||
#else
|
|
||||||
EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str());
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
} // namespace repertory
|
|
||||||
Copyright<2018 - 2024><scott.e.graves @protonmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge,
|
|
||||||
to any person obtaining a copy of this software and associated documentation
|
|
||||||
files(the "Software"),
|
|
||||||
to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish
|
|
||||||
,
|
|
||||||
distribute, sublicense, and / or sell copies of the Software,
|
|
||||||
and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions :
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies
|
|
||||||
or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS",
|
|
||||||
WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
||||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.* /
|
|
||||||
#include "utils/path.hpp"
|
#include "utils/path.hpp"
|
||||||
|
|
||||||
#include "utils/common.hpp"
|
#include "utils/common.hpp"
|
||||||
#include "utils/string.hpp"
|
#include "utils/string.hpp"
|
||||||
#include "utils/unix.hpp"
|
#include "utils/unix.hpp"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
static const std::string directory_seperator_str{
|
static const std::string directory_seperator_str{
|
||||||
repertory::utils::path::directory_seperator,
|
repertory::utils::path::directory_seperator,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::wstring directory_seperator_str_w{
|
static const std::wstring directory_seperator_str_w{
|
||||||
repertory::utils::path::directory_seperator_w,
|
repertory::utils::path::directory_seperator_w,
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace repertory::utils::path {
|
namespace repertory::utils::path {
|
||||||
@ -253,13 +115,7 @@ auto is_trash_directory(std::string_view path) -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto is_trash_directory(std::wstring_view path) -> bool {
|
auto is_trash_directory(std::wstring_view path) -> bool {
|
||||||
auto trash_path = utils::string::to_lower(absolute(path));
|
return is_trash_directory(utils::string::to_utf8(path));
|
||||||
return utils::string::begins_with(trash_path,
|
|
||||||
directory_seperator_str_w + L".trash-") ||
|
|
||||||
utils::string::begins_with(trash_path,
|
|
||||||
directory_seperator_str_w + L".trashes") ||
|
|
||||||
utils::string::begins_with(trash_path, directory_seperator_str_w +
|
|
||||||
L"$recycle.bin");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto make_file_uri(std::string_view path) -> std::string {
|
auto make_file_uri(std::string_view path) -> std::string {
|
||||||
@ -359,7 +215,7 @@ auto unmake_file_uri(std::string_view uri) -> std::string {
|
|||||||
escape_characters.at(idx));
|
escape_characters.at(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
return absolute(uri);
|
return absolute(ret_uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto unmake_file_uri(std::wstring_view uri) -> std::wstring {
|
auto unmake_file_uri(std::wstring_view uri) -> std::wstring {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user