@@ -2,25 +2,42 @@ package dotty
2
2
package tools
3
3
package vulpix
4
4
5
- import scala . language . unsafeNulls
5
+ import dotty . tools . vulpix . TestConfiguration . defaultOptions
6
6
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
9
13
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
10
20
import java .nio .file .StandardCopyOption .REPLACE_EXISTING
11
- import java .nio .file .{Files , NoSuchFileException , Path , Paths }
12
- import java .nio .charset .{Charset , StandardCharsets }
13
21
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
17
28
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
19
32
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
21
39
import scala .util .control .NonFatal
22
40
import scala .util .matching .Regex
23
- import scala .collection .mutable .ListBuffer
24
41
25
42
import dotc .{Compiler , Driver }
26
43
import dotc .core .Contexts .*
@@ -32,7 +49,6 @@ import dotc.reporting.Diagnostic
32
49
import dotc .config .Config
33
50
import dotc .util .{DiffUtil , SourceFile , SourcePosition , Spans , NoSourcePosition }
34
51
import io .AbstractFile
35
- import dotty .tools .vulpix .TestConfiguration .defaultOptions
36
52
37
53
/** A parallel testing suite whose goal is to integrate nicely with JUnit
38
54
*
@@ -459,7 +475,7 @@ trait ParallelTesting extends RunnerOrchestration { self =>
459
475
460
476
/** Print a progress bar for the current `Test` */
461
477
private def updateProgressMonitor (start : Long ): Unit =
462
- if testSourcesCompleted < sourceCount then
478
+ if testSourcesCompleted < sourceCount && ! isUserDebugging then
463
479
realStdout.print(s " \r ${makeProgressBar(start)}" )
464
480
465
481
private def finishProgressMonitor (start : Long ): Unit =
@@ -1832,6 +1848,10 @@ trait ParallelTesting extends RunnerOrchestration { self =>
1832
1848
flags.options.sliding(2 ).collectFirst {
1833
1849
case Array (" -encoding" , encoding) => Charset .forName(encoding)
1834
1850
}.getOrElse(StandardCharsets .UTF_8 )
1851
+
1852
+ def isUserDebugging : Boolean =
1853
+ val mxBean = ManagementFactory .getRuntimeMXBean
1854
+ mxBean.getInputArguments.asScala.exists(_.contains(" jdwp" ))
1835
1855
}
1836
1856
1837
1857
object ParallelTesting {
0 commit comments