test/test_util: add unit test for DivideString
This commit is contained in:
		| @@ -2001,6 +2001,7 @@ test_run_inotify_LDADD = \ | ||||
| endif | ||||
|  | ||||
| test_test_util_SOURCES = \ | ||||
| 	test/DivideStringTest.hxx \ | ||||
| 	test/UriUtilTest.hxx \ | ||||
| 	test/TestCircularBuffer.hxx \ | ||||
| 	test/test_util.cxx | ||||
|   | ||||
							
								
								
									
										44
									
								
								test/DivideStringTest.hxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								test/DivideStringTest.hxx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| /* | ||||
|  * Unit tests for src/util/ | ||||
|  */ | ||||
|  | ||||
| #include "check.h" | ||||
| #include "util/DivideString.hxx" | ||||
|  | ||||
| #include <cppunit/TestFixture.h> | ||||
| #include <cppunit/extensions/HelperMacros.h> | ||||
|  | ||||
| #include <string.h> | ||||
|  | ||||
| class DivideStringTest : public CppUnit::TestFixture { | ||||
| 	CPPUNIT_TEST_SUITE(DivideStringTest); | ||||
| 	CPPUNIT_TEST(TestBasic); | ||||
| 	CPPUNIT_TEST(TestEmpty); | ||||
| 	CPPUNIT_TEST(TestFail); | ||||
| 	CPPUNIT_TEST_SUITE_END(); | ||||
|  | ||||
| public: | ||||
| 	void TestBasic() { | ||||
| 		constexpr char input[] = "foo.bar"; | ||||
| 		const DivideString ds(input, '.'); | ||||
| 		CPPUNIT_ASSERT(ds.IsDefined()); | ||||
| 		CPPUNIT_ASSERT(!ds.IsEmpty()); | ||||
| 		CPPUNIT_ASSERT_EQUAL(0, strcmp(ds.GetFirst(), "foo")); | ||||
| 		CPPUNIT_ASSERT_EQUAL(input + 4, ds.GetSecond()); | ||||
| 	} | ||||
|  | ||||
| 	void TestEmpty() { | ||||
| 		constexpr char input[] = ".bar"; | ||||
| 		const DivideString ds(input, '.'); | ||||
| 		CPPUNIT_ASSERT(ds.IsDefined()); | ||||
| 		CPPUNIT_ASSERT(ds.IsEmpty()); | ||||
| 		CPPUNIT_ASSERT_EQUAL(0, strcmp(ds.GetFirst(), "")); | ||||
| 		CPPUNIT_ASSERT_EQUAL(input + 1, ds.GetSecond()); | ||||
| 	} | ||||
|  | ||||
| 	void TestFail() { | ||||
| 		constexpr char input[] = "foo!bar"; | ||||
| 		const DivideString ds(input, '.'); | ||||
| 		CPPUNIT_ASSERT(!ds.IsDefined()); | ||||
| 	} | ||||
| }; | ||||
| @@ -3,6 +3,7 @@ | ||||
|  */ | ||||
|  | ||||
| #include "config.h" | ||||
| #include "DivideStringTest.hxx" | ||||
| #include "UriUtilTest.hxx" | ||||
| #include "TestCircularBuffer.hxx" | ||||
|  | ||||
| @@ -13,6 +14,7 @@ | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| CPPUNIT_TEST_SUITE_REGISTRATION(DivideStringTest); | ||||
| CPPUNIT_TEST_SUITE_REGISTRATION(UriUtilTest); | ||||
| CPPUNIT_TEST_SUITE_REGISTRATION(TestCircularBuffer); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann