Skip to content

Commit f418dac

Browse files
committed
Hide progress bar when user is debugging the tests
1 parent c0a6a03 commit f418dac

File tree

1 file changed

+33
-13
lines changed

1 file changed

+33
-13
lines changed

compiler/test/dotty/tools/vulpix/ParallelTesting.scala

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,42 @@ package dotty
22
package tools
33
package vulpix
44

5-
import scala.language.unsafeNulls
5+
import dotty.tools.vulpix.TestConfiguration.defaultOptions
66

7-
import java.io.{File => JFile, IOException, PrintStream, ByteArrayOutputStream}
8-
import java.lang.System.{lineSeparator => EOL}
7+
import java.io.ByteArrayOutputStream
8+
import java.io.File as JFile
9+
import java.io.IOException
10+
import java.io.PrintStream
11+
import java.lang.System.lineSeparator as EOL
12+
import java.lang.management.ManagementFactory
913
import java.net.URL
14+
import java.nio.charset.Charset
15+
import java.nio.charset.StandardCharsets
16+
import java.nio.file.Files
17+
import java.nio.file.NoSuchFileException
18+
import java.nio.file.Path
19+
import java.nio.file.Paths
1020
import java.nio.file.StandardCopyOption.REPLACE_EXISTING
11-
import java.nio.file.{Files, NoSuchFileException, Path, Paths}
12-
import java.nio.charset.{Charset, StandardCharsets}
1321
import java.text.SimpleDateFormat
14-
import java.util.{HashMap, Timer, TimerTask}
15-
import java.util.concurrent.{TimeUnit, TimeoutException, Executors => JExecutors}
16-
22+
import java.util.HashMap
23+
import java.util.Timer
24+
import java.util.TimerTask
25+
import java.util.concurrent.Executors as JExecutors
26+
import java.util.concurrent.TimeUnit
27+
import java.util.concurrent.TimeoutException
1728
import scala.collection.mutable
18-
import scala.io.{Codec, Source}
29+
import scala.collection.mutable.ListBuffer
30+
import scala.io.Codec
31+
import scala.io.Source
1932
import scala.jdk.CollectionConverters.*
20-
import scala.util.{Random, Try, Failure => TryFailure, Success => TrySuccess, Using}
33+
import scala.language.unsafeNulls
34+
import scala.util.Failure as TryFailure
35+
import scala.util.Random
36+
import scala.util.Success as TrySuccess
37+
import scala.util.Try
38+
import scala.util.Using
2139
import scala.util.control.NonFatal
2240
import scala.util.matching.Regex
23-
import scala.collection.mutable.ListBuffer
2441

2542
import dotc.{Compiler, Driver}
2643
import dotc.core.Contexts.*
@@ -32,7 +49,6 @@ import dotc.reporting.Diagnostic
3249
import dotc.config.Config
3350
import dotc.util.{DiffUtil, SourceFile, SourcePosition, Spans, NoSourcePosition}
3451
import io.AbstractFile
35-
import dotty.tools.vulpix.TestConfiguration.defaultOptions
3652

3753
/** A parallel testing suite whose goal is to integrate nicely with JUnit
3854
*
@@ -459,7 +475,7 @@ trait ParallelTesting extends RunnerOrchestration { self =>
459475

460476
/** Print a progress bar for the current `Test` */
461477
private def updateProgressMonitor(start: Long): Unit =
462-
if testSourcesCompleted < sourceCount then
478+
if testSourcesCompleted < sourceCount && !isUserDebugging then
463479
realStdout.print(s"\r${makeProgressBar(start)}")
464480

465481
private def finishProgressMonitor(start: Long): Unit =
@@ -1832,6 +1848,10 @@ trait ParallelTesting extends RunnerOrchestration { self =>
18321848
flags.options.sliding(2).collectFirst {
18331849
case Array("-encoding", encoding) => Charset.forName(encoding)
18341850
}.getOrElse(StandardCharsets.UTF_8)
1851+
1852+
def isUserDebugging: Boolean =
1853+
val mxBean = ManagementFactory.getRuntimeMXBean
1854+
mxBean.getInputArguments.asScala.exists(_.contains("jdwp"))
18351855
}
18361856

18371857
object ParallelTesting {

0 commit comments

Comments
 (0)