Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-29 05:49:56 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-29 05:51:33 +0300
commitbdefce0b213b5b032376c58bf7bcbb0af886ded3 (patch)
tree94c78ba5e21129d8aa7bca631192a652a0dccefc /tests
parentf2acf3bab68ab44396599d7998d34a2c4c3946e4 (diff)
GTest: BLI_path_util tests
Unit tests for: - BLI_path_extension_check - BLI_path_frame_check_chars - BLI_path_frame_range - BLI_path_frame_get D4749 by @zazizizou
Diffstat (limited to 'tests')
-rw-r--r--tests/gtests/blenlib/BLI_path_util_test.cc131
1 files changed, 131 insertions, 0 deletions
diff --git a/tests/gtests/blenlib/BLI_path_util_test.cc b/tests/gtests/blenlib/BLI_path_util_test.cc
index a9ac5816380..c07ff2b0b05 100644
--- a/tests/gtests/blenlib/BLI_path_util_test.cc
+++ b/tests/gtests/blenlib/BLI_path_util_test.cc
@@ -487,3 +487,134 @@ TEST(path_util, PathFrameStrip)
PATH_FRAME_STRIP("/ext/shorter/somefile.123001.abc", "/ext/shorter/somefile.######", ".abc");
}
#undef PATH_FRAME_STRIP
+
+#define PATH_EXTENSION_CHECK(input_path, input_ext, expect_ext) \
+ { \
+ const bool ret = BLI_path_extension_check(input_path, input_ext); \
+ if (strcmp(input_ext, expect_ext) == 0) { \
+ EXPECT_TRUE(ret); \
+ } \
+ else { \
+ EXPECT_FALSE(ret); \
+ } \
+ } \
+ ((void)0)
+
+/* BLI_path_extension_check */
+TEST(path_util, PathExtensionCheck)
+{
+ PATH_EXTENSION_CHECK("a/b/c.exe", ".exe", ".exe");
+ PATH_EXTENSION_CHECK("correct/path/to/file.h", ".h", ".h");
+ PATH_EXTENSION_CHECK("correct/path/to/file.BLEND", ".BLEND", ".BLEND");
+ PATH_EXTENSION_CHECK("../tricky/path/to/file.h", ".h", ".h");
+ PATH_EXTENSION_CHECK("../dirty//../path\\to/file.h", ".h", ".h");
+ PATH_EXTENSION_CHECK("a/b/c.veryveryverylonglonglongextension",
+ ".veryveryverylonglonglongextension",
+ ".veryveryverylonglonglongextension");
+ PATH_EXTENSION_CHECK("filename.PNG", "pnG", "pnG");
+ PATH_EXTENSION_CHECK("a/b/c.h.exe", ".exe", ".exe");
+ PATH_EXTENSION_CHECK("a/b/c.h.exe", "exe", "exe");
+ PATH_EXTENSION_CHECK("a/b/c.exe", "c.exe", "c.exe");
+ PATH_EXTENSION_CHECK("a/b/noext", "noext", "noext");
+
+ PATH_EXTENSION_CHECK("a/b/c.exe", ".png", ".exe");
+ PATH_EXTENSION_CHECK("a/b/c.exe", "c.png", ".exe");
+ PATH_EXTENSION_CHECK("a/b/s.l", "l.s", "s.l");
+ PATH_EXTENSION_CHECK(".hiddenfolder", "", ".hiddenfolder");
+ PATH_EXTENSION_CHECK("../dirty//../path\\to/actual.h.file.ext", ".h", ".ext");
+ PATH_EXTENSION_CHECK("..\\dirty//../path//to/.hiddenfile.JPEG", ".hiddenfile", ".JPEG");
+}
+#undef PATH_EXTENSION_CHECK
+
+#define PATH_FRAME_CHECK_CHARS(input_path, expect_hasChars) \
+ { \
+ const bool ret = BLI_path_frame_check_chars(input_path); \
+ if (expect_hasChars) { \
+ EXPECT_TRUE(ret); \
+ } \
+ else { \
+ EXPECT_FALSE(ret); \
+ } \
+ } \
+ ((void)0)
+
+/* BLI_path_frame_check_chars */
+TEST(path_util, PathFrameCheckChars)
+{
+ PATH_FRAME_CHECK_CHARS("a#", true);
+ PATH_FRAME_CHECK_CHARS("aaaaa#", true);
+ PATH_FRAME_CHECK_CHARS("#aaaaa", true);
+ PATH_FRAME_CHECK_CHARS("a##.###", true);
+ PATH_FRAME_CHECK_CHARS("####.abc#", true);
+ PATH_FRAME_CHECK_CHARS("path/to/chars/a#", true);
+ PATH_FRAME_CHECK_CHARS("path/to/chars/123#123.exe", true);
+
+ PATH_FRAME_CHECK_CHARS("&", false);
+ PATH_FRAME_CHECK_CHARS("\35", false);
+ PATH_FRAME_CHECK_CHARS("path#/to#/chars#/$.h", false);
+ PATH_FRAME_CHECK_CHARS("path#/to#/chars#/nochars.h", false);
+ PATH_FRAME_CHECK_CHARS("..\\dirty\\path#/..//to#\\chars#/nochars.h", false);
+ PATH_FRAME_CHECK_CHARS("..\\dirty\\path#/..//to#/chars#\\nochars.h", false);
+}
+#undef PATH_FRAME_CHECK_CHARS
+
+#define PATH_FRAME_RANGE(input_path, sta, end, digits, expect_outpath) \
+ { \
+ char path[FILE_MAX]; \
+ bool ret; \
+ BLI_strncpy(path, input_path, FILE_MAX); \
+ ret = BLI_path_frame_range(path, sta, end, digits); \
+ if (expect_outpath == NULL) { \
+ EXPECT_FALSE(ret); \
+ } \
+ else { \
+ EXPECT_TRUE(ret); \
+ EXPECT_STREQ(path, expect_outpath); \
+ } \
+ } \
+ ((void)0)
+
+/* BLI_path_frame_range */
+TEST(path_util, PathFrameRange)
+{
+ int dummy = -1;
+ PATH_FRAME_RANGE("#", 1, 2, dummy, "1-2");
+ PATH_FRAME_RANGE("##", 1, 2, dummy, "01-02");
+ PATH_FRAME_RANGE("##", 1000, 2000, dummy, "1000-2000");
+ PATH_FRAME_RANGE("###", 100, 200, dummy, "100-200");
+ PATH_FRAME_RANGE("###", 8, 9, dummy, "008-009");
+
+ PATH_FRAME_RANGE("", 100, 200, 1, "100-200");
+ PATH_FRAME_RANGE("", 123, 321, 4, "0123-0321");
+ PATH_FRAME_RANGE("", 1, 0, 20, "00000000000000000001-00000000000000000000");
+}
+#undef PATH_FRAME_RANGE
+
+#define PATH_FRAME_GET(input_path, expect_frame, expect_numdigits, expect_pathisvalid) \
+ { \
+ char path[FILE_MAX]; \
+ int out_frame = -1, out_numdigits = -1; \
+ BLI_strncpy(path, input_path, FILE_MAX); \
+ const bool ret = BLI_path_frame_get(path, &out_frame, &out_numdigits); \
+ if (expect_pathisvalid) { \
+ EXPECT_TRUE(ret); \
+ } \
+ else { \
+ EXPECT_FALSE(ret); \
+ } \
+ EXPECT_EQ(out_frame, expect_frame); \
+ EXPECT_EQ(out_numdigits, expect_numdigits); \
+ } \
+ ((void)0)
+
+/* BLI_path_frame_get */
+TEST(path_util, PathFrameGet)
+{
+ PATH_FRAME_GET("001.avi", 1, 3, true);
+ PATH_FRAME_GET("0000299.ext", 299, 7, true);
+ PATH_FRAME_GET("path/to/frame_2810.dummy_quite_long_extension", 2810, 4, true);
+ PATH_FRAME_GET("notframe_7_frame00018.bla", 18, 5, true);
+
+ PATH_FRAME_GET("", -1, -1, false);
+}
+#undef PATH_FRAME_GET