X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3dc0174140ffc52a08fd5b64cf839babad09e5cf..e9378bd66114d67bd2380c3dac103f276668b5d3:/samples/console/console.cpp diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 33fdf6d371..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 // ---------------------------------------------------------------------------- @@ -783,6 +828,14 @@ static void DumpFileName(const wxFileName& fn) fn.GetPath(wxPATH_GET_SEPARATOR).c_str()); wxPrintf(_T("with both: \t'%s'\n"), fn.GetPath(wxPATH_GET_SEPARATOR | wxPATH_GET_VOLUME).c_str()); + + wxPuts(_T("The directories in the path are:")); + wxArrayString dirs = fn.GetDirs(); + size_t count = dirs.GetCount(); + for ( size_t n = 0; n < count; n++ ) + { + wxPrintf(_T("\t%u: %s\n"), n, dirs[n].c_str()); + } } static struct FileNameInfo @@ -814,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 @@ -1687,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++ ) @@ -2382,6 +2437,10 @@ static void TestRegExInteractive() // database // ---------------------------------------------------------------------------- +#if !wxUSE_ODBC + #undef TEST_ODBC +#endif + #ifdef TEST_ODBC #include @@ -3014,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()); @@ -3338,7 +3411,7 @@ static void TestVCardWrite() // wxVolume tests // ---------------------------------------------------------------------------- -#if !wxUSE_FSVOLUME +#if !defined(__WIN32__) || !wxUSE_FSVOLUME #undef TEST_VOLUME #endif @@ -3394,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" @@ -3569,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)"); @@ -3680,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 }, @@ -3823,7 +3917,7 @@ static void TestTimeTicks() else { printf(" (ERROR: should be %ld, delta = %ld)\n", - d.ticks, ticks - d.ticks); + (long)d.ticks, (long)(ticks - d.ticks)); } dt = d.DT().ToTimezone(wxDateTime::GMT0); @@ -3836,7 +3930,7 @@ static void TestTimeTicks() else { printf(" (ERROR: should be %ld, delta = %ld)\n", - d.gmticks, ticks - d.gmticks); + (long)d.gmticks, (long)(ticks - d.gmticks)); } } @@ -5027,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(); @@ -5163,9 +5257,9 @@ static void TestArrayOf ## name ## s() \ \ wxArray##name a; \ a.Add(1); \ - a.Add(17); \ - a.Add(5); \ - a.Add(3); \ + a.Add(17,2); \ + a.Add(5,3); \ + a.Add(3,4); \ \ puts("Initially:"); \ PrintArray("a", a); \ @@ -5197,17 +5291,23 @@ static void TestArrayOfObjects() { ArrayBars bars; - Bar bar("second bar"); + Bar bar("second bar (two copies!)"); printf("Initially: %u objects in the array, %u objects total.\n", bars.GetCount(), Bar::GetNumber()); bars.Add(new Bar("first bar")); - bars.Add(bar); + bars.Add(bar,2); printf("Now: %u objects in the array, %u objects total.\n", bars.GetCount(), Bar::GetNumber()); + bars.RemoveAt(1, bars.GetCount() - 1); + + printf("After removing all but first element: %u objects in the " + "array, %u objects total.\n", + bars.GetCount(), Bar::GetNumber()); + bars.Empty(); printf("After Empty(): %u objects in the array, %u objects total.\n", @@ -5619,6 +5719,8 @@ static void TestStringMatch() int main(int argc, char **argv) { + wxApp::CheckBuildOptions(wxBuildOptions()); + wxInitializer initializer; if ( !initializer ) { @@ -5724,7 +5826,7 @@ int main(int argc, char **argv) wxArrayString a1; a1.Add("tiger"); a1.Add("cat"); - a1.Add("lion"); + a1.Add("lion", 3); a1.Add("dog"); a1.Add("human"); a1.Add("ape"); @@ -5739,8 +5841,8 @@ int main(int argc, char **argv) wxSortedArrayString a3(a1); PrintArray("a3", a3); - puts("*** After deleting a string from a1"); - a1.Remove(2); + puts("*** After deleting three strings from a1"); + a1.Remove(2,3); PrintArray("a1", a1); PrintArray("a2", a2); @@ -5773,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 @@ -5835,10 +5938,12 @@ int main(int argc, char **argv) { wxFileName fn; fn.Assign("c:\\foo", "bar.baz"); + fn.Assign("/u/os9-port/Viewer/tvision/WEI2HZ-3B3-14_05-04-00MSC1.asc"); DumpFileName(fn); } + TestFileNameConstruction(); if ( TEST_ALL ) { TestFileNameConstruction(); @@ -5853,6 +5958,7 @@ int main(int argc, char **argv) #ifdef TEST_FILETIME TestFileGetTimes(); + if ( 0 ) TestFileSetTimes(); #endif // TEST_FILETIME @@ -5913,10 +6019,9 @@ int main(int argc, char **argv) { TestMimeEnum(); TestMimeOverride(); - TestMimeFilename(); + TestMimeAssociate(); } - - TestMimeAssociate(); + TestMimeFilename(); #endif // TEST_MIME #ifdef TEST_INFO_FUNCTIONS @@ -5967,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 @@ -6034,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();