diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
| commit | 3570c7f03a2aa90aa634f96c0af1969af610f14d (patch) | |
| tree | 4252e03c0e853ba7cffe022937698c854ad0eaa9 /Source/UnitTests/Core/PageFaultTest.cpp | |
| parent | 2115e8a4a6814e32107b5205ff5c95bbd3c6e99c (diff) | |
Reformat all the things. Have fun with merge conflicts.
Diffstat (limited to 'Source/UnitTests/Core/PageFaultTest.cpp')
| -rw-r--r-- | Source/UnitTests/Core/PageFaultTest.cpp | 89 |
1 files changed, 44 insertions, 45 deletions
diff --git a/Source/UnitTests/Core/PageFaultTest.cpp b/Source/UnitTests/Core/PageFaultTest.cpp index 1dc0b4752d..63990f7a6f 100644 --- a/Source/UnitTests/Core/PageFaultTest.cpp +++ b/Source/UnitTests/Core/PageFaultTest.cpp @@ -10,70 +10,69 @@ #include "Core/PowerPC/JitCommon/JitBase.h" // include order is important -#include <gtest/gtest.h> // NOLINT +#include <gtest/gtest.h> // NOLINT enum { #ifdef _WIN32 - PAGE_GRAN = 0x10000 + PAGE_GRAN = 0x10000 #else - PAGE_GRAN = 0x1000 + PAGE_GRAN = 0x1000 #endif }; class PageFaultFakeJit : public JitBase { public: - // CPUCoreBase methods - void Init() override {} - void Shutdown() override {} - void ClearCache() override {} - void Run() override {} - void SingleStep() override {} - const char *GetName() override { return nullptr; } + // CPUCoreBase methods + void Init() override {} + void Shutdown() override {} + void ClearCache() override {} + void Run() override {} + void SingleStep() override {} + const char* GetName() override { return nullptr; } + // JitBase methods + JitBaseBlockCache* GetBlockCache() override { return nullptr; } + void Jit(u32 em_address) override {} + const CommonAsmRoutinesBase* GetAsmRoutines() override { return nullptr; } + virtual bool HandleFault(uintptr_t access_address, SContext* ctx) override + { + m_pre_unprotect_time = std::chrono::high_resolution_clock::now(); + UnWriteProtectMemory(m_data, PAGE_GRAN, /*allowExecute*/ false); + m_post_unprotect_time = std::chrono::high_resolution_clock::now(); + return true; + } - // JitBase methods - JitBaseBlockCache *GetBlockCache() override { return nullptr; } - void Jit(u32 em_address) override {} - const CommonAsmRoutinesBase *GetAsmRoutines() override { return nullptr; } - - virtual bool HandleFault(uintptr_t access_address, SContext* ctx) override - { - m_pre_unprotect_time = std::chrono::high_resolution_clock::now(); - UnWriteProtectMemory(m_data, PAGE_GRAN, /*allowExecute*/ false); - m_post_unprotect_time = std::chrono::high_resolution_clock::now(); - return true; - } - - void* m_data; - std::chrono::time_point<std::chrono::high_resolution_clock> - m_pre_unprotect_time, m_post_unprotect_time; + void* m_data; + std::chrono::time_point<std::chrono::high_resolution_clock> m_pre_unprotect_time, + m_post_unprotect_time; }; - TEST(PageFault, PageFault) { - EMM::InstallExceptionHandler(); - void* data = AllocateMemoryPages(PAGE_GRAN); - EXPECT_NE(data, nullptr); - WriteProtectMemory(data, PAGE_GRAN, false); + EMM::InstallExceptionHandler(); + void* data = AllocateMemoryPages(PAGE_GRAN); + EXPECT_NE(data, nullptr); + WriteProtectMemory(data, PAGE_GRAN, false); - PageFaultFakeJit pfjit; - jit = &pfjit; - pfjit.m_data = data; + PageFaultFakeJit pfjit; + jit = &pfjit; + pfjit.m_data = data; - auto start = std::chrono::high_resolution_clock::now(); - *(volatile int*) data = 5; - auto end = std::chrono::high_resolution_clock::now(); + auto start = std::chrono::high_resolution_clock::now(); + *(volatile int*)data = 5; + auto end = std::chrono::high_resolution_clock::now(); - #define AS_NS(diff) ((unsigned long long)std::chrono::duration_cast<std::chrono::nanoseconds>(diff).count()) +#define AS_NS(diff) \ + ((unsigned long long)std::chrono::duration_cast<std::chrono::nanoseconds>(diff).count()) - EMM::UninstallExceptionHandler(); - jit = nullptr; + EMM::UninstallExceptionHandler(); + jit = nullptr; - printf("page fault timing:\n"); - printf("start->HandleFault %llu ns\n", AS_NS(pfjit.m_pre_unprotect_time - start)); - printf("UnWriteProtectMemory %llu ns\n", AS_NS(pfjit.m_post_unprotect_time - pfjit.m_pre_unprotect_time)); - printf("HandleFault->end %llu ns\n", AS_NS(end - pfjit.m_post_unprotect_time)); - printf("total %llu ns\n", AS_NS(end - start)); + printf("page fault timing:\n"); + printf("start->HandleFault %llu ns\n", AS_NS(pfjit.m_pre_unprotect_time - start)); + printf("UnWriteProtectMemory %llu ns\n", + AS_NS(pfjit.m_post_unprotect_time - pfjit.m_pre_unprotect_time)); + printf("HandleFault->end %llu ns\n", AS_NS(end - pfjit.m_post_unprotect_time)); + printf("total %llu ns\n", AS_NS(end - start)); } |
