[Bf-blender-cvs] [bdefce0b213] master: GTest: BLI_path_util tests
Campbell Barton
noreply at git.blender.org
Mon Apr 29 04:54:15 CEST 2019
Commit: bdefce0b213b5b032376c58bf7bcbb0af886ded3
Author: Campbell Barton
Date: Mon Apr 29 12:49:56 2019 +1000
Branches: master
https://developer.blender.org/rBbdefce0b213b5b032376c58bf7bcbb0af886ded3
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
===================================================================
M tests/gtests/blenlib/BLI_path_util_test.cc
===================================================================
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
More information about the Bf-blender-cvs
mailing list