spdlog
Loading...
Searching...
No Matches
tests
test_create_dir.cpp
Go to the documentation of this file.
1
/*
2
* This content is released under the MIT License as specified in https://raw.githubusercontent.com/gabime/spdlog/master/LICENSE
3
*/
4
#include "
includes.h
"
5
6
using
spdlog::details::os::create_dir
;
7
using
spdlog::details::os::path_exists
;
8
9
bool
try_create_dir
(
const
spdlog::filename_t
&path,
const
spdlog::filename_t
&normalized_path)
10
{
11
auto
rv = create_dir(path);
12
REQUIRE
(rv ==
true
);
13
return
path_exists(normalized_path);
14
}
15
16
TEST_CASE
(
"create_dir"
,
"[create_dir]"
)
17
{
18
prepare_logdir
();
19
20
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir1"
),
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir1"
)));
21
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir1"
),
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir1"
)));
// test existing
22
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs/dir1///dir2//"
),
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir2"
)));
23
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"./test_logs/dir1/dir3"
),
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir3"
)));
24
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs/../test_logs/dir1/dir4"
),
SPDLOG_FILENAME_T
(
"test_logs/dir1/dir4"
)));
25
26
#ifdef WIN32
27
// test backslash folder separator
28
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir222"
),
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir222"
)));
29
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir223\\"
),
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir223\\"
)));
30
REQUIRE
(
31
try_create_dir
(
SPDLOG_FILENAME_T
(
".\\test_logs\\dir1\\dir2\\dir99\\..\\dir23"
),
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir2\\dir23"
)));
32
REQUIRE
(
try_create_dir
(
SPDLOG_FILENAME_T
(
"test_logs\\..\\test_logs\\dir1\\dir5"
),
SPDLOG_FILENAME_T
(
"test_logs\\dir1\\dir5"
)));
33
#endif
34
}
35
36
TEST_CASE
(
"create_invalid_dir"
,
"[create_dir]"
)
37
{
38
REQUIRE
(create_dir(
SPDLOG_FILENAME_T
(
""
)) ==
false
);
39
REQUIRE
(create_dir(
spdlog::filename_t
{}) ==
false
);
40
#ifdef __linux__
41
REQUIRE
(create_dir(
"/proc/spdlog-utest"
) ==
false
);
42
#endif
43
}
44
45
TEST_CASE
(
"dir_name"
,
"[create_dir]"
)
46
{
47
using
spdlog::details::os::dir_name
;
48
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
""
)).empty());
49
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir"
)).empty());
50
51
#ifdef WIN32
52
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir\)")) ==
SPDLOG_FILENAME_T
(
"dir"
));
53
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir\\\)")) ==
SPDLOG_FILENAME_T
(R
"(dir\\)"));
54
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir\file)")) ==
SPDLOG_FILENAME_T
(
"dir"
));
55
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir/file)")) ==
SPDLOG_FILENAME_T
(
"dir"
));
56
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir\file.txt)")) ==
SPDLOG_FILENAME_T
(
"dir"
));
57
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir/file)")) ==
SPDLOG_FILENAME_T
(
"dir"
));
58
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(dir\file.txt\)")) ==
SPDLOG_FILENAME_T
(R
"(dir\file.txt)"));
59
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(\dir\file.txt)")) ==
SPDLOG_FILENAME_T
(R
"(\dir)"));
60
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(\\dir\file.txt)")) ==
SPDLOG_FILENAME_T
(R
"(\\dir)"));
61
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(..\file.txt)")) ==
SPDLOG_FILENAME_T
(
".."
));
62
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(.\file.txt)")) ==
SPDLOG_FILENAME_T
(
"."
));
63
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(c:\\a\b\c\d\file.txt)")) ==
SPDLOG_FILENAME_T
(R
"(c:\\a\b\c\d)"));
64
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(R
"(c://a/b/c/d/file.txt)")) ==
SPDLOG_FILENAME_T
(R
"(c://a/b/c/d)"));
65
#endif
66
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir/"
)) ==
SPDLOG_FILENAME_T
(
"dir"
));
67
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir///"
)) ==
SPDLOG_FILENAME_T
(
"dir//"
));
68
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir/file"
)) ==
SPDLOG_FILENAME_T
(
"dir"
));
69
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir/file.txt"
)) ==
SPDLOG_FILENAME_T
(
"dir"
));
70
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"dir/file.txt/"
)) ==
SPDLOG_FILENAME_T
(
"dir/file.txt"
));
71
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"/dir/file.txt"
)) ==
SPDLOG_FILENAME_T
(
"/dir"
));
72
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"//dir/file.txt"
)) ==
SPDLOG_FILENAME_T
(
"//dir"
));
73
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"../file.txt"
)) ==
SPDLOG_FILENAME_T
(
".."
));
74
REQUIRE
(dir_name(
SPDLOG_FILENAME_T
(
"./file.txt"
)) ==
SPDLOG_FILENAME_T
(
"."
));
75
}
std::string
TEST_CASE
#define TEST_CASE(...)
Definition
catch.hpp:15119
REQUIRE
#define REQUIRE(...)
Definition
catch.hpp:15083
SPDLOG_FILENAME_T
#define SPDLOG_FILENAME_T(s)
Definition
common.h:107
includes.h
spdlog::details::os::path_exists
SPDLOG_INLINE bool path_exists(const filename_t &filename) SPDLOG_NOEXCEPT
Definition
os-inl.h:187
spdlog::details::os::dir_name
SPDLOG_INLINE filename_t dir_name(filename_t path)
Definition
os-inl.h:573
spdlog::details::os::create_dir
SPDLOG_INLINE bool create_dir(filename_t path)
Definition
os-inl.h:534
try_create_dir
bool try_create_dir(const spdlog::filename_t &path, const spdlog::filename_t &normalized_path)
Definition
test_create_dir.cpp:9
prepare_logdir
void prepare_logdir()
Definition
utils.cpp:10
Generated by
1.9.8