diff --git a/Foundation/testsuite/Makefile-Driver b/Foundation/testsuite/Makefile-Driver index e8c63c2f2..107d27271 100644 --- a/Foundation/testsuite/Makefile-Driver +++ b/Foundation/testsuite/Makefile-Driver @@ -39,7 +39,8 @@ objects = ActiveMethodTest ActivityTest ActiveDispatcherTest \ HashSetTest HashMapTest SharedMemoryTest \ UniqueExpireCacheTest UniqueExpireLRUCacheTest UnicodeConverterTest \ TuplesTest NamedTuplesTest TypeListTest VarTest DynamicTestSuite FileStreamTest \ - MemoryStreamTest ObjectPoolTest DirectoryWatcherTest DirectoryIteratorsTest + MemoryStreamTest ObjectPoolTest DirectoryWatcherTest \ + DirectoryIteratorsTest BufferTestSuite BasicFIFOBufferTest target = testrunner target_version = 1 diff --git a/Foundation/testsuite/src/BasicFIFOBufferTest.cpp b/Foundation/testsuite/src/BasicFIFOBufferTest.cpp new file mode 100644 index 000000000..c98c0a37e --- /dev/null +++ b/Foundation/testsuite/src/BasicFIFOBufferTest.cpp @@ -0,0 +1,85 @@ +// +// BasicFIFOBufferTest.cpp +// +// $Id: //poco/1.4/Foundation/testsuite/src/BasicFIFOBufferTest.cpp#1 $ +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "BasicFIFOBufferTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/FIFOBuffer.h" +#include +#include + +// NOTE: using for certain namespace +using Poco::BasicFIFOBuffer; +using std::memcpy; + +BasicFIFOBufferTest::BasicFIFOBufferTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +BasicFIFOBufferTest::~BasicFIFOBufferTest() +{ +} + + +void BasicFIFOBufferTest::testNextWrite() +{ + // String length is 88 characters. + std::string text("The Quick Brown Dog Jumps Over The Lazy Fox."); + BasicFIFOBuffer buffer(128); + buffer.write(text.data(), text.size()); + char c_buffer[buffer.size()]; + + buffer.read(c_buffer, 4); + + assert(std::string(c_buffer, 4) == std::string("The ")); + + buffer.peek(c_buffer, buffer.used()); + assert(std::string(c_buffer, buffer.used()) == + std::string("Quick Brown Dog Jumps Over The Lazy Fox.")); + + memcpy(buffer.next(), "The ", 4); + buffer.advance(4); + + buffer.peek(c_buffer, buffer.used()); + + assert(std::string("Quick Brown Dog Jumps Over The Lazy Fox.The ") == std::string(c_buffer, buffer.used())); + + /* + std::istringstream istr("foo"); + std::ostringstream ostr; + TeeInputStream tis(istr); + tis.addStream(ostr); + std::string s; + tis >> s; + assert (ostr.str() == "foo"); + */ +} + +void BasicFIFOBufferTest::setUp() +{ +} + + +void BasicFIFOBufferTest::tearDown() +{ +} + + +CppUnit::Test* BasicFIFOBufferTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("BasicFIFOBufferTest"); + + CppUnit_addTest(pSuite, BasicFIFOBufferTest, testNextWrite); + + return pSuite; +} diff --git a/Foundation/testsuite/src/BasicFIFOBufferTest.h b/Foundation/testsuite/src/BasicFIFOBufferTest.h new file mode 100644 index 000000000..c11b76a91 --- /dev/null +++ b/Foundation/testsuite/src/BasicFIFOBufferTest.h @@ -0,0 +1,40 @@ +// +// BasicFIFOBufferTest.h +// +// $Id: //poco/1.6/Foundation/testsuite/src/BasicFIFOBufferTest.h#1 $ +// +// Definition of the BasicFIFOBufferTest class. +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef BasicFIFOBufferTest_INCLUDED +#define BasicFIFOBufferTest_INCLUDED + + +#include "Poco/Foundation.h" +#include "CppUnit/TestCase.h" + + +class BasicFIFOBufferTest: public CppUnit::TestCase +{ +public: + BasicFIFOBufferTest(const std::string& name); + ~BasicFIFOBufferTest(); + + void testNextWrite(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // BasicFIFOBufferTest_INCLUDED diff --git a/Foundation/testsuite/src/BufferTestSuite.cpp b/Foundation/testsuite/src/BufferTestSuite.cpp new file mode 100644 index 000000000..d0f85f7b8 --- /dev/null +++ b/Foundation/testsuite/src/BufferTestSuite.cpp @@ -0,0 +1,24 @@ +// +// BufferTestSuite.cpp +// +// $Id: //poco/1.4/Foundation/testsuite/src/BufferTestSuite.cpp#1 $ +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "BufferTestSuite.h" +#include "BasicFIFOBufferTest.h" + + +CppUnit::Test* BufferTestSuite::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("BufferTestSuite"); + + pSuite->addTest(BasicFIFOBufferTest::suite()); + + return pSuite; +} diff --git a/Foundation/testsuite/src/BufferTestSuite.h b/Foundation/testsuite/src/BufferTestSuite.h new file mode 100644 index 000000000..1af7e3871 --- /dev/null +++ b/Foundation/testsuite/src/BufferTestSuite.h @@ -0,0 +1,29 @@ +// +// BufferTestSuite.h +// +// $Id: //poco/1.6/Foundation/testsuite/src/BufferTestSuite.h#1 $ +// +// Definition of the BufferTestSuite class. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef BufferTestSuite_INCLUDED +#define BufferTestSuite_INCLUDED + + +#include "CppUnit/TestSuite.h" + + +class BufferTestSuite +{ +public: + static CppUnit::Test* suite(); +}; + + +#endif // BufferTestSuite_INCLUDED diff --git a/Foundation/testsuite/src/FoundationTestSuite.cpp b/Foundation/testsuite/src/FoundationTestSuite.cpp index b492d5634..be93f6682 100644 --- a/Foundation/testsuite/src/FoundationTestSuite.cpp +++ b/Foundation/testsuite/src/FoundationTestSuite.cpp @@ -30,6 +30,7 @@ #include "EventTestSuite.h" #include "CacheTestSuite.h" #include "HashingTestSuite.h" +#include "BufferTestSuite.h" CppUnit::Test* FoundationTestSuite::suite() @@ -39,6 +40,7 @@ CppUnit::Test* FoundationTestSuite::suite() pSuite->addTest(CoreTestSuite::suite()); pSuite->addTest(DateTimeTestSuite::suite()); pSuite->addTest(StreamsTestSuite::suite()); + pSuite->addTest(BufferTestSuite::suite()); pSuite->addTest(CryptTestSuite::suite()); pSuite->addTest(NotificationsTestSuite::suite()); pSuite->addTest(ThreadingTestSuite::suite());