Add IsAutomaticTest() function to the unit tests.

This allows to easily test if we're running on a buildbot slave and disable
some difficult to debug test failures there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-06-01 16:21:06 +00:00
parent e84d989930
commit f1287154cd
4 changed files with 25 additions and 2 deletions

View File

@@ -181,11 +181,13 @@ void ListBaseTestCase::ItemClick()
// generic wxListCtrl implementation. // generic wxListCtrl implementation.
#if wxUSE_UIACTIONSIMULATOR && !defined(__WXGTK__) #if wxUSE_UIACTIONSIMULATOR && !defined(__WXGTK__)
#ifdef __WXMSW__
// FIXME: This test fails on MSW buildbot slaves although works fine on // FIXME: This test fails on MSW buildbot slaves although works fine on
// development machine, no idea why. It seems to be a problem with // development machine, no idea why. It seems to be a problem with
// wxUIActionSimulator rather the wxListCtrl control itself however. // wxUIActionSimulator rather the wxListCtrl control itself however.
if ( wxGetUserId().Lower().Matches("buildslave*") ) if ( IsAutomaticTest() )
return; return;
#endif // __WXMSW__
wxListCtrl* const list = GetList(); wxListCtrl* const list = GetList();

View File

@@ -412,6 +412,23 @@ extern bool IsNetworkAvailable()
return online; return online;
} }
extern bool IsAutomaticTest()
{
static int s_isAutomatic = -1;
if ( s_isAutomatic == -1 )
{
// Allow setting an environment variable to emulate buildslave user for
// testing.
wxString username;
if ( !wxGetEnv("WX_TEST_USER", &username) )
username = wxGetUserId();
s_isAutomatic = username.Lower().Matches("buildslave*");
}
return s_isAutomatic == 1;
}
// helper of OnRun(): gets the test with the given name, returning NULL (and // helper of OnRun(): gets the test with the given name, returning NULL (and
// not an empty test suite) if there is no such test // not an empty test suite) if there is no such test
static Test *GetTestByName(const wxString& name) static Test *GetTestByName(const wxString& name)

View File

@@ -126,6 +126,8 @@ extern void SetProcessEventFunc(ProcessEventFunc func);
extern bool IsNetworkAvailable(); extern bool IsNetworkAvailable();
extern bool IsAutomaticTest();
// Helper class setting the locale to the given one for its lifetime. // Helper class setting the locale to the given one for its lifetime.
class LocaleSetter class LocaleSetter
{ {

View File

@@ -204,11 +204,13 @@ void NumValidatorTestCase::NoTrailingZeroes()
void NumValidatorTestCase::Interactive() void NumValidatorTestCase::Interactive()
{ {
#ifdef __WXMSW__
// FIXME: This test fails on MSW buildbot slaves although works fine on // FIXME: This test fails on MSW buildbot slaves although works fine on
// development machine, no idea why. It seems to be a problem with // development machine, no idea why. It seems to be a problem with
// wxUIActionSimulator rather the wxListCtrl control itself however. // wxUIActionSimulator rather the wxListCtrl control itself however.
if ( wxGetUserId().Lower().Matches("buildslave*") ) if ( IsAutomaticTest() )
return; return;
#endif // __WXMSW__
// Set a locale using comma as thousands separator character. // Set a locale using comma as thousands separator character.
wxLocale loc(wxLANGUAGE_ENGLISH_UK, wxLOCALE_DONT_LOAD_DEFAULT); wxLocale loc(wxLANGUAGE_ENGLISH_UK, wxLOCALE_DONT_LOAD_DEFAULT);