]> git.saurik.com Git - wxWidgets.git/commitdiff
Test wxDataStream floating point methods in big endian format too.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 6 May 2013 00:30:56 +0000 (00:30 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 6 May 2013 00:30:56 +0000 (00:30 +0000)
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

index 955d403903f71534b467ad3567324d0ebb802388..8f48c285cf2542554129eaf928127e24b05241c1 100644 (file)
@@ -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;