| 86 | } |
| 87 | |
| 88 | bool cUnitTesting::RunTests(const std::string pCampaign) { |
| 89 | bool Retry = false; |
| 90 | g_Fodder->Game_Setup(); |
| 91 | |
| 92 | if (g_Fodder->mStartParams->mUnitTesting && g_Fodder->mStartParams->mDemoPlayback) { |
| 93 | g_Fodder->mStartParams->mSleepDelta = 0; |
| 94 | g_Fodder->mParams->mSleepDelta = 0; |
| 95 | } |
| 96 | |
| 97 | while (g_Fodder->mGame_Data.mMission_Current) { |
| 98 | EngineSetup(); |
| 99 | setDemoName(); |
| 100 | |
| 101 | std::string MissionTitle = getCurrentTestName(); |
| 102 | |
| 103 | if (g_Fodder->mStartParams->mDemoRecord && !Retry) { |
| 104 | if (g_ResourceMan->FileExists(g_Fodder->mStartParams->mDemoFile)) { |
| 105 | g_Debugger->Notice("Test exists for " + MissionTitle + ", skipping"); |
| 106 | g_Fodder->mGame_Data.Phase_Next(); |
| 107 | continue; |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | Retry = false; |
| 112 | g_Debugger->TestStart(MissionTitle, g_Fodder->mStartParams->mCampaignName); |
| 113 | |
| 114 | if (g_Fodder->mStartParams->mDemoPlayback) { |
| 115 | if (!g_Fodder->mStartParams->mDemoRecord) { |
| 116 | if (!g_Fodder->Demo_Load()) { |
| 117 | g_Debugger->TestComplete(MissionTitle, g_Fodder->mStartParams->mCampaignName, "No test found", 0, eTest_Skipped); |
| 118 | g_Fodder->mGame_Data.Phase_Next(); |
| 119 | continue; |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | g_Fodder->mGame_Data.mDemoRecorded.playback(); |
| 124 | } |
| 125 | |
| 126 | // If demo is recording |
| 127 | if (g_Fodder->mStartParams->mDemoRecord) { |
| 128 | // And we have a resume cycle set |
| 129 | if (g_Fodder->mStartParams->mDemoRecordResumeCycle) { |
| 130 | g_Debugger->Notice("Resuming " + MissionTitle); |
| 131 | g_Fodder->mParams->mSleepDelta = 0; |
| 132 | } |
| 133 | else { |
| 134 | g_Fodder->mGame_Data.mDemoRecorded.clear(); |
| 135 | g_Debugger->Notice("Recording " + MissionTitle); |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | // Reset demo status |
| 140 | g_Fodder->mParams->mDemoFile = g_Fodder->mStartParams->mDemoFile; |
| 141 | g_Fodder->mParams->mDemoRecord = g_Fodder->mStartParams->mDemoRecord; |
| 142 | g_Fodder->mParams->mDemoPlayback = g_Fodder->mStartParams->mDemoPlayback; |
| 143 | g_Fodder->mParams->mAppVeyor = g_Fodder->mStartParams->mAppVeyor; |
| 144 | // Keep game state |
| 145 | g_Fodder->mGame_Data_Backup = g_Fodder->mGame_Data; |
nothing calls this directly
no test coverage detected