diff options
| author | Dentomologist <dentomologist@gmail.com> | 2021-01-22 11:34:45 -0800 |
|---|---|---|
| committer | Dentomologist <dentomologist@gmail.com> | 2021-01-22 11:49:59 -0800 |
| commit | 83f912b58af2d39265184aa5ca4c30050757fe9e (patch) | |
| tree | 530e76ec7873ea14e9ec55b8b53c14989d13184b /Source/UnitTests/Core/CoreTimingTest.cpp | |
| parent | caff472dbf27fbcc5b3d28cbf5b1789592a9f857 (diff) | |
UnitTests: Add setup error checking
Check return value of calls to File::CreateTempDir() from CoreTiming,
FileSystem, and MMIO test classes to verify the test user directory
exists, and fail the tests otherwise.
Diffstat (limited to 'Source/UnitTests/Core/CoreTimingTest.cpp')
| -rw-r--r-- | Source/UnitTests/Core/CoreTimingTest.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/UnitTests/Core/CoreTimingTest.cpp b/Source/UnitTests/Core/CoreTimingTest.cpp index dfff3adfe3..da3c7efe52 100644 --- a/Source/UnitTests/Core/CoreTimingTest.cpp +++ b/Source/UnitTests/Core/CoreTimingTest.cpp @@ -39,6 +39,10 @@ class ScopeInit final public: ScopeInit() : m_profile_path(File::CreateTempDir()) { + if (!UserDirectoryExists()) + { + return; + } Core::DeclareAsCPUThread(); UICommon::SetUserDirectory(m_profile_path); Config::Init(); @@ -48,6 +52,10 @@ public: } ~ScopeInit() { + if (!UserDirectoryExists()) + { + return; + } CoreTiming::Shutdown(); PowerPC::Shutdown(); SConfig::Shutdown(); @@ -55,6 +63,7 @@ public: Core::UndeclareAsCPUThread(); File::DeleteDirRecursively(m_profile_path); } + bool UserDirectoryExists() const { return !m_profile_path.empty(); } private: std::string m_profile_path; @@ -77,6 +86,7 @@ static void AdvanceAndCheck(u32 idx, int downcount, int expected_lateness = 0, TEST(CoreTiming, BasicOrder) { ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); CoreTiming::EventType* cb_a = CoreTiming::RegisterEvent("callbackA", CallbackTemplate<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", CallbackTemplate<1>); @@ -127,6 +137,7 @@ TEST(CoreTiming, SharedSlot) using namespace SharedSlotTest; ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); CoreTiming::EventType* cb_a = CoreTiming::RegisterEvent("callbackA", FifoCallback<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", FifoCallback<1>); @@ -156,6 +167,7 @@ TEST(CoreTiming, SharedSlot) TEST(CoreTiming, PredictableLateness) { ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); CoreTiming::EventType* cb_a = CoreTiming::RegisterEvent("callbackA", CallbackTemplate<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", CallbackTemplate<1>); @@ -190,6 +202,7 @@ TEST(CoreTiming, ChainScheduling) using namespace ChainSchedulingTest; ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); CoreTiming::EventType* cb_a = CoreTiming::RegisterEvent("callbackA", CallbackTemplate<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", CallbackTemplate<1>); @@ -245,6 +258,7 @@ TEST(CoreTiming, ScheduleIntoPast) using namespace ScheduleIntoPastTest; ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); s_cb_next = CoreTiming::RegisterEvent("callbackA", CallbackTemplate<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", CallbackTemplate<1>); @@ -282,6 +296,7 @@ TEST(CoreTiming, ScheduleIntoPast) TEST(CoreTiming, Overclocking) { ScopeInit guard; + ASSERT_TRUE(guard.UserDirectoryExists()); CoreTiming::EventType* cb_a = CoreTiming::RegisterEvent("callbackA", CallbackTemplate<0>); CoreTiming::EventType* cb_b = CoreTiming::RegisterEvent("callbackB", CallbackTemplate<1>); |
