added support for 64 bit ints in wx stream classes (patch 1203970)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-02-11 16:51:34 +00:00
parent 87152bb53d
commit 216a72f3b9
10 changed files with 883 additions and 52 deletions

View File

@@ -24,6 +24,10 @@
#include "wx/txtstrm.h"
#include "wx/wfstream.h"
#if wxUSE_LONGLONG
#include "wx/longlong.h"
#endif
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
@@ -36,9 +40,17 @@ public:
private:
CPPUNIT_TEST_SUITE( TextStreamTestCase );
CPPUNIT_TEST( Endline );
#if wxUSE_LONGLONG
CPPUNIT_TEST( TestLongLong );
CPPUNIT_TEST( TestLongLong );
#endif
CPPUNIT_TEST_SUITE_END();
void Endline();
#if wxUSE_LONGLONG
void TestLongLong();
void TestULongLong();
#endif // wxUSE_LONGLONG
DECLARE_NO_COPY_CLASS(TextStreamTestCase)
@@ -85,3 +97,64 @@ void TextStreamTestCase::Endline()
delete pInFile;
}
#if wxUSE_LONGLONG
template <typename T>
static void DoTestRoundTrip(const T *values, size_t numValues)
{
{
wxFileOutputStream fileOut(_T("test.txt"));
wxTextOutputStream textOut(fileOut);
for ( size_t n = 0; n < numValues; n++ )
{
textOut << values[n] << endl;
}
}
{
wxFileInputStream fileIn(_T("test.txt"));
wxTextInputStream textIn(fileIn);
T value;
for ( size_t n = 0; n < numValues; n++ )
{
textIn >> value;
CPPUNIT_ASSERT( value == values[n] );
}
}
}
void TextStreamTestCase::TestLongLong()
{
static const wxLongLong llvalues[] =
{
0,
1,
-1,
0x12345678l,
-0x12345678l,
wxLL(0x123456789abcdef0),
wxLL(-0x123456789abcdef0),
};
DoTestRoundTrip(llvalues, WXSIZEOF(llvalues));
}
void TextStreamTestCase::TestULongLong()
{
static const wxULongLong ullvalues[] =
{
0,
1,
0x12345678l,
wxULL(0x123456789abcdef0),
};
DoTestRoundTrip(ullvalues, WXSIZEOF(ullvalues));
}
#endif // wxUSE_LONGLONG