forked from blender/blender
index-of-nearest-104619 #2
@ -752,11 +752,13 @@ TEST(path_util, ExtensionCheck)
|
|||||||
/** \name Tests for: #BLI_path_extension_replace
|
/** \name Tests for: #BLI_path_extension_replace
|
||||||
* \{ */
|
* \{ */
|
||||||
|
|
||||||
#define PATH_EXTENSION_REPLACE(input_path, input_ext, expect_result, expect_path) \
|
#define PATH_EXTENSION_REPLACE_WITH_MAXLEN( \
|
||||||
|
input_path, input_ext, expect_result, expect_path, maxlen) \
|
||||||
{ \
|
{ \
|
||||||
|
BLI_assert(maxlen <= FILE_MAX); \
|
||||||
char path[FILE_MAX]; \
|
char path[FILE_MAX]; \
|
||||||
BLI_strncpy(path, input_path, FILE_MAX); \
|
BLI_strncpy(path, input_path, sizeof(path)); \
|
||||||
const bool ret = BLI_path_extension_replace(path, sizeof(path), input_ext); \
|
const bool ret = BLI_path_extension_replace(path, maxlen, input_ext); \
|
||||||
if (expect_result) { \
|
if (expect_result) { \
|
||||||
EXPECT_TRUE(ret); \
|
EXPECT_TRUE(ret); \
|
||||||
} \
|
} \
|
||||||
@ -767,6 +769,9 @@ TEST(path_util, ExtensionCheck)
|
|||||||
} \
|
} \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
|
#define PATH_EXTENSION_REPLACE(input_path, input_ext, expect_result, expect_path) \
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN(input_path, input_ext, expect_result, expect_path, FILE_MAX)
|
||||||
|
|
||||||
TEST(path_util, ExtensionReplace)
|
TEST(path_util, ExtensionReplace)
|
||||||
{
|
{
|
||||||
PATH_EXTENSION_REPLACE("test", ".txt", true, "test.txt");
|
PATH_EXTENSION_REPLACE("test", ".txt", true, "test.txt");
|
||||||
@ -795,7 +800,22 @@ TEST(path_util, ExtensionReplace)
|
|||||||
PATH_EXTENSION_REPLACE("..hidden", ".hidden", true, "..hidden.hidden");
|
PATH_EXTENSION_REPLACE("..hidden", ".hidden", true, "..hidden.hidden");
|
||||||
PATH_EXTENSION_REPLACE("._.hidden", ".hidden", true, "._.hidden");
|
PATH_EXTENSION_REPLACE("._.hidden", ".hidden", true, "._.hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(path_util, ExtensionReplace_Overflow)
|
||||||
|
{
|
||||||
|
/* Small values. */
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test", ".txt", false, "test", 0);
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test", ".txt", false, "test", 1);
|
||||||
|
/* One under fails, and exactly enough space succeeds. */
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test", ".txt", false, "test", 8);
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test", ".txt", true, "test.txt", 9);
|
||||||
|
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test.xx", ".txt", false, "test.xx", 8);
|
||||||
|
PATH_EXTENSION_REPLACE_WITH_MAXLEN("test.xx", ".txt", true, "test.txt", 9);
|
||||||
|
}
|
||||||
|
|
||||||
#undef PATH_EXTENSION_REPLACE
|
#undef PATH_EXTENSION_REPLACE
|
||||||
|
#undef PATH_EXTENSION_REPLACE_WITH_MAXLEN
|
||||||
|
|
||||||
/** \} */
|
/** \} */
|
||||||
|
|
||||||
@ -803,11 +823,13 @@ TEST(path_util, ExtensionReplace)
|
|||||||
/** \name Tests for: #BLI_path_extension_ensure
|
/** \name Tests for: #BLI_path_extension_ensure
|
||||||
* \{ */
|
* \{ */
|
||||||
|
|
||||||
#define PATH_EXTENSION_ENSURE(input_path, input_ext, expect_result, expect_path) \
|
#define PATH_EXTENSION_ENSURE_WITH_MAXLEN( \
|
||||||
|
input_path, input_ext, expect_result, expect_path, maxlen) \
|
||||||
{ \
|
{ \
|
||||||
|
BLI_assert(maxlen <= FILE_MAX); \
|
||||||
char path[FILE_MAX]; \
|
char path[FILE_MAX]; \
|
||||||
BLI_strncpy(path, input_path, FILE_MAX); \
|
BLI_strncpy(path, input_path, sizeof(path)); \
|
||||||
const bool ret = BLI_path_extension_ensure(path, sizeof(path), input_ext); \
|
const bool ret = BLI_path_extension_ensure(path, maxlen, input_ext); \
|
||||||
if (expect_result) { \
|
if (expect_result) { \
|
||||||
EXPECT_TRUE(ret); \
|
EXPECT_TRUE(ret); \
|
||||||
} \
|
} \
|
||||||
@ -818,6 +840,9 @@ TEST(path_util, ExtensionReplace)
|
|||||||
} \
|
} \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
|
#define PATH_EXTENSION_ENSURE(input_path, input_ext, expect_result, expect_path) \
|
||||||
|
PATH_EXTENSION_ENSURE_WITH_MAXLEN(input_path, input_ext, expect_result, expect_path, FILE_MAX)
|
||||||
|
|
||||||
TEST(path_util, ExtensionEnsure)
|
TEST(path_util, ExtensionEnsure)
|
||||||
{
|
{
|
||||||
PATH_EXTENSION_ENSURE("test", ".txt", true, "test.txt");
|
PATH_EXTENSION_ENSURE("test", ".txt", true, "test.txt");
|
||||||
@ -843,7 +868,19 @@ TEST(path_util, ExtensionEnsure)
|
|||||||
PATH_EXTENSION_ENSURE("..hidden", ".hidden", true, "..hidden.hidden");
|
PATH_EXTENSION_ENSURE("..hidden", ".hidden", true, "..hidden.hidden");
|
||||||
PATH_EXTENSION_ENSURE("._.hidden", ".hidden", true, "._.hidden");
|
PATH_EXTENSION_ENSURE("._.hidden", ".hidden", true, "._.hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(path_util, ExtensionEnsure_Overflow)
|
||||||
|
{
|
||||||
|
/* Small values. */
|
||||||
|
PATH_EXTENSION_ENSURE_WITH_MAXLEN("test", ".txt", false, "test", 0);
|
||||||
|
PATH_EXTENSION_ENSURE_WITH_MAXLEN("test", ".txt", false, "test", 1);
|
||||||
|
/* One under fails, and exactly enough space succeeds. */
|
||||||
|
PATH_EXTENSION_ENSURE_WITH_MAXLEN("test", ".txt", false, "test", 8);
|
||||||
|
PATH_EXTENSION_ENSURE_WITH_MAXLEN("test", ".txt", true, "test.txt", 9);
|
||||||
|
}
|
||||||
|
|
||||||
#undef PATH_EXTENSION_ENSURE
|
#undef PATH_EXTENSION_ENSURE
|
||||||
|
#undef PATH_EXTENSION_ENSURE_WITH_MAXLEN
|
||||||
|
|
||||||
/** \} */
|
/** \} */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user