test/test_util: add unit test for DivideString

This commit is contained in:
Max Kellermann 2014-12-04 07:23:06 +01:00
parent 77b316cdfb
commit 02a77f6797
3 changed files with 47 additions and 0 deletions

View File

@ -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
View 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());
}
};

View File

@ -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);