#define TEST_STRINGS
#define TEST_THREADS
#define TEST_TIMER
+ #define TEST_UNICODE
// #define TEST_VCARD -- don't enable this (VZ)
#define TEST_VOLUME
#define TEST_WCHAR
#undef TEST_ALL
static const bool TEST_ALL = TRUE;
#else
- #define TEST_ZLIB
+ #define TEST_UNICODE
static const bool TEST_ALL = FALSE;
#endif
{
puts("*** Testing wxDir::GetFirst/GetNext ***");
- wxDir dir(wxGetCwd());
+ wxString cwd = wxGetCwd();
+ if ( !wxDir::Exists(cwd) )
+ {
+ printf("ERROR: current directory '%s' doesn't exist?\n", cwd.c_str());
+ return;
+ }
+
+ wxDir dir("s:/tmp/foo");
+ if ( !dir.IsOpened() )
+ {
+ printf("ERROR: failed to open current directory '%s'.\n", cwd.c_str());
+ return;
+ }
puts("Enumerating everything in current directory:");
TestDirEnumHelper(dir);
dir.Traverse(traverser, _T(""), wxDIR_DIRS | wxDIR_HIDDEN);
}
+static void TestDirExists()
+{
+ wxPuts(_T("*** Testing wxDir::Exists() ***"));
+
+ static const char *dirnames[] =
+ {
+ _T("."),
+#if defined(__WXMSW__)
+ _T("c:"),
+ _T("c:\\"),
+ _T("\\\\share\\file"),
+ _T("c:\\dos"),
+ _T("c:\\dos\\"),
+ _T("c:\\dos\\\\"),
+ _T("c:\\autoexec.bat"),
+#elif defined(__UNIX__)
+ _T("/"),
+ _T("//"),
+ _T("/usr/bin"),
+ _T("/usr//bin"),
+ _T("/usr///bin"),
+#endif
+ };
+
+ for ( size_t n = 0; n < WXSIZEOF(dirnames); n++ )
+ {
+ printf(_T("%-40s: %s\n"),
+ dirnames[n],
+ wxDir::Exists(dirnames[n]) ? _T("exists") : _T("doesn't exist"));
+ }
+}
+
#endif // TEST_DIR
// ----------------------------------------------------------------------------
{ _T("c:\\foo.bar"), _T("c"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
{ _T("c:\\Windows\\command.com"), _T("c"), _T("\\Windows"), _T("command"), _T("com"), TRUE, wxPATH_DOS },
{ _T("\\\\server\\foo.bar"), _T("server"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
+ { _T("\\\\server\\dir\\foo.bar"), _T("server"), _T("\\dir"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
// wxFileName support for Mac file names is broken currently
#if 0
_T("readme.txt"),
_T("document.pdf"),
_T("image.gif"),
+ _T("picture.jpeg"),
};
for ( size_t n = 0; n < WXSIZEOF(filenames); n++ )
static void TestMemoryStream()
{
- puts("*** Testing wxMemoryInputStream ***");
+ wxPuts(_T("*** Testing wxMemoryOutputStream ***"));
+
+ wxMemoryOutputStream memOutStream;
+ wxPrintf(_T("Initially out stream offset: %lu\n"),
+ (unsigned long)memOutStream.TellO());
+
+ for ( const wxChar *p = _T("Hello, stream!"); *p; p++ )
+ {
+ memOutStream.PutC(*p);
+ }
+
+ wxPrintf(_T("Final out stream offset: %lu\n"),
+ (unsigned long)memOutStream.TellO());
+
+ wxPuts(_T("*** Testing wxMemoryInputStream ***"));
wxChar buf[1024];
- wxStrncpy(buf, _T("Hello, stream!"), WXSIZEOF(buf));
+ size_t len = memOutStream.CopyTo(buf, WXSIZEOF(buf));
- wxMemoryInputStream memInpStream(buf, wxStrlen(buf));
- printf(_T("Memory stream size: %u\n"), memInpStream.GetSize());
+ wxMemoryInputStream memInpStream(buf, len);
+ wxPrintf(_T("Memory stream size: %u\n"), memInpStream.GetSize());
while ( !memInpStream.Eof() )
{
putchar(memInpStream.GetC());
#endif // TEST_VOLUME
// ----------------------------------------------------------------------------
-// wide char (Unicode) support
+// wide char and Unicode support
// ----------------------------------------------------------------------------
+#ifdef TEST_UNICODE
+
+static void TestUnicodeToFromAscii()
+{
+ wxPuts(_T("Testing wxString::To/FromAscii()\n"));
+
+ static const char *msg = "Hello, world!";
+ wxString s = wxString::FromAscii(msg);
+
+ wxPrintf(_T("Message in Unicode: %s\n"), s.c_str());
+ printf("Message in ASCII: %s\n", s.ToAscii());
+
+ wxPutchar(_T('\n'));
+}
+
+#endif // TEST_UNICODE
+
#ifdef TEST_WCHAR
#include "wx/strconv.h"
static const Date testDates[] =
{
{ 1, wxDateTime::Jan, 1970, 00, 00, 00, 2440587.5, wxDateTime::Thu, 0, -3600 },
+ { 7, wxDateTime::Feb, 2036, 00, 00, 00, 2464730.5, wxDateTime::Thu, -1, -1 },
+ { 8, wxDateTime::Feb, 2036, 00, 00, 00, 2464731.5, wxDateTime::Fri, -1, -1 },
+ { 1, wxDateTime::Jan, 2037, 00, 00, 00, 2465059.5, wxDateTime::Thu, -1, -1 },
+ { 1, wxDateTime::Jan, 2038, 00, 00, 00, 2465424.5, wxDateTime::Fri, -1, -1 },
{ 21, wxDateTime::Jan, 2222, 00, 00, 00, 2532648.5, wxDateTime::Mon, -1, -1 },
{ 29, wxDateTime::May, 1976, 12, 00, 00, 2442928.0, wxDateTime::Sat, 202219200, 202212000 },
{ 29, wxDateTime::Feb, 1976, 00, 00, 00, 2442837.5, wxDateTime::Sun, 194400000, 194396400 },
virtual ExitCode Entry()
{
- wxPrintf(_T("%s: Thread %d starting to wait for semaphore...\n"),
- wxDateTime::Now().FormatTime().c_str(), m_i);
+ wxPrintf(_T("%s: Thread #%d (%ld) starting to wait for semaphore...\n"),
+ wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
m_sem->Wait();
- wxPrintf(_T("%s: Thread %d acquired the semaphore.\n"),
- wxDateTime::Now().FormatTime().c_str(), m_i);
+ wxPrintf(_T("%s: Thread #%d (%ld) acquired the semaphore.\n"),
+ wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
Sleep(1000);
- wxPrintf(_T("%s: Thread %d releasing the semaphore.\n"),
- wxDateTime::Now().FormatTime().c_str(), m_i);
+ wxPrintf(_T("%s: Thread #%d (%ld) releasing the semaphore.\n"),
+ wxDateTime::Now().FormatTime().c_str(), m_i, (long)GetId());
m_sem->Post();
#ifdef TEST_DIR
if ( TEST_ALL )
{
- TestDirEnum();
+ TestDirExists();
TestDirTraverse();
}
+ TestDirEnum();
#endif // TEST_DIR
#ifdef TEST_DLLLOADER
#endif // TEST_FILE
#ifdef TEST_FILENAME
- if ( 1 )
+ if ( 0 )
{
wxFileName fn;
fn.Assign("c:\\foo", "bar.baz");
DumpFileName(fn);
}
+ TestFileNameConstruction();
if ( TEST_ALL )
{
TestFileNameConstruction();
{
TestMimeEnum();
TestMimeOverride();
- TestMimeFilename();
+ TestMimeAssociate();
}
-
- TestMimeAssociate();
+ TestMimeFilename();
#endif // TEST_MIME
#ifdef TEST_INFO_FUNCTIONS
#endif // TEST_SOCKETS
#ifdef TEST_STREAMS
- TestFileStream();
- TestMemoryStream();
+ if ( TEST_ALL )
+ {
+ TestFileStream();
+ }
+ TestMemoryStream();
#endif // TEST_STREAMS
#ifdef TEST_THREADS
TestFSVolume();
#endif // TEST_VOLUME
+#ifdef TEST_UNICODE
+ TestUnicodeToFromAscii();
+#endif // TEST_UNICODE
+
#ifdef TEST_WCHAR
TestUtf8();
TestEncodingConverter();