Workaround a crash with MSYS2 gcc 9.1 again
The changes of2144ca38d2(Get rid of CppUnit boilerplate in DynamicLibraryTestCase, 2022-04-17) accidentally undid the workaround from054cb35b39(Workaround for a crash with gcc 9.1 from MSYS2 MinGW 32bit, 2019-08-03), so work around the same problem again by avoiding using CHECK() with function pointers.
This commit is contained in:
@@ -59,14 +59,15 @@ TEST_CASE("DynamicLibrary::Load", "[dynlib]")
|
|||||||
typedef int (wxSTDCALL *wxStrlenType)(const char *);
|
typedef int (wxSTDCALL *wxStrlenType)(const char *);
|
||||||
wxStrlenType pfnStrlen = (wxStrlenType)lib.GetSymbol(FUNC_NAME);
|
wxStrlenType pfnStrlen = (wxStrlenType)lib.GetSymbol(FUNC_NAME);
|
||||||
|
|
||||||
INFO("'" << FUNC_NAME << "' wasn't found in '" << LIB_NAME << "'");
|
|
||||||
CHECK( pfnStrlen );
|
|
||||||
|
|
||||||
if ( pfnStrlen )
|
if ( pfnStrlen )
|
||||||
{
|
{
|
||||||
// Call the function dynamically loaded
|
// Call the function dynamically loaded
|
||||||
CHECK( pfnStrlen("foo") == 3 );
|
CHECK( pfnStrlen("foo") == 3 );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FAIL(FUNC_NAME << " wasn't found in " << LIB_NAME);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
@@ -78,10 +79,14 @@ TEST_CASE("DynamicLibrary::Load", "[dynlib]")
|
|||||||
wxStrlenTypeAorW
|
wxStrlenTypeAorW
|
||||||
pfnStrlenAorW = (wxStrlenTypeAorW)lib.GetSymbolAorW(FUNC_NAME_AW);
|
pfnStrlenAorW = (wxStrlenTypeAorW)lib.GetSymbolAorW(FUNC_NAME_AW);
|
||||||
|
|
||||||
INFO( "'" << FUNC_NAME_AW << "' wasn't found in '" << LIB_NAME << "'");
|
if ( pfnStrlenAorW )
|
||||||
REQUIRE( pfnStrlenAorW );
|
{
|
||||||
|
|
||||||
CHECK( pfnStrlenAorW(wxT("foobar")) == 6 );
|
CHECK( pfnStrlenAorW(wxT("foobar")) == 6 );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FAIL(FUNC_NAME_AW << " wasn't found in " << LIB_NAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif // __WINDOWS__
|
#endif // __WINDOWS__
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user