[libcamera-devel] [PATCH 2/3] test: Add a utils::split() test

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Feb 13 14:09:07 CET 2020


From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

The test constructs a string by joining substrings, splits it, and
verifies that the original and resulting substrings match.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 test/utils.cpp | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/test/utils.cpp b/test/utils.cpp
index 9fe0d4775b73..db1fbdde847d 100644
--- a/test/utils.cpp
+++ b/test/utils.cpp
@@ -7,6 +7,8 @@
 
 #include <iostream>
 #include <sstream>
+#include <string>
+#include <vector>
 
 #include "test.h"
 #include "utils.h"
@@ -19,6 +21,7 @@ class UtilsTest : public Test
 protected:
 	int run()
 	{
+		/* utils::hex() test. */
 		std::ostringstream os;
 		std::string ref;
 
@@ -46,6 +49,28 @@ protected:
 			return TestFail;
 		}
 
+		/* utils::split() test. */
+		std::vector<std::string> elements = {
+			"/bin",
+			"/usr/bin",
+			"",
+			"",
+		};
+
+		std::string path;
+		for (const auto &element : elements)
+			path += (path.empty() ? "" : ":") + element;
+
+		std::vector<std::string> dirs;
+
+		for (const auto &dir : utils::split(path, ":"))
+			dirs.push_back(dir);
+
+		if (dirs != elements) {
+			cerr << "utils::split() test failed" << endl;
+			return TestFail;
+		}
+
 		return TestPass;
 	}
 };
-- 
2.20.1



More information about the libcamera-devel mailing list