From 1274add43f7e746721102ae6f206c8b0f746271c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 6 May 2013 00:30:56 +0000 Subject: [PATCH 1/1] Test wxDataStream floating point methods in big endian format too. Added a hack to test float/double reading/writing using wxDataInputStream/wxDataOutputStream to the test case using big endian extended float format too. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/streams/datastreamtest.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/streams/datastreamtest.cpp b/tests/streams/datastreamtest.cpp index 955d403903..8f48c285cf 100644 --- a/tests/streams/datastreamtest.cpp +++ b/tests/streams/datastreamtest.cpp @@ -47,8 +47,13 @@ private: CPPUNIT_TEST( Int64RW ); #endif CPPUNIT_TEST( NaNRW ); + CPPUNIT_TEST( PseudoTest_UseBigEndian ); + CPPUNIT_TEST( FloatRW ); + CPPUNIT_TEST( DoubleRW ); CPPUNIT_TEST_SUITE_END(); + wxFloat64 TestFloatRW(wxFloat64 fValue); + void FloatRW(); void DoubleRW(); #if wxUSE_LONGLONG @@ -59,6 +64,10 @@ private: #endif void NaNRW(); + void PseudoTest_UseBigEndian() { ms_useBigEndianFormat = true; } + + static bool ms_useBigEndianFormat; + DECLARE_NO_COPY_CLASS(DataStreamTestCase) }; @@ -68,22 +77,27 @@ CPPUNIT_TEST_SUITE_REGISTRATION( DataStreamTestCase ); // also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( DataStreamTestCase, "DataStreamTestCase" ); +bool DataStreamTestCase::ms_useBigEndianFormat = false; + DataStreamTestCase::DataStreamTestCase() { } -static -wxFloat64 TestFloatRW(wxFloat64 fValue) +wxFloat64 DataStreamTestCase::TestFloatRW(wxFloat64 fValue) { { wxFileOutputStream pFileOutput( wxT("mytext.dat") ); wxDataOutputStream pDataOutput( pFileOutput ); + if ( ms_useBigEndianFormat ) + pDataOutput.BigEndianOrdered(true); pDataOutput << fValue; } wxFileInputStream pFileInput( wxT("mytext.dat") ); wxDataInputStream pDataInput( pFileInput ); + if ( ms_useBigEndianFormat ) + pDataInput.BigEndianOrdered(true); wxFloat64 fInFloat; -- 2.45.2