diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 7c00c062e9..e40af06cdb 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -1669,3 +1669,23 @@ void RiaApplication::loadAndUpdatePlotData() } } } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RiaApplication::resetProject() +{ + if ( m_project.notNull() ) + { + delete m_project.p(); + m_project = nullptr; + } + + if ( m_preferences ) + { + delete m_preferences; + m_preferences = nullptr; + } + + initialize(); +} diff --git a/ApplicationCode/Application/RiaApplication.h b/ApplicationCode/Application/RiaApplication.h index b484ea6c92..f00bb93894 100644 --- a/ApplicationCode/Application/RiaApplication.h +++ b/ApplicationCode/Application/RiaApplication.h @@ -225,6 +225,9 @@ protected: void loadAndUpdatePlotData(); + friend class RiaRegressionTestRunner; + void resetProject(); + protected: cvf::ref m_defaultSceneFont; cvf::ref m_defaultAnnotationFont; diff --git a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp index 01f37727eb..b17dad291f 100644 --- a/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp +++ b/ApplicationCode/Application/Tools/RiaRegressionTestRunner.cpp @@ -168,6 +168,8 @@ void RiaRegressionTestRunner::runRegressionTest() timeStamp.start(); logInfoTextWithTimeInSeconds( timeStamp, "Starting regression tests\n" ); + RiaApplication* app = RiaApplication::instance(); + for ( const QFileInfo& folderFileInfo : folderList ) { QDir testCaseFolder( folderFileInfo.filePath() ); @@ -194,8 +196,6 @@ void RiaRegressionTestRunner::runRegressionTest() { logInfoTextWithTimeInSeconds( timeStamp, "Initializing test :" + testCaseFolder.absolutePath() ); - RiaApplication* app = RiaApplication::instance(); - app->loadProject( testCaseFolder.filePath( projectFileName ) ); // Wait until all command objects have completed @@ -220,6 +220,9 @@ void RiaRegressionTestRunner::runRegressionTest() } } + // Do a complete reset of project settings to avoid transfer of settings to next regression test + app->resetProject(); + QDir baseDir( testCaseFolder.filePath( baseFolderName ) ); QDir genDir( testCaseFolder.filePath( generatedFolderName ) ); QDir diffDir( testCaseFolder.filePath( diffFolderName ) );