From: rousskov <> Date: Wed, 8 Aug 2007 01:45:51 +0000 (+0000) Subject: Do not assume that store stream cannot flush its contents into the store entry X-Git-Tag: SQUID_3_0_PRE7~105 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4f08306e7d0e5b5916a18534f454a5d4b2ea739;p=thirdparty%2Fsquid.git Do not assume that store stream cannot flush its contents into the store entry unless we call the flush method. Depending on stream implementation, it is possible that the stream will flush while we add data to it and before we call flush(). Added more store stream output cases, including floating point numbers and their formatting. --- diff --git a/src/tests/testStoreEntryStream.cc b/src/tests/testStoreEntryStream.cc index 3beb080547..b6a4f5f6e6 100644 --- a/src/tests/testStoreEntryStream.cc +++ b/src/tests/testStoreEntryStream.cc @@ -31,13 +31,23 @@ testStoreEntryStream::testGetStream() StoreEntryStream stream(anEntry); CPPUNIT_ASSERT_EQUAL(1, anEntry->_buffer_calls); CPPUNIT_ASSERT_EQUAL(0, anEntry->_flush_calls); - stream << "some text" << std::setw(4) << "!"; + + stream.setf(std::ios::fixed); + stream << 123456 << std::setprecision(1) << 77.7; + stream << " some text" << std::setw(4) << "!" << '.'; CPPUNIT_ASSERT_EQUAL(1, anEntry->_buffer_calls); - CPPUNIT_ASSERT_EQUAL(0, anEntry->_flush_calls); + + const int preFlushCount = anEntry->_flush_calls; + // may have already flushed + CPPUNIT_ASSERT(preFlushCount >= 0); stream.flush(); + // flushed at least once more + CPPUNIT_ASSERT(anEntry->_flush_calls > preFlushCount); + CPPUNIT_ASSERT_EQUAL(1, anEntry->_buffer_calls); - CPPUNIT_ASSERT_EQUAL(1, anEntry->_flush_calls); - CPPUNIT_ASSERT_EQUAL(String("some text !"), anEntry->_appended_text); + + CPPUNIT_ASSERT_EQUAL(String("12345677.7 some text !."), +anEntry->_appended_text); } delete anEntry;