package Ġio . kot est . engine . spec . interceptor Ċ Ċ import Ġio . kot est . core . config . configuration Ċ import Ġio . kot est . core . listeners . Inactive Spec Listener Ċ import Ġio . kot est . core . spec . Spec Ċ import Ġio . kot est . core . test . TestCase Ċ import Ġio . kot est . core . test . TestResult Ċ import Ġio . kot est . engine . listener . Test Engine Listener Ċ import Ġio . kot est . engine . spec . Spec Extensions Ċ import Ġio . kot est . engine . spec . material ize And Order Root Tests Ċ import Ġio . kot est . engine . test . status . isEnabled Ċ import Ġio . kot est . mpp . log Ċ Ċ /** Ċ Ġ* ĠThe Ġroot Ġtests Ġon Ġa Ġ[ Spec ] Ġare Ġretrieved , Ġand Ġif Ġnone Ġare Ġenabled , Ġthen Ġno Ċ Ġ* Ġexecution Ġstep Ġtakes Ġplace , Ġthe Ġtest Ġis Ġmarked Ġas Ġignored , Ġand Ġall Ġ[ Inactive Spec Listener ] s Ċ Ġ* Ġare Ġinvoked . Ċ Ġ* Ċ Ġ* ĠOtherwise , Ġif Ġat Ġleast Ġone Ġactive , Ġthe Ġdownstream Ġfunction Ġis Ġinvoked . Ċ Ġ*/ Ċ internal Ġclass ĠRun If Active Interceptor ( private Ġval Ġlistener : ĠTest Engine Listener ) Ġ: ĠSpec Execution Interceptor Ġ{ ĊĊĠĠ Ġoverride Ġsuspend Ġfun Ġintercept ( ĊĠĠĠĠĠ Ġfn : Ġsuspend Ġ( Spec ) Ġ-> ĠMap < TestCase , ĠTest Result > ĊĠĠ Ġ): Ġsuspend Ġ( Spec ) Ġ-> ĠMap < TestCase , ĠTest Result > Ġ= Ġ{ Ġspec Ġ-> ĊĊĠĠĠĠĠ Ġval Ġroots Ġ= Ġspec . material ize And Order Root Tests () ĊĠĠĠĠĠ Ġval Ġenabled Ġ= Ġroots . associate Ġ{ Ġit . testCase Ġto Ġit . testCase . isEnabled () Ġ} ĊĠĠĠĠĠ Ġval Ġactive Ġ= Ġenabled . any Ġ{ Ġit . value . isEnabled Ġ} ĊĊĠĠĠĠĠ Ġlog Ġ{ Ġ" Run If Active Tests Interceptor : Ġactive =$ active Ġfrom Ġ${ roots . size } Ġroot Ġtests Ġ[$ spec ]" Ġ} ĊĊĠĠĠĠĠ Ġif Ġ( active ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġfn ( spec ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġenabled . map Values Ġ{ ĠTest Result . ignored ( it . value . reason ) Ġ} ĊĠĠĠĠĠĠĠĠ Ġlistener . spec Inactive ( spec :: class , Ġresults ) ĊĠĠĠĠĠĠĠĠ ĠSpec Extensions ( configuration ). inactive Spec ( spec , Ġresults ) ĊĠĠĠĠĠĠĠĠ Ġresults ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} Ċ } Ċ