From a9f3fb07a0fd25c4769e92a7b871f497ef523a07 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 16 Oct 2010 23:05:20 +0000 Subject: [PATCH] Disable tests for UTF-encoded files in FileTestCase in ANSI build. These tests didn't work correctly in ANSI build because the conversion parameter of wxFile::Write() isn't used there, the contents of an ANSI wxString is always written to the file as is -- hence reading it back using UTF-16 or UTF-32 conversion fails. The test would need to be totally rewritten for ANSI build of wx and it wouldn't test wxFile but rather conversion functions already tested elsewhere so just disable it instead. This fixes a crash (due to passing NULL pointer to memcmp()) which prevented the test suite from running to completion in ANSI build. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/file/filetest.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp index 85e70ab8e6..446a59fa8d 100644 --- a/tests/file/filetest.cpp +++ b/tests/file/filetest.cpp @@ -34,15 +34,19 @@ public: private: CPPUNIT_TEST_SUITE( FileTestCase ); +#if wxUSE_UNICODE CPPUNIT_TEST( RoundTripUTF8 ); CPPUNIT_TEST( RoundTripUTF16 ); CPPUNIT_TEST( RoundTripUTF32 ); +#endif // wxUSE_UNICODE CPPUNIT_TEST( TempFile ); CPPUNIT_TEST_SUITE_END(); +#if wxUSE_UNICODE void RoundTripUTF8() { DoRoundTripTest(wxConvUTF8); } void RoundTripUTF16() { DoRoundTripTest(wxMBConvUTF16()); } void RoundTripUTF32() { DoRoundTripTest(wxMBConvUTF32()); } +#endif // wxUSE_UNICODE void DoRoundTripTest(const wxMBConv& conv); void TempFile(); @@ -61,6 +65,8 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( FileTestCase, "FileTestCase" ); // tests implementation // ---------------------------------------------------------------------------- +#if wxUSE_UNICODE + void FileTestCase::DoRoundTripTest(const wxMBConv& conv) { TestFile tf; @@ -83,17 +89,12 @@ void FileTestCase::DoRoundTripTest(const wxMBConv& conv) CPPUNIT_ASSERT_EQUAL( len, fin.Read(buf.data(), len) ); wxWCharBuffer wbuf(conv.cMB2WC(buf)); -#if wxUSE_UNICODE CPPUNIT_ASSERT_EQUAL( data, wbuf ); -#else // !wxUSE_UNICODE - CPPUNIT_ASSERT - ( - memcmp(wbuf, L"Hello\0UTF", data.length()*sizeof(wchar_t)) == 0 - ); -#endif // wxUSE_UNICODE/!wxUSE_UNICODE } } +#endif // wxUSE_UNICODE + void FileTestCase::TempFile() { wxTempFile tmpFile; -- 2.45.2