package Ġcom . av ito . runner . artifacts Ċ Ċ import Ġcom . av ito . android . Result Ċ import Ġcom . av ito . report . Test Artifacts Provider Factory Ċ import Ġcom . av ito . report . model . Android Test Ċ import Ġcom . av ito . report . model . Test Static Data Ċ import Ġcom . av ito . report . serialize . Report Serializer Ċ import Ġcom . av ito . runner . log cat . Log cat Accessor Ċ import Ġcom . av ito . runner . log cat . Log cat Processor Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . Coroutine Name Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . async Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjava . io . File Ċ Ċ internal Ġclass ĠLegacy Test Artifacts Processor ( ĊĠĠĠ Ġprivate Ġval Ġreport Serializer : ĠReport Serializer , ĊĠĠĠ Ġprivate Ġval Ġlog cat Processor : ĠLog cat Processor , ĊĠĠĠ Ġprivate Ġval Ġdispatcher : ĠCor outine Dispatcher Ċ ) Ġ: ĠTest Artifacts Processor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( ĊĠĠĠĠĠĠĠ Ġreport Dir : ĠFile , ĊĠĠĠĠĠĠĠ Ġtest Static Data : ĠTest Static Data , ĊĠĠĠĠĠĠĠ Ġlog cat Accessor : ĠLog cat Accessor ĊĠĠĠ Ġ): ĠResult < Android Test > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġscope Ġ= ĠCor outine Scope ( Coroutine Name (" test - artifacts -${ test Static Data . name }") Ġ+ Ġdispatcher ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreport File Provider Ġ= ĠTest Artifacts Provider Factory . create For TempDir ( report Dir ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġreport File Provider . provide Report File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġreport Json Ġ-> Ġreport Serializer . deserialize ( report Json ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġtest Runtime Data Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Test Failed Ġ= Ġtest Runtime Data . incident Ġ!= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( scope . coroutine Context ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog cat Ġ= Ġasync Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog cat Processor . process ( log cat Accessor , Ġis Upload Needed Ġ= Ġis Test Failed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Test . Completed . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Static Data Ġ= Ġtest Static Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Runtime Data Ġ= Ġtest Runtime Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog cat Ġ= Ġlog cat . await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ