@@ -136,15 +136,18 @@ bool addClientInfo(
136136 bool atLeastOneUpdate = false || Options::get ().forceupdate ;
137137 SessionInterface& session = RPCSession::instance (TestOutputHelper::getThreadID ());
138138
139- spDataObject filledTest ( new DataObject ()) ;
139+ spDataObject filledTest;
140140 if ((Options::get ().filltests && fs::exists (_existingFilledTest)) && !Options::get ().forceupdate )
141141 filledTest = test::readJsonData (_existingFilledTest);
142- for (auto & testInGenerated : _filledTest.getSubObjectsUnsafe ())
142+
143+ for (spDataObject& testInGenerated : _filledTest.getSubObjectsUnsafe ())
143144 {
144145 DataObject& testInGeneratedRef = testInGenerated.getContent ();
145- spDataObject clientinfo (new DataObject ());
146+ spDataObject clientinfo;
147+
148+ // Since one gtest parsed into many bctests we need a copy
146149 if (testInGeneratedRef.count (" _info" ))
147- clientinfo = testInGeneratedRef.atKeyPointerUnsafe (" _info" );
150+ clientinfo. getContent (). copyFrom ( testInGeneratedRef.atKey (" _info" ) );
148151
149152 testInGeneratedRef.removeKey (" _info" );
150153 testInGeneratedRef.performModifier (mod_sortKeys);
@@ -163,6 +166,7 @@ bool addClientInfo(
163166 string const & existingHash = existingTest.atKey (" _info" ).atKey (" generatedTestHash" ).asString ();
164167 if (existingHash != clientinfo->atKey (" generatedTestHash" ).asString ())
165168 atLeastOneUpdate = true ;
169+
166170 string const & existingSrcHash = existingTest.atKey (" _info" ).atKey (" sourceHash" ).asString ();
167171 if (existingSrcHash != clientinfo->atKey (" sourceHash" ).asString ())
168172 atLeastOneUpdate = true ;
@@ -529,8 +533,10 @@ void TestSuite::runAllTestsInFolder(string const& _testFolder) const
529533 if (ExitHandler::receivedExitSignal ())
530534 break ;
531535
532- thread testThread (&TestSuite::executeTest, this , _testFolder, file);
533- ThreadManager::addTask (std::move (testThread));
536+ auto job = [this , &_testFolder, &file](){
537+ executeTest (_testFolder, file);
538+ };
539+ ThreadManager::addTask (job);
534540 }
535541 ThreadManager::joinThreads ();
536542 testOutput.finishTest ();
0 commit comments