// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġorg . jetbrains . kotlin . idea . code Insight Ċ Ċ import Ġcom . intellij . rt . execution . junit . File Comparison Failure Ċ import Ġcom . intellij . test Framework . Extension TestUtil Ċ import Ġorg . jetbrains . kotlin . idea . platform . test integration . Light Test Framework Ċ Ċ abstract Ġclass ĠAbstract Light Test Run Line Markers Test : ĠAbstract Line Markers Test () Ġ{ ĊĠĠĠ Ġfun Ġdo Light Test ( path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġto Ġtest ĠLight Test Framework Ġdetection Ġonly ĊĠĠĠĠĠĠĠ Ġ// Ġi . e . Ġw / o Ġfallback Ġto ĠLight Classes Ġand ĠTest Frameworks . detect Framework ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠNote : Ġit Ġis Ġknown Ġin Ġsome Ġcase Ġit Ġcould Ġbe Ġnot Ġdetected Ġand Ġfallback Ġto ĠLC Ġis Ġexpected Ġvia ĠLIGHT _ CLASS _ FALL BACK ĊĠĠĠĠĠĠĠ Ġdo Run Test ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . do Test ( path ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFile Comparison Failure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġe . actual . split ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message ?. let Ġ{ Ġmsg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregex Ġ= Ġ"^ ${ Regex . escape Replacement ( testData File (). name )} : Ġmissing Ġ\\ (( \\ d + ): ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex . findAll ( msg ). toList (). take If Ġ{ Ġit . isNotEmpty () Ġ} ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline No Ġ= Ġit . group Values [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġlines [ line No Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġknown Ġfallback Ġto ĠLight Class - based ĠTest Framework Ġdetection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! line . contains (" LIGHT _ CLASS _ FALL BACK ")) Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdo Pure Test ( path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġto Ġtest ĠONLY ĠLight Classes Ġand ĠTest Frameworks . detect Framework ĊĠĠĠĠĠĠĠ Ġ// Ġi . e . Ġthe Ġmost Ġcorrect Ġand Ġreliable Ġimpl Ġof Ġtest Ġframework Ġdetection ĊĠĠĠĠĠĠĠ Ġdo Run Test ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . do Test ( path ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Run Test ( light Class : ĠBoolean , Ġtask : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension List Ġ= ĠLight Test Framework . EXTENSION _ NAME . extension List ĊĠĠĠĠĠĠĠ ĠExtension TestUtil . mask Extensions ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLight Test Framework . EXTENSION _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension List . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġit . name Ġ== Ġ" Light Class " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( light Class ) Ġfilter Ġelse Ġ! filter ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Root Disposable ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtask () ĊĠĠĠ Ġ} Ċ Ċ }