diff --git a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/IDEDCSvc_GaudiFixtureBase.h b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/IDEDCSvc_GaudiFixtureBase.h index 230e1299f4f63aa466341ea0178d762e4afbbe1e..4d3b610d62611e876142068c6ba26b42751cd80b 100644 --- a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/IDEDCSvc_GaudiFixtureBase.h +++ b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/IDEDCSvc_GaudiFixtureBase.h @@ -24,17 +24,18 @@ ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This is for unit tests and a static variab struct IDEDC_GaudiFixtureBase{ ISvcLocator* svcLoc{}; - static bool gaudiIsInitialised; const std::string jobOpts{}; - IDEDC_GaudiFixtureBase(const std::string & jobOptionFile = "InDetEtaDependentCutsTestJobOpts.txt"):jobOpts(jobOptionFile){ + static bool initGaudi (const std::string & jobOptionFile, ISvcLocator*& svcLoc) + { CxxUtils::ubsan_suppress ([]() { TInterpreter::Instance(); } ); - if (not gaudiIsInitialised){ - std::string fullJobOptsName="InDetEtaDependentCuts/" + jobOpts; - gaudiIsInitialised=Athena_test::initGaudi(fullJobOptsName, svcLoc); - } + std::string fullJobOptsName="InDetEtaDependentCuts/" + jobOptionFile; + return Athena_test::initGaudi(fullJobOptsName, svcLoc); + } + IDEDC_GaudiFixtureBase(const std::string & jobOptionFile = "InDetEtaDependentCutsTestJobOpts.txt"):jobOpts(jobOptionFile){ + static const bool gaudiIsInitialized [[maybe_unused]] + = initGaudi (jobOptionFile, svcLoc); } }; -bool IDEDC_GaudiFixtureBase::gaudiIsInitialised=false; #endif diff --git a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx index 014bd39057b303cf241e45f7ad09158833f592e2..1d3897f11f0fcc85b814ba3f40c7534481cb8350 100644 --- a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx +++ b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx @@ -36,22 +36,24 @@ struct GaudiKernelFixture:public IDEDC_GaudiFixtureBase{ using namespace InDet; BOOST_AUTO_TEST_SUITE(EtaDependentCutsSvcTest) - GaudiKernelFixture g(testJobOptionsFile); + const GaudiKernelFixture g(testJobOptionsFile); const auto & svcLoc=g.svcLoc; - ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test"); BOOST_AUTO_TEST_CASE( sanityCheck ){ const bool svcLocatorIsOk=(svcLoc != nullptr); BOOST_TEST(svcLocatorIsOk); } BOOST_AUTO_TEST_CASE( retrieveSvc ){ + ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test"); BOOST_TEST (idEDCSvc.retrieve().isSuccess()); } BOOST_AUTO_TEST_CASE( interfaceID ){ + ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test"); InterfaceID testId("IInDetEtaDependentCutsSvc",1,0); BOOST_TEST(idEDCSvc->interfaceID()==testId); } BOOST_AUTO_TEST_CASE(publicMethods){ + ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test"); BOOST_TEST(idEDCSvc->getMaxEta() == 4.0); } BOOST_AUTO_TEST_SUITE_END()