@ file : Suppress (" UN CHECK ED _ CAST ") Ċ Ċ package Ġio . kot est . runner . console Ċ Ċ import Ġio . kot est . core . Tags Ċ import Ġio . kot est . core . config . Project Ċ import Ġio . kot est . core . engine . K ot est Engine Ċ import Ġio . kot est . core . engine . Test Engine Listener Ċ import Ġio . kot est . core . engine . discovery . Discovery Ċ import Ġio . kot est . core . engine . discovery . Discovery Request Ċ import Ġio . kot est . core . engine . discovery . Discovery Selector Ċ import Ġio . kot est . core . spec . Spec Ċ Ċ class ĠK ot est Console Runner ( private Ġval Ġlistener : ĠTest Engine Listener ) Ġ{ ĊĊĠĠ Ġsuspend Ġfun Ġexecute ( packageName : ĠString ?, Ġspec FQ N : ĠString ?, Ġtest : ĠString ?, Ġtags : ĠTags ?) Ġ{ ĊĊĠĠĠĠĠ Ġ// Ġif Ġthe Ġspec Ġclass Ġwas Ġnull , Ġthen Ġwe Ġperform Ġdiscovery Ġto Ġlocate Ġall Ġthe Ġclasses ĊĠĠĠĠĠ Ġ// Ġotherwise Ġwe Ġinstantiate Ġthat Ġparticular Ġspec ĊĠĠĠĠĠ Ġval Ġ( specs , Ġfilter ) Ġ= Ġif Ġ( spec FQ N Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġpackage Selector Ġ= ĠpackageName ?. let Ġ{ ĠDiscovery Selector . Package Discovery Selector ( it ) Ġ} ĊĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDiscovery . discover ( Discovery Request ( selectors Ġ= ĠlistOf NotNull ( package Selector ))) ĊĠĠĠĠĠĠĠĠ ĠPair ( result . specs , Ġnull ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġ( Class . forName ( spec FQ N ) Ġas ĠClass < Spec >). kotlin ĊĠĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġtest ?. let Ġ{ ĠSpec Aware Test Filter ( it , Ġspec ) Ġ} ĊĠĠĠĠĠĠĠĠ ĠlistOf ( spec ) Ġto Ġfilter ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġval Ġrunner Ġ= ĠK ot est Engine ( ĊĠĠĠĠĠĠĠĠ Ġspecs , ĊĠĠĠĠĠĠĠĠ Ġif Ġ( filter Ġ== Ġnull ) Ġempty List () Ġelse ĠlistOf ( filter ), ĊĠĠĠĠĠĠĠĠ ĠProject . parallel ism (), ĊĠĠĠĠĠĠĠĠ Ġtags , ĊĠĠĠĠĠĠĠĠ Ġlistener ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġrunner . execute () ĊĠĠ Ġ} Ċ } Ċ