mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Merge pull request #10678 from Dentomologist/skip_pagefault_test_if_no_exception_handler
UnitTests: Skip PageFaultTest if exception handlers aren't supported
This commit is contained in:
commit
0fc1fb023f
@ -113,6 +113,11 @@ void UninstallExceptionHandler()
|
||||
s_veh_handle = nullptr;
|
||||
}
|
||||
|
||||
bool IsExceptionHandlerSupported()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
#elif defined(__APPLE__) && !defined(USE_SIGACTION_ON_APPLE)
|
||||
|
||||
static void CheckKR(const char* name, kern_return_t kr)
|
||||
@ -245,6 +250,11 @@ void UninstallExceptionHandler()
|
||||
{
|
||||
}
|
||||
|
||||
bool IsExceptionHandlerSupported()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
#elif defined(_POSIX_VERSION) && !defined(_M_GENERIC)
|
||||
|
||||
static struct sigaction old_sa_segv;
|
||||
@ -353,15 +363,27 @@ void UninstallExceptionHandler()
|
||||
sigaction(SIGBUS, &old_sa_bus, nullptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool IsExceptionHandlerSupported()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
#else // _M_GENERIC or unsupported platform
|
||||
|
||||
void InstallExceptionHandler()
|
||||
{
|
||||
}
|
||||
|
||||
void UninstallExceptionHandler()
|
||||
{
|
||||
}
|
||||
|
||||
bool IsExceptionHandlerSupported()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
} // namespace EMM
|
||||
|
@ -7,4 +7,5 @@ namespace EMM
|
||||
{
|
||||
void InstallExceptionHandler();
|
||||
void UninstallExceptionHandler();
|
||||
bool IsExceptionHandlerSupported();
|
||||
} // namespace EMM
|
||||
|
@ -61,6 +61,11 @@ static void ASAN_DISABLE perform_invalid_access(void* data)
|
||||
|
||||
TEST(PageFault, PageFault)
|
||||
{
|
||||
if (!EMM::IsExceptionHandlerSupported())
|
||||
{
|
||||
// TODO: Use GTEST_SKIP() instead when GTest is updated to 1.10+
|
||||
return;
|
||||
}
|
||||
EMM::InstallExceptionHandler();
|
||||
void* data = Common::AllocateMemoryPages(PAGE_GRAN);
|
||||
EXPECT_NE(data, nullptr);
|
||||
|
Loading…
Reference in New Issue
Block a user