]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/streams/datastreamtest.cpp
Don't ignore child process output if it exits with -1 exit code.
[wxWidgets.git] / tests / streams / datastreamtest.cpp
index 955d403903f71534b467ad3567324d0ebb802388..2aed7a3b04dd8b0b4b66608dc633669f463b13cb 100644 (file)
@@ -47,8 +47,24 @@ private:
         CPPUNIT_TEST( Int64RW );
 #endif
         CPPUNIT_TEST( NaNRW );
+        CPPUNIT_TEST( PseudoTest_UseBigEndian );
+        CPPUNIT_TEST( FloatRW );
+        CPPUNIT_TEST( DoubleRW );
+        // Only test standard IEEE 754 formats if we're using IEEE extended
+        // format by default, otherwise the tests above already covered them.
+#if wxUSE_APPLE_IEEE
+        CPPUNIT_TEST( PseudoTest_UseIEEE754 );
+        CPPUNIT_TEST( FloatRW );
+        CPPUNIT_TEST( DoubleRW );
+        // Also retest little endian version with standard formats.
+        CPPUNIT_TEST( PseudoTest_UseLittleEndian );
+        CPPUNIT_TEST( FloatRW );
+        CPPUNIT_TEST( DoubleRW );
+#endif // wxUSE_APPLE_IEEE
     CPPUNIT_TEST_SUITE_END();
 
+    wxFloat64 TestFloatRW(wxFloat64 fValue);
+
     void FloatRW();
     void DoubleRW();
 #if wxUSE_LONGLONG
@@ -59,6 +75,17 @@ private:
 #endif
     void NaNRW();
 
+    void PseudoTest_UseBigEndian() { ms_useBigEndianFormat = true; }
+    void PseudoTest_UseLittleEndian() { ms_useBigEndianFormat = false; }
+#if wxUSE_APPLE_IEEE
+    void PseudoTest_UseIEEE754() { ms_useIEEE754 = true; }
+#endif // wxUSE_APPLE_IEEE
+
+    static bool ms_useBigEndianFormat;
+#if wxUSE_APPLE_IEEE
+    static bool ms_useIEEE754;
+#endif // wxUSE_APPLE_IEEE
+
     DECLARE_NO_COPY_CLASS(DataStreamTestCase)
 };
 
@@ -68,22 +95,40 @@ 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;
+#if wxUSE_APPLE_IEEE
+bool DataStreamTestCase::ms_useIEEE754 = false;
+#endif // wxUSE_APPLE_IEEE
+
 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);
+
+#if wxUSE_APPLE_IEEE
+        if ( ms_useIEEE754 )
+            pDataOutput.UseBasicPrecisions();
+#endif // wxUSE_APPLE_IEEE
 
         pDataOutput << fValue;
     }
 
     wxFileInputStream pFileInput( wxT("mytext.dat") );
     wxDataInputStream pDataInput( pFileInput );
+    if ( ms_useBigEndianFormat )
+        pDataInput.BigEndianOrdered(true);
+
+#if wxUSE_APPLE_IEEE
+    if ( ms_useIEEE754 )
+        pDataInput.UseBasicPrecisions();
+#endif // wxUSE_APPLE_IEEE
 
     wxFloat64 fInFloat;