X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba6ea19e4fb8d0b79772bf4eafb2cf67cd25e089..739555e3218220043efa230cca8e44a91ae82d30:/samples/console/console.cpp diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 0bca4581a5..20ca4b3a5e 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -82,6 +82,7 @@ #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 @@ -91,7 +92,7 @@ #undef TEST_ALL static const bool TEST_ALL = TRUE; #else - #define TEST_ARRAYS + #define TEST_UNICODE static const bool TEST_ALL = FALSE; #endif @@ -307,7 +308,19 @@ static void TestDirEnum() { 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); @@ -395,6 +408,38 @@ static void TestDirTraverse() 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 // ---------------------------------------------------------------------------- @@ -822,6 +867,7 @@ static struct FileNameInfo { _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 @@ -1695,6 +1741,7 @@ static void TestMimeFilename() _T("readme.txt"), _T("document.pdf"), _T("image.gif"), + _T("picture.jpeg"), }; for ( size_t n = 0; n < WXSIZEOF(filenames); n++ ) @@ -3026,13 +3073,27 @@ static void TestFileStream() 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()); @@ -3406,9 +3467,26 @@ static void TestFSVolume() #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" @@ -3581,16 +3659,16 @@ static void TestZipFileSystem() #include "wx/wfstream.h" static const wxChar *FILENAME_GZ = _T("test.gz"); -static const char *TEST_DATA = "hello and hello again"; +static const char *TEST_DATA = "hello and hello and hello and hello and hello"; static void TestZlibStreamWrite() { puts("*** Testing Zlib stream reading ***\n"); wxFileOutputStream fileOutStream(FILENAME_GZ); - wxZlibOutputStream ostr(fileOutStream, 0); + wxZlibOutputStream ostr(fileOutStream); printf("Compressing the test string... "); - ostr.Write(TEST_DATA, sizeof(TEST_DATA)); + ostr.Write(TEST_DATA, strlen(TEST_DATA) + 1); if ( !ostr ) { puts("(ERROR: failed)"); @@ -3692,6 +3770,10 @@ struct Date 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 }, @@ -5039,18 +5121,18 @@ public: 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(); @@ -5793,9 +5875,10 @@ int main(int argc, char **argv) #ifdef TEST_DIR if ( TEST_ALL ) { - TestDirEnum(); + TestDirExists(); TestDirTraverse(); } + TestDirEnum(); #endif // TEST_DIR #ifdef TEST_DLLLOADER @@ -5851,7 +5934,7 @@ int main(int argc, char **argv) #endif // TEST_FILE #ifdef TEST_FILENAME - if ( 1 ) + if ( 0 ) { wxFileName fn; fn.Assign("c:\\foo", "bar.baz"); @@ -5860,6 +5943,7 @@ int main(int argc, char **argv) DumpFileName(fn); } + TestFileNameConstruction(); if ( TEST_ALL ) { TestFileNameConstruction(); @@ -5935,10 +6019,9 @@ int main(int argc, char **argv) { TestMimeEnum(); TestMimeOverride(); - TestMimeFilename(); + TestMimeAssociate(); } - - TestMimeAssociate(); + TestMimeFilename(); #endif // TEST_MIME #ifdef TEST_INFO_FUNCTIONS @@ -5989,8 +6072,11 @@ int main(int argc, char **argv) #endif // TEST_SOCKETS #ifdef TEST_STREAMS - TestFileStream(); - TestMemoryStream(); + if ( TEST_ALL ) + { + TestFileStream(); + } + TestMemoryStream(); #endif // TEST_STREAMS #ifdef TEST_THREADS @@ -6056,6 +6142,10 @@ int main(int argc, char **argv) TestFSVolume(); #endif // TEST_VOLUME +#ifdef TEST_UNICODE + TestUnicodeToFromAscii(); +#endif // TEST_UNICODE + #ifdef TEST_WCHAR TestUtf8(); TestEncodingConverter();