summaryrefslogtreecommitdiff
path: root/Source/UnitTests/Core/CoreTimingTest.cpp
diff options
context:
space:
mode:
authorDentomologist <dentomologist@gmail.com>2021-01-22 11:34:45 -0800
committerDentomologist <dentomologist@gmail.com>2021-01-22 11:49:59 -0800
commit83f912b58af2d39265184aa5ca4c30050757fe9e (patch)
tree530e76ec7873ea14e9ec55b8b53c14989d13184b /Source/UnitTests/Core/CoreTimingTest.cpp
parentcaff472dbf27fbcc5b3d28cbf5b1789592a9f857 (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.cpp15
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>);