Merge branch 'appveyor-tests'

Fix several problems in tests under MSW (mostly with MinGW) and enable
building and running them on AppVeyor CI.
This commit is contained in:
Vadim Zeitlin
2017-11-25 19:18:14 +01:00
20 changed files with 381 additions and 255 deletions

View File

@@ -39,7 +39,7 @@ install: git submodule update --init
before_build:
- ps: |
$env:PATH = $env:PATH -replace "C:\\Program Files \(x86\)\\Git\\bin",""
$env:PATH = $env:PATH -replace "C:\\Program Files\\Git\\usr\\bin",""
if (($env:compiler -ne "msys2") -and ($env:compiler -ne "cygwin")) {
gc include\wx\msw\setup0.h |
%{$_ -replace "define wxUSE_STL 0", "define wxUSE_STL $env:wxUSE_STL"} |
@@ -50,6 +50,6 @@ before_build:
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
build_script: build\tools\appveyor.bat
build_script: c:\projects\wxwidgets\build\tools\appveyor.bat
test: off
test_script: c:\projects\wxwidgets\build\tools\appveyor-test.bat

49
build/tools/appveyor-test.bat Executable file
View File

@@ -0,0 +1,49 @@
echo.
echo --- Running tests.
echo.
cd c:\projects\wxwidgets\tests
goto %TOOLSET%
:msbuild
PATH=C:\projects\wxwidgets\lib\vc_x64_dll;%PATH%
.\vc_x64_mswudll\test.exe
if errorlevel 1 goto :error
.\vc_x64_mswudll\test_gui.exe
goto :eof
:nmake
if "%BUILD%"=="debug" set debug_suffix=d
.\vc_mswu%debug_suffix%\test.exe
if errorlevel 1 goto :error
.\vc_mswu%debug_suffix%\test_gui.exe
goto :eof
:mingw
.\gcc_mswud\test.exe
if errorlevel 1 goto :error
.\gcc_mswud\test_gui.exe
goto :eof
:msys2
PATH=C:\projects\wxwidgets\lib;%PATH%
.\test.exe
if errorlevel 1 goto :error
.\test_gui.exe
goto :eof
:cygwin
PATH=C:\projects\wxwidgets\lib;%PATH%
.\test.exe
.\test_gui.exe
echo.
echo --- Note: ignoring possible test failures under Cygwin
echo.
exit /b 0
:error
echo.
echo !!! Non-GUI test failed.
echo.
goto :eof

View File

@@ -3,27 +3,33 @@ goto %TOOLSET%
:msbuild
cd build\msw
msbuild /m:2 /v:n /p:Platform=%ARCH% /p:Configuration="%CONFIGURATION%" wx_vc12.sln
cd ..\..\tests
msbuild /m:2 /v:n /p:Platform=%ARCH% /p:Configuration="%CONFIGURATION%" test_vc12.sln
msbuild /m:2 /v:n /p:Platform=%ARCH% /p:Configuration="%CONFIGURATION%" test_gui_vc12.sln
goto :eof
:nmake
cd build\msw
call "C:\Program Files (x86)\Microsoft Visual Studio %VS%\VC\vcvarsall.bat" %ARCH%
nmake -f makefile.vc BUILD=%BUILD%
cd ..\..\tests
nmake -f makefile.vc BUILD=%BUILD%
goto :eof
:mingw
cd build\msw
path C:\MinGW\bin;%path%
echo --- Tools versions:
g++ --version | head -1
mingw32-make --version | head -1
ar --version | head -1
path C:\MinGW\bin;
g++ --version | "C:\Program Files\Git\usr\bin\head" -n 1
mingw32-make --version | "C:\Program Files\Git\usr\bin\head" -n 1
ar --version | "C:\Program Files\Git\usr\bin\head" -n 1
echo.
echo --- Starting the build
echo.
mingw32-make -f makefile.gcc setup_h BUILD=debug SHARED=0
mingw32-make -j3 -f makefile.gcc BUILD=debug SHARED=0
cd ..\..\tests
mingw32-make -j3 -f makefile.gcc BUILD=debug SHARED=0
goto :eof
:msys2
@@ -32,7 +38,7 @@ set CHERE_INVOKING=yes
:: Workaround for "configure: Bad file descriptor"
perl -i".bak" -pe "s/^test -n \".DJDIR\"/#$&/" configure
bash -lc "g++ --version"
bash -lc "CXXFLAGS=-Wno-deprecated-declarations ./configure --disable-optimise && make -j3"
bash -lc "CXXFLAGS=-Wno-deprecated-declarations ./configure --disable-optimise && make -j3 && make -j3 -C tests"
goto :eof
:cygwin
@@ -42,5 +48,5 @@ set CHERE_INVOKING=yes
:: Workaround for "configure: Bad file descriptor"
perl -i".bak" -pe "s/^test -n \".DJDIR\"/#$&/" configure
bash -lc "g++ --version"
bash -lc "LDFLAGS=-L/usr/lib/w32api ./configure --disable-optimise --disable-shared && make -j3"
bash -lc "LDFLAGS=-L/usr/lib/w32api ./configure --disable-optimise --disable-shared && make -j3 && make -j3 -C tests"
goto :eof

View File

@@ -797,6 +797,7 @@ struct wxPrintfConvSpecParser
wxPrintfConvSpecParser(const CharType *fmt)
{
nspecs =
nargs = 0;
posarg_present =
nonposarg_present = false;
@@ -817,7 +818,7 @@ struct wxPrintfConvSpecParser
continue;
}
ConvSpec *spec = &specs[nargs];
ConvSpec *spec = &specs[nspecs];
spec->Init();
// attempt to parse this format specification
@@ -838,7 +839,7 @@ struct wxPrintfConvSpecParser
for ( unsigned n = 0; n < numAsterisks; n++ )
{
if ( ++nargs == wxMAX_SVNPRINTF_ARGUMENTS )
if ( ++nspecs == wxMAX_SVNPRINTF_ARGUMENTS )
break;
// TODO: we need to support specifiers of the form "%2$*1$s"
@@ -861,19 +862,19 @@ struct wxPrintfConvSpecParser
);
}
specs[nargs] = *spec;
specs[nspecs] = *spec;
// make an entry for '*' and point to it from pspec
spec->Init();
spec->m_type = wxPAT_STAR;
pspec[nargs - 1] = spec;
pspec[nargs++] = spec;
spec = &specs[nargs];
spec = &specs[nspecs];
}
// If we hit the maximal number of arguments inside the inner
// loop, break out of the outer one as well.
if ( nargs == wxMAX_SVNPRINTF_ARGUMENTS )
if ( nspecs == wxMAX_SVNPRINTF_ARGUMENTS )
break;
}
@@ -884,25 +885,44 @@ struct wxPrintfConvSpecParser
// the positional arguments start from number 1 so we need
// to adjust the index
spec->m_pos--;
// We could be reusing an already existing argument, only
// increment their number if it's really a new one.
if ( spec->m_pos >= nargs )
{
nargs = spec->m_pos + 1;
}
else if ( pspec[spec->m_pos] ) // Had we seen it before?
{
// Check that the type specified this time is compatible
// with the previously-specified type.
wxASSERT_MSG
(
pspec[spec->m_pos]->m_type == spec->m_type,
"Positional parameter specified multiple times "
"with incompatible types."
);
}
posarg_present = true;
}
else // not a positional argument...
{
spec->m_pos = nargs;
spec->m_pos = nargs++;
nonposarg_present = true;
}
// this conversion specifier is tied to the pos-th argument...
pspec[spec->m_pos] = spec;
if ( ++nargs == wxMAX_SVNPRINTF_ARGUMENTS )
if ( ++nspecs == wxMAX_SVNPRINTF_ARGUMENTS )
break;
}
// warn if we lost any arguments (the program probably will crash
// anyhow because of stack corruption...)
if ( nargs == wxMAX_SVNPRINTF_ARGUMENTS )
if ( nspecs == wxMAX_SVNPRINTF_ARGUMENTS )
{
wxFAIL_MSG
(
@@ -919,6 +939,10 @@ struct wxPrintfConvSpecParser
}
// total number of valid elements in specs
unsigned nspecs;
// total number of arguments, also number of valid elements in pspec, and
// always less than or (usually) equal to nspecs
unsigned nargs;
// all format specifications in this format string in order of their

View File

@@ -139,7 +139,7 @@ static int wxDoVsnprintf(CharType *buf, size_t lenMax,
// finally, process each conversion specifier with its own argument
const CharType *toparse = format;
for (i=0; i < parser.nargs; i++)
for (i=0; i < parser.nspecs; i++)
{
wxPrintfConvSpec<CharType>& spec = parser.specs[i];

View File

@@ -376,6 +376,12 @@ void TextCtrlTestCase::ProcessEnter()
void TextCtrlTestCase::Url()
{
#if wxUSE_UIACTIONSIMULATOR && defined(__WXMSW__)
// For some unfathomable reason, this test consistently fails when run in
// AppVeyor CI environment, even though it passes locally, so skip it
// there.
if ( wxGetEnv("APPVEYOR", NULL) )
return;
delete m_text;
CreateText(wxTE_RICH | wxTE_AUTO_URL);

View File

@@ -242,7 +242,7 @@ void FontTestCase::NativeFontInfo()
{
unsigned numFonts;
const wxFont *pf = GetTestFonts(numFonts);
for ( size_t n = 0; n < numFonts; n++ )
for ( unsigned n = 0; n < numFonts; n++ )
{
wxFont test(*pf++);
@@ -254,7 +254,7 @@ void FontTestCase::NativeFontInfo()
CPPUNIT_ASSERT( temp.SetNativeFontInfo(nid) );
CPPUNIT_ASSERT( temp.IsOk() );
WX_ASSERT_MESSAGE(
("Test #%lu failed\ndump of test font: \"%s\"\ndump of temp font: \"%s\"", \
("Test #%u failed\ndump of test font: \"%s\"\ndump of temp font: \"%s\"", \
n, DumpFont(&test), DumpFont(&temp)),
temp == test );
}
@@ -296,7 +296,7 @@ void FontTestCase::NativeFontInfoUserDesc()
{
unsigned numFonts;
const wxFont *pf = GetTestFonts(numFonts);
for ( size_t n = 0; n < numFonts; n++ )
for ( unsigned n = 0; n < numFonts; n++ )
{
wxFont test(*pf++);
@@ -311,7 +311,7 @@ void FontTestCase::NativeFontInfoUserDesc()
#ifdef __WXGTK__
// Pango saves/restores all font info in the user-friendly string:
WX_ASSERT_MESSAGE(
("Test #%lu failed; native info user desc was \"%s\" for test and \"%s\" for temp2", \
("Test #%u failed; native info user desc was \"%s\" for test and \"%s\" for temp2", \
n, niud, temp2.GetNativeFontInfoUserDesc()),
temp2 == test );
#else

View File

@@ -311,7 +311,9 @@ void FormatConverterTestCase::check(const wxString& input,
#if wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY
result = (const wchar_t*)wxFormatString(input);
#ifdef __WINDOWS__
#if defined(__WINDOWS__) && \
!defined(__CYGWIN__) && \
!defined(__MINGW32__)
wxString expectedWchar(expectedWcharWindows);
#else
wxString expectedWchar(expectedWcharUnix);

View File

@@ -18,44 +18,18 @@
#include "wx/filefn.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
class PathListTestCase : public CppUnit::TestCase
{
public:
PathListTestCase() { }
private:
CPPUNIT_TEST_SUITE( PathListTestCase );
CPPUNIT_TEST( FindValidPath );
CPPUNIT_TEST_SUITE_END();
void FindValidPath();
wxDECLARE_NO_COPY_CLASS(PathListTestCase);
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( PathListTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( PathListTestCase, "PathListTestCase" );
void PathListTestCase::FindValidPath()
TEST_CASE("wxPathList::FindValidPath", "[file][path]")
{
#ifdef __UNIX__
#define CMD_IN_PATH wxT("ls")
#define CMD_IN_PATH "ls"
#else
#define CMD_IN_PATH wxT("cmd.exe")
#define CMD_IN_PATH "cmd.exe"
#endif
wxPathList pathlist;
pathlist.AddEnvList(wxT("PATH"));
wxString path = pathlist.FindValidPath(CMD_IN_PATH);
CPPUNIT_ASSERT( !path.empty() );
INFO( CMD_IN_PATH " not found in " << wxGetenv("PATH") );
CHECK( !path.empty() );
}

View File

@@ -188,6 +188,8 @@ void StringTestCase::Format()
"4 world hello world 3",
wxString::Format("%4$d %2$s %1$s %2$s %3$d", "hello", "world", 3, 4)
);
CHECK( wxString::Format("%1$o %1$d %1$x", 20) == "24 20 14" );
}
void StringTestCase::FormatUnicode()

View File

@@ -206,12 +206,12 @@ void VarArgTestCase::Sscanf()
wxSscanf(input, "%d %s", &i, &str);
CPPUNIT_ASSERT( i == 42 );
CPPUNIT_ASSERT( wxStrcmp(str, "test") == 0 );
CPPUNIT_ASSERT( wxString(str) == "test" );
i = 0;
wxSscanf(input, L"%d %s", &i, &wstr);
CPPUNIT_ASSERT( i == 42 );
CPPUNIT_ASSERT( wxStrcmp(wstr, "test") == 0 );
CPPUNIT_ASSERT( wxString(wstr) == "test" );
}
void VarArgTestCase::RepeatedPrintf()

View File

@@ -552,8 +552,10 @@ void VsnprintfTestCase::DoMisc(
std::string errMsg(errStr.mb_str());
std::string overflowMsg(overflowStr.mb_str());
CPPUNIT_ASSERT_MESSAGE(errMsg,
(expectedLen == -1 && size_t(n) >= max) || expectedLen == n);
if ( size_t(n) < max )
CPPUNIT_ASSERT_MESSAGE(errMsg, expectedLen == n);
else
CPPUNIT_ASSERT_MESSAGE(errMsg, expectedLen == -1);
CPPUNIT_ASSERT_MESSAGE(errMsg, expectedString == buf);

View File

@@ -350,9 +350,12 @@ extern bool IsAutomaticTest()
s_isAutomatic = username == "buildbot" ||
username.Matches("sandbox*");
// Also recognize Travis CI environment.
// Also recognize Travis and AppVeyor CI environments.
if ( !s_isAutomatic )
s_isAutomatic = wxGetEnv("TRAVIS", NULL);
{
s_isAutomatic = wxGetEnv("TRAVIS", NULL) ||
wxGetEnv("APPVEYOR", NULL);
}
}
return s_isAutomatic == 1;

View File

@@ -28,52 +28,68 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.Build.0 = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.Build.0 = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.Build.0 = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.Build.0 = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.Build.0 = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.Build.0 = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.Build.0 = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.Build.0 = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.Build.0 = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.Build.0 = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.Build.0 = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.Build.0 = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.Build.0 = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.Build.0 = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.Build.0 = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.Build.0 = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.Build.0 = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.Build.0 = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.Build.0 = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.Build.0 = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -28,52 +28,68 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.Build.0 = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.Build.0 = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.Build.0 = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.Build.0 = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.Build.0 = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.Build.0 = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.Build.0 = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.Build.0 = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.Build.0 = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.Build.0 = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.Build.0 = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.Build.0 = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.Build.0 = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.Build.0 = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.Build.0 = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.Build.0 = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.Build.0 = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.Build.0 = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.Build.0 = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.Build.0 = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -30,52 +30,68 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.Build.0 = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.Build.0 = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.Build.0 = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.Build.0 = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.Build.0 = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.Build.0 = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.Build.0 = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.Build.0 = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.Build.0 = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.Build.0 = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.Build.0 = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.Build.0 = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.Build.0 = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.Build.0 = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.Build.0 = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.Build.0 = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.Build.0 = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.Build.0 = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.Build.0 = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.Build.0 = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -30,52 +30,68 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.Build.0 = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.Build.0 = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.Build.0 = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.Build.0 = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.Build.0 = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.Build.0 = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.Build.0 = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.Build.0 = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.Build.0 = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.Build.0 = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.Build.0 = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.Build.0 = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.Build.0 = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.Build.0 = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.Build.0 = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.Build.0 = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.Build.0 = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.Build.0 = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.Build.0 = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.Build.0 = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -30,52 +30,68 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.ActiveCfg = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|x64.Build.0 = Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|x64.Build.0 = DLL Debug|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.ActiveCfg = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|x64.Build.0 = DLL Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.ActiveCfg = Release|x64
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|x64.Build.0 = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|Win32.Build.0 = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.ActiveCfg = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Debug|x64.Build.0 = Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.DLL Release|x64.Build.0 = DLL Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|Win32.Build.0 = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|Win32
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.ActiveCfg = Release|x64
{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}.Release|x64.Build.0 = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|Win32.Build.0 = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.ActiveCfg = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Debug|x64.Build.0 = Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Debug|x64.Build.0 = DLL Debug|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|Win32.Build.0 = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.ActiveCfg = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.DLL Release|x64.Build.0 = DLL Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|Win32.Build.0 = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|Win32
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.ActiveCfg = Release|x64
{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}.Release|x64.Build.0 = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|Win32.Build.0 = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.ActiveCfg = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Debug|x64.Build.0 = Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Debug|x64.Build.0 = DLL Debug|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|Win32.Build.0 = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.ActiveCfg = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.DLL Release|x64.Build.0 = DLL Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|Win32.Build.0 = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|Win32
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.ActiveCfg = Release|x64
{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -23,55 +23,7 @@
#include "wx/toplevel.h"
#endif // WX_PRECOMP
#include "wx/evtloop.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
class TopLevelWindowTestCase : public CppUnit::TestCase
{
public:
TopLevelWindowTestCase() { }
private:
CPPUNIT_TEST_SUITE( TopLevelWindowTestCase );
CPPUNIT_TEST( DialogShowTest );
CPPUNIT_TEST( FrameShowTest );
CPPUNIT_TEST_SUITE_END();
void DialogShowTest();
void FrameShowTest();
void TopLevelWindowShowTest(wxTopLevelWindow* tlw);
wxDECLARE_NO_COPY_CLASS(TopLevelWindowTestCase);
};
// register in the unnamed registry so that these tests are run by default
//CPPUNIT_TEST_SUITE_REGISTRATION( TopLevelWindowTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TopLevelWindowTestCase, "fixme" );
// ----------------------------------------------------------------------------
// tests themselves
// ----------------------------------------------------------------------------
void TopLevelWindowTestCase::DialogShowTest()
{
wxDialog* dialog = new wxDialog(NULL, -1, "Dialog Test");
TopLevelWindowShowTest(dialog);
dialog->Destroy();
}
void TopLevelWindowTestCase::FrameShowTest()
{
wxFrame* frame = new wxFrame(NULL, -1, "Frame test");
TopLevelWindowShowTest(frame);
frame->Destroy();
}
void TopLevelWindowTestCase::TopLevelWindowShowTest(wxTopLevelWindow* tlw)
static void TopLevelWindowShowTest(wxTopLevelWindow* tlw)
{
CHECK(!tlw->IsShown());
@@ -104,3 +56,27 @@ void TopLevelWindowTestCase::TopLevelWindowShowTest(wxTopLevelWindow* tlw)
CHECK(tlw->IsActive());
#endif
}
TEST_CASE("wxTopLevel::Show", "[tlw][show]")
{
if ( IsAutomaticTest() )
{
// For some reason, activation test doesn't work when running under
// AppVeyor, so skip it to avoid spurious failures.
return;
}
SECTION("Dialog")
{
wxDialog* dialog = new wxDialog(NULL, -1, "Dialog Test");
TopLevelWindowShowTest(dialog);
dialog->Destroy();
}
SECTION("Frame")
{
wxFrame* frame = new wxFrame(NULL, -1, "Frame test");
TopLevelWindowShowTest(frame);
frame->Destroy();
}
}

View File

@@ -225,97 +225,99 @@ void XLocaleTestCase::TestStdlibFunctionsWith(const wxXLocale& loc)
void XLocaleTestCase::TestCtypeFunctions()
{
TestCtypeFunctionsWith(wxCLocale);
SECTION("C")
{
TestCtypeFunctionsWith(wxCLocale);
}
#ifdef wxHAS_XLOCALE_SUPPORT
SECTION("French")
{
wxXLocale locFR(wxLANGUAGE_FRENCH);
if ( !locFR.IsOk() )
{
// Not an error, not all systems have French locale support.
return;
}
// french
TestCtypeFunctionsWith(locFR);
if (!wxLocale::IsAvailable(wxLANGUAGE_FRENCH))
return; // you should have french support installed to continue this test!
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe9'), locFR) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe9'), locFR) );
CPPUNIT_ASSERT( !wxIslower_l(wxT('\xc9'), locFR) );
CPPUNIT_ASSERT( wxIsupper_l(wxT('\xc9'), locFR) );
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe7'), locFR) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe7'), locFR) );
CPPUNIT_ASSERT( wxIsupper_l(wxT('\xc7'), locFR) );
}
wxXLocale locFR(wxLANGUAGE_FRENCH);
CPPUNIT_ASSERT( locFR.IsOk() ); // doesn't make sense to continue otherwise
SECTION("Italian")
{
wxXLocale locIT(wxLANGUAGE_ITALIAN);
if ( !locIT.IsOk() )
return;
TestCtypeFunctionsWith(locFR);
TestCtypeFunctionsWith(locIT);
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe9'), locFR) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe9'), locFR) );
CPPUNIT_ASSERT( !wxIslower_l(wxT('\xc9'), locFR) );
CPPUNIT_ASSERT( wxIsupper_l(wxT('\xc9'), locFR) );
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe7'), locFR) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe7'), locFR) );
CPPUNIT_ASSERT( wxIsupper_l(wxT('\xc7'), locFR) );
// italian
if (!wxLocale::IsAvailable(wxLANGUAGE_ITALIAN))
return; // you should have italian support installed to continue this test!
wxXLocale locIT(wxLANGUAGE_ITALIAN);
CPPUNIT_ASSERT( locIT.IsOk() ); // doesn't make sense to continue otherwise
TestCtypeFunctionsWith(locIT);
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe1'), locIT) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe1'), locIT) );
#endif
CPPUNIT_ASSERT( wxIsalpha_l(wxT('\xe1'), locIT) );
CPPUNIT_ASSERT( wxIslower_l(wxT('\xe1'), locIT) );
}
#endif // wxHAS_XLOCALE_SUPPORT
}
void XLocaleTestCase::TestStdlibFunctions()
{
TestStdlibFunctionsWith(wxCLocale);
SECTION("C")
{
TestStdlibFunctionsWith(wxCLocale);
#if wxUSE_UNICODE
wchar_t* endptr;
wchar_t* endptr;
#else
char* endptr;
char* endptr;
#endif
// strtod checks specific for C locale
endptr = NULL;
CPPUNIT_ASSERT_EQUAL( 0.0, wxStrtod_l(wxT("0.000"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1.234"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( -1.234E-5, wxStrtod_l(wxT("-1.234E-5"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 365.24, wxStrtod_l(wxT("365.24 29.53"), &endptr, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 29.53, wxStrtod_l(endptr, NULL, wxCLocale) );
// strtod checks specific for C locale
endptr = NULL;
CPPUNIT_ASSERT_EQUAL( 0.0, wxStrtod_l(wxT("0.000"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1.234"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( -1.234E-5, wxStrtod_l(wxT("-1.234E-5"), NULL, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 365.24, wxStrtod_l(wxT("365.24 29.53"), &endptr, wxCLocale) );
CPPUNIT_ASSERT_EQUAL( 29.53, wxStrtod_l(endptr, NULL, wxCLocale) );
}
#ifdef wxHAS_XLOCALE_SUPPORT
SECTION("French")
{
wxXLocale locFR(wxLANGUAGE_FRENCH);
if ( !locFR.IsOk() )
return;
// french
TestCtypeFunctionsWith(locFR);
if (!wxLocale::IsAvailable(wxLANGUAGE_FRENCH))
return; // you should have french support installed to continue this test!
// comma as decimal point:
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1,234"), NULL, locFR) );
wxXLocale locFR(wxLANGUAGE_FRENCH);
CPPUNIT_ASSERT( locFR.IsOk() ); // doesn't make sense to continue otherwise
TestCtypeFunctionsWith(locFR);
// comma as decimal point:
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1,234"), NULL, locFR) );
// space as thousands separator is not recognized by wxStrtod_l():
CPPUNIT_ASSERT( 1234.5 != wxStrtod_l(wxT("1 234,5"), NULL, locFR) );
// space as thousands separator is not recognized by wxStrtod_l():
CPPUNIT_ASSERT( 1234.5 != wxStrtod_l(wxT("1 234,5"), NULL, locFR) );
}
// italian
SECTION("Italian")
{
wxXLocale locIT(wxLANGUAGE_ITALIAN);
if ( !locIT.IsOk() )
return;
if (!wxLocale::IsAvailable(wxLANGUAGE_ITALIAN))
return; // you should have italian support installed to continue this test!
TestStdlibFunctionsWith(locIT);
wxXLocale locIT(wxLANGUAGE_ITALIAN);
CPPUNIT_ASSERT( locIT.IsOk() ); // doesn't make sense to continue otherwise
// comma as decimal point:
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1,234"), NULL, locIT) );
TestStdlibFunctionsWith(locIT);
// comma as decimal point:
CPPUNIT_ASSERT_EQUAL( 1.234, wxStrtod_l(wxT("1,234"), NULL, locIT) );
// dot as thousands separator is not recognized by wxStrtod_l():
CPPUNIT_ASSERT( 1234.5 != wxStrtod_l(wxT("1.234,5"), NULL, locIT) );
#endif
// dot as thousands separator is not recognized by wxStrtod_l():
CPPUNIT_ASSERT( 1234.5 != wxStrtod_l(wxT("1.234,5"), NULL, locIT) );
}
#endif // wxHAS_XLOCALE_SUPPORT
}
#endif // wxUSE_XLOCALE