git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12970
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// conditional compilation
// ----------------------------------------------------------------------------
// conditional compilation
// ----------------------------------------------------------------------------
+/*
+ A note about all these conditional compilation macros: this file is used
+ both as a test suite for various non-GUI wxWindows classes and as a
+ scratchpad for quick tests. So there are two compilation modes: if you
+ define TEST_ALL all tests are run, otherwise you may enable the individual
+ tests individually in the "#else" branch below.
+ */
+
// what to test (in alphabetic order)? uncomment the line below to do all tests
// what to test (in alphabetic order)? uncomment the line below to do all tests
#ifdef TEST_ALL
#define TEST_ARRAYS
#define TEST_CHARSET
#ifdef TEST_ALL
#define TEST_ARRAYS
#define TEST_CHARSET
#define TEST_WCHAR
#define TEST_ZIP
#define TEST_ZLIB
#define TEST_WCHAR
#define TEST_ZIP
#define TEST_ZLIB
+
+ #undef TEST_ALL
+ static const bool TEST_ALL = TRUE;
#else
#define TEST_FILENAME
#else
#define TEST_FILENAME
+
+ static const bool TEST_ALL = FALSE;
-#ifdef TEST_SNGLINST
- #include "wx/snglinst.h"
-#endif // TEST_SNGLINST
+// some tests are interactive, define this to run them
+#ifdef TEST_INTERACTIVE
+ #undef TEST_INTERACTIVE
+
+ static const bool TEST_INTERACTIVE = FALSE;
+#else
+ static const bool TEST_INTERACTIVE = FALSE;
+#endif
// ----------------------------------------------------------------------------
// test class for container objects
// ----------------------------------------------------------------------------
// test class for container objects
printf("\targc = %u\n", count);
for ( size_t arg = 0; arg < count; arg++ )
{
printf("\targc = %u\n", count);
for ( size_t arg = 0; arg < count; arg++ )
{
- printf("\targv[%u] = %s\n", arg, args[arg]);
+ printf("\targv[%u] = %s\n", arg, args[arg].c_str());
// Mac file names
{ _T("Volume:Dir:File"), _T("Volume"), _T("Dir"), _T("File"), _T(""), TRUE, wxPATH_MAC },
// Mac file names
{ _T("Volume:Dir:File"), _T("Volume"), _T("Dir"), _T("File"), _T(""), TRUE, wxPATH_MAC },
+ { _T("Volume:Dir:Subdir:File"), _T("Volume"), _T("Dir:Subdir"), _T("File"), _T(""), TRUE, wxPATH_MAC },
+ { _T("Volume:"), _T("Volume"), _T(""), _T(""), _T(""), TRUE, wxPATH_MAC },
{ _T(":Dir:File"), _T(""), _T("Dir"), _T("File"), _T(""), FALSE, wxPATH_MAC },
{ _T(":Dir:File"), _T(""), _T("Dir"), _T("File"), _T(""), FALSE, wxPATH_MAC },
- { _T(":File"), _T(""), _T(""), _T("File"), _T(""), FALSE, wxPATH_MAC },
- { _T("File"), _T(""), _T(""), _T("File"), _T(""), FALSE, wxPATH_MAC },
+ { _T(":File.Ext"), _T(""), _T(""), _T("File"), _T(".Ext"), FALSE, wxPATH_MAC },
+ { _T("File.Ext"), _T(""), _T(""), _T("File"), _T(".Ext"), FALSE, wxPATH_MAC },
// VMS file names
{ _T("device:[dir1.dir2.dir3]file.txt"), _T("device"), _T("dir1.dir2.dir3"), _T("file"), _T("txt"), TRUE, wxPATH_VMS },
// VMS file names
{ _T("device:[dir1.dir2.dir3]file.txt"), _T("device"), _T("dir1.dir2.dir3"), _T("file"), _T("txt"), TRUE, wxPATH_VMS },
case wxPATH_VMS:
// TODO: I don't know how this is supposed to work there
continue;
case wxPATH_VMS:
// TODO: I don't know how this is supposed to work there
continue;
+
+ case wxPATH_NATIVE: // make gcc happy
+ default:
+ wxFAIL_MSG( "unexpected path format" );
}
printf("'%s' relative to '%s': ",
}
printf("'%s' relative to '%s': ",
{
wxFileName fn(_T("testdata.fc"));
{
wxFileName fn(_T("testdata.fc"));
- wxDateTime dtAccess, dtMod, dtChange;
if ( !fn.Touch() )
{
wxPrintf(_T("ERROR: Touch() failed.\n"));
if ( !fn.Touch() )
{
wxPrintf(_T("ERROR: Touch() failed.\n"));
{
static const char *languageNames[] =
{
{
static const char *languageNames[] =
{
- "DEFAULT",
- "UNKNOWN",
+ "DEFAULT",
+ "UNKNOWN",
"ABKHAZIAN",
"AFAR",
"AFRIKAANS",
"ABKHAZIAN",
"AFAR",
"AFRIKAANS",
};
const wxChar *pattern = _T("([a-z]+)[^0-9]*([0-9]+)");
};
const wxChar *pattern = _T("([a-z]+)[^0-9]*([0-9]+)");
wxPrintf(_T("Using pattern '%s' for replacement.\n"), pattern);
wxPrintf(_T("Using pattern '%s' for replacement.\n"), pattern);
// entry point
// ----------------------------------------------------------------------------
// entry point
// ----------------------------------------------------------------------------
+#ifdef TEST_SNGLINST
+ #include "wx/snglinst.h"
+#endif // TEST_SNGLINST
+
int main(int argc, char **argv)
{
wxInitializer initializer;
int main(int argc, char **argv)
{
wxInitializer initializer;
#endif // TEST_CMDLINE
#ifdef TEST_STRINGS
#endif // TEST_CMDLINE
#ifdef TEST_STRINGS
{
TestPChar();
TestString();
{
TestPChar();
TestString();
TestStringTokenizer();
TestStringReplace();
}
TestStringTokenizer();
TestStringReplace();
}
+ else
+ {
+ TestStringMatch();
+ }
#endif // TEST_STRINGS
#ifdef TEST_ARRAYS
#endif // TEST_STRINGS
#ifdef TEST_ARRAYS
- wxArrayString a1;
- a1.Add("tiger");
- a1.Add("cat");
- a1.Add("lion");
- a1.Add("dog");
- a1.Add("human");
- a1.Add("ape");
+ wxArrayString a1;
+ a1.Add("tiger");
+ a1.Add("cat");
+ a1.Add("lion");
+ a1.Add("dog");
+ a1.Add("human");
+ a1.Add("ape");
- puts("*** Initially:");
+ puts("*** Initially:");
- wxArrayString a2(a1);
- PrintArray("a2", a2);
+ wxArrayString a2(a1);
+ PrintArray("a2", a2);
- wxSortedArrayString a3(a1);
- PrintArray("a3", a3);
+ wxSortedArrayString a3(a1);
+ PrintArray("a3", a3);
- puts("*** After deleting a string from a1");
- a1.Remove(2);
+ puts("*** After deleting a string from a1");
+ a1.Remove(2);
- PrintArray("a1", a1);
- PrintArray("a2", a2);
- PrintArray("a3", a3);
+ PrintArray("a1", a1);
+ PrintArray("a2", a2);
+ PrintArray("a3", a3);
- puts("*** After reassigning a1 to a2 and a3");
- a3 = a2 = a1;
- PrintArray("a2", a2);
- PrintArray("a3", a3);
+ puts("*** After reassigning a1 to a2 and a3");
+ a3 = a2 = a1;
+ PrintArray("a2", a2);
+ PrintArray("a3", a3);
- puts("*** After sorting a1");
- a1.Sort();
- PrintArray("a1", a1);
+ puts("*** After sorting a1");
+ a1.Sort();
+ PrintArray("a1", a1);
- puts("*** After sorting a1 in reverse order");
- a1.Sort(TRUE);
- PrintArray("a1", a1);
+ puts("*** After sorting a1 in reverse order");
+ a1.Sort(TRUE);
+ PrintArray("a1", a1);
- puts("*** After sorting a1 by the string length");
- a1.Sort(StringLenCompare);
- PrintArray("a1", a1);
+ puts("*** After sorting a1 by the string length");
+ a1.Sort(StringLenCompare);
+ PrintArray("a1", a1);
+ TestArrayOfObjects();
+ }
+ else
+ {
+ TestArrayOfInts();
#endif // TEST_ARRAYS
#ifdef TEST_DIR
#endif // TEST_ARRAYS
#ifdef TEST_DIR
#endif // TEST_DIR
#ifdef TEST_DLLLOADER
#endif // TEST_DIR
#ifdef TEST_DLLLOADER
#endif // TEST_LOG
#ifdef TEST_FILE
#endif // TEST_LOG
#ifdef TEST_FILE
{
TestFileRead();
TestTextFileRead();
{
TestFileRead();
TestTextFileRead();
#endif // TEST_FILE
#ifdef TEST_FILENAME
#endif // TEST_FILE
#ifdef TEST_FILENAME
- TestFileNameMakeRelative();
- if ( 0 )
- TestFileNameConstruction();
- TestFileNameSplit();
- TestFileNameTemp();
+ TestFileNameConstruction();
+ TestFileNameMakeRelative();
+ TestFileNameSplit();
+ TestFileNameTemp();
TestFileNameCwd();
TestFileNameComparison();
TestFileNameOperations();
TestFileNameCwd();
TestFileNameComparison();
TestFileNameOperations();
wxLog::AddTraceMask(FTP_TRACE_MASK);
if ( TestFtpConnect() )
{
wxLog::AddTraceMask(FTP_TRACE_MASK);
if ( TestFtpConnect() )
{
- TestFtpFileSize();
- if ( 0 )
{
TestFtpList();
TestFtpDownload();
TestFtpMisc();
{
TestFtpList();
TestFtpDownload();
TestFtpMisc();
- if ( 0 )
- TestFtpInteractive();
+
+ if ( TEST_INTERACTIVE )
+ TestFtpInteractive();
}
//else: connecting to the FTP server failed
}
//else: connecting to the FTP server failed
{
TestMultiplication();
TestDivision();
{
TestMultiplication();
TestDivision();
TestLongLongConversion();
TestBitOperations();
TestLongLongComparison();
TestLongLongConversion();
TestBitOperations();
TestLongLongComparison();
#endif // TEST_LONGLONG
#ifdef TEST_HASH
#endif // TEST_LONGLONG
#ifdef TEST_HASH
#endif // TEST_MIME
#ifdef TEST_INFO_FUNCTIONS
#endif // TEST_MIME
#ifdef TEST_INFO_FUNCTIONS
- TestDiskInfo();
- if ( 0 )
{
TestOsInfo();
TestUserInfo();
{
TestOsInfo();
TestUserInfo();
}
#endif // TEST_INFO_FUNCTIONS
}
#endif // TEST_INFO_FUNCTIONS
#ifdef TEST_REGEX
// TODO: write a real test using src/regex/tests file
#ifdef TEST_REGEX
// TODO: write a real test using src/regex/tests file
{
TestRegExCompile();
TestRegExMatch();
TestRegExSubmatch();
{
TestRegExCompile();
TestRegExMatch();
TestRegExSubmatch();
- TestRegExInteractive();
+ TestRegExReplacement();
+
+ if ( TEST_INTERACTIVE )
+ TestRegExInteractive();
- TestRegExReplacement();
#endif // TEST_REGEX
#ifdef TEST_REGISTRY
#endif // TEST_REGEX
#ifdef TEST_REGISTRY
- if ( 0 )
- TestRegistryRead();
TestRegistryAssociation();
#endif // TEST_REGISTRY
#ifdef TEST_SOCKETS
TestRegistryAssociation();
#endif // TEST_REGISTRY
#ifdef TEST_SOCKETS
- if ( 0 )
- {
- TestSocketServer();
- }
- TestSocketClient();
+ TestSocketServer();
+ TestSocketClient();
#endif // TEST_SOCKETS
#ifdef TEST_STREAMS
#endif // TEST_SOCKETS
#ifdef TEST_STREAMS
TestFileStream();
TestMemoryStream();
#endif // TEST_STREAMS
TestFileStream();
TestMemoryStream();
#endif // TEST_STREAMS
#endif // TEST_TIMER
#ifdef TEST_DATETIME
#endif // TEST_TIMER
#ifdef TEST_DATETIME
{
TestTimeSet();
TestTimeStatic();
{
TestTimeSet();
TestTimeStatic();
TestTimeArithmetics();
TestTimeHolidays();
TestTimeFormat();
TestTimeArithmetics();
TestTimeHolidays();
TestTimeFormat();
TestTimeMS();
TestTimeZoneBug();
}
TestTimeMS();
TestTimeZoneBug();
}
- TestTimeSpanFormat();
- if ( 0 )
+
+ if ( TEST_INTERACTIVE )
TestDateTimeInteractive();
#endif // TEST_DATETIME
TestDateTimeInteractive();
#endif // TEST_DATETIME
#endif // TEST_USLEEP
#ifdef TEST_VCARD
#endif // TEST_USLEEP
#ifdef TEST_VCARD
TestVCardRead();
TestVCardWrite();
#endif // TEST_VCARD
TestVCardRead();
TestVCardWrite();
#endif // TEST_VCARD
#endif // TEST_WCHAR
#ifdef TEST_ZIP
#endif // TEST_WCHAR
#ifdef TEST_ZIP
- if ( 0 )
- TestZipStreamRead();
TestZipFileSystem();
#endif // TEST_ZIP
#ifdef TEST_ZLIB
TestZipFileSystem();
#endif // TEST_ZIP
#ifdef TEST_ZLIB
TestZlibStreamWrite();
TestZlibStreamRead();
#endif // TEST_ZLIB
TestZlibStreamWrite();
TestZlibStreamRead();
#endif // TEST_ZLIB