// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . java . configuration Store Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . io . File Util Ċ import Ġcom . intellij . openapi . vfs . V fs Util Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . test Framework . Temporary Directory Ċ import Ġcom . intellij . test Framework . create Or Load Project Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġjava . nio . file . Path Ċ Ċ abstract Ġclass ĠLoad Project Base Ġ{ ĊĊĠ Ġabstract Ġval Ġtemp Directory : ĠTemporary Directory ĊĠ Ġabstract Ġval ĠtestData Root : ĠPath ĊĊĊĠ Ġprotected Ġfun Ġload Project And Check Results ( testData Dir Name : ĠString , Ġcheck Project : Ġsuspend Ġ( Project ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġreturn Ġload Project And Check Results ( testData Root . resolve ( testData Dir Name ), Ġcheck Project ) ĊĠ Ġ} ĊĊĠ Ġprotected Ġfun Ġload Project And Check Results ( project Path : ĠPath , Ġcheck Project : Ġsuspend Ġ( Project ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġ@ Suppress (" Red undant Suspend Modifier ") ĊĠĠĠ Ġsuspend Ġfun Ġcopy Project Files ( dir : ĠVirtual File ): ĠPath Ġ{ ĊĠĠĠĠĠ Ġval Ġproject Dir Ġ= ĠV fs Util . virtual To Io File ( dir ) ĊĠĠĠĠĠ ĠFile Util . copy Dir ( project Path . to File (), Ġproject Dir ) ĊĠĠĠĠĠ ĠV fs Util . mark Dirty And Refresh ( false , Ġtrue , Ġtrue , Ġdir ) ĊĠĠĠĠĠ Ġreturn Ġproject Dir . to Path () ĊĠĠĠ Ġ} ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġcreate Or Load Project ( temp Directory , Ġ:: copy Project Files , Ġload Component State Ġ= Ġtrue , Ġuse Default Project Settings Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Project ( it ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } ĊĊ