Skip to content

Commit 8ffc73b

Browse files
Merge pull request #668 from alexarchambault/tweak-scala-js-native-test-logging
Better Scala.JS and Scala Native logging during tests
2 parents c52d375 + cdce9f6 commit 8ffc73b

File tree

6 files changed

+42
-14
lines changed

6 files changed

+42
-14
lines changed

modules/build/src/main/scala/scala/build/Logger.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.build
22

3+
import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}
4+
35
import java.io.{OutputStream, PrintStream}
46

57
import scala.build.blooprifle.BloopRifleLogger
@@ -26,6 +28,7 @@ trait Logger {
2628

2729
def coursierLogger: coursier.cache.CacheLogger
2830
def bloopRifleLogger: BloopRifleLogger
31+
def scalaJsLogger: ScalaJsLogger
2932
def scalaNativeTestLogger: sn.Logger
3033
def scalaNativeCliInternalLoggerOptions: List[String]
3134

@@ -48,6 +51,8 @@ object Logger {
4851
coursier.cache.CacheLogger.nop
4952
def bloopRifleLogger: BloopRifleLogger =
5053
BloopRifleLogger.nop
54+
def scalaJsLogger: ScalaJsLogger =
55+
NullLogger
5156
def scalaNativeTestLogger: sn.Logger =
5257
sn.Logger.nullLogger
5358
def scalaNativeCliInternalLoggerOptions: List[String] =

modules/build/src/main/scala/scala/build/PersistentDiagnosticLogger.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package scala.build
22

3+
import org.scalajs.logging.{Logger => ScalaJsLogger}
4+
35
import java.io.PrintStream
46

57
import scala.build.blooprifle.BloopRifleLogger
@@ -27,6 +29,7 @@ class PersistentDiagnosticLogger(parent: Logger) extends Logger {
2729

2830
def coursierLogger: coursier.cache.CacheLogger = parent.coursierLogger
2931
def bloopRifleLogger: BloopRifleLogger = parent.bloopRifleLogger
32+
def scalaJsLogger: ScalaJsLogger = parent.scalaJsLogger
3033
def scalaNativeTestLogger: sn.Logger = parent.scalaNativeTestLogger
3134
def scalaNativeCliInternalLoggerOptions: List[String] = parent.scalaNativeCliInternalLoggerOptions
3235

modules/build/src/main/scala/scala/build/internal/Runner.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,6 @@ object Runner {
241241
): Either[TestError, Int] = either {
242242
import org.scalajs.jsenv.Input
243243
import org.scalajs.jsenv.nodejs.NodeJSEnv
244-
import org.scalajs.logging.ScalaConsoleLogger
245244
import org.scalajs.testing.adapter.TestAdapter
246245
val nodePath = findInPath("node").fold("node")(_.toString)
247246
val jsEnv = new NodeJSEnv(
@@ -251,7 +250,7 @@ object Runner {
251250
.withEnv(Map.empty)
252251
.withSourceMap(NodeJSEnv.SourceMap.Disable)
253252
)
254-
val adapterConfig = TestAdapter.Config().withLogger(new ScalaConsoleLogger)
253+
val adapterConfig = TestAdapter.Config().withLogger(logger.scalaJsLogger)
255254
val inputs = Seq(Input.Script(entrypoint.toPath))
256255
var adapter: TestAdapter = null
257256

modules/build/src/test/scala/scala/build/tests/BuildProjectTests.scala

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
package scala.build.tests
22

3-
import scala.build.errors.Severity
43
import com.eed3si9n.expecty.Expecty.expect
5-
import scala.build.options.{BuildOptions, InternalOptions, JavaOptions, Scope}
6-
import scala.build.{Build, Inputs, LocalRepo, Positioned, Sources}
7-
import scala.build.options.{ScalacOpt, ScalaOptions, ShadowingSeq}
8-
import scala.build.Logger
4+
import coursier.cache.CacheLogger
5+
import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}
6+
7+
import java.io.PrintStream
8+
99
import scala.build.Ops._
1010
import scala.build.blooprifle.BloopRifleLogger
11-
import scala.build.errors.BuildException
12-
import scala.build.errors.Diagnostic
13-
import java.io.PrintStream
14-
import coursier.cache.CacheLogger
15-
import scala.build.Position
11+
import scala.build.errors.{BuildException, Diagnostic, Severity}
12+
import scala.build.options.{
13+
BuildOptions,
14+
InternalOptions,
15+
JavaOptions,
16+
ScalacOpt,
17+
ScalaOptions,
18+
Scope,
19+
ShadowingSeq
20+
}
21+
import scala.build.{Build, Inputs, LocalRepo, Logger, Position, Positioned, Sources}
1622

1723
class BuildProjectTests extends munit.FunSuite {
1824

@@ -39,6 +45,7 @@ class BuildProjectTests extends munit.FunSuite {
3945
override def coursierLogger: CacheLogger = CacheLogger.nop
4046

4147
override def bloopRifleLogger: BloopRifleLogger = BloopRifleLogger.nop
48+
override def scalaJsLogger: ScalaJsLogger = NullLogger
4249

4350
override def scalaNativeTestLogger: scala.scalanative.build.Logger =
4451
scala.scalanative.build.Logger.nullLogger

modules/build/src/test/scala/scala/build/tests/TestLogger.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package scala.build.tests
22

33
import coursier.cache.CacheLogger
44
import coursier.cache.loggers.{FallbackRefreshDisplay, RefreshLogger}
5+
import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}
56

67
import scala.build.blooprifle.BloopRifleLogger
78
import scala.build.errors.BuildException
@@ -42,6 +43,8 @@ case class TestLogger(info: Boolean = true, debug: Boolean = false) extends Logg
4243

4344
def bloopRifleLogger: BloopRifleLogger =
4445
BloopRifleLogger.nop
46+
def scalaJsLogger: ScalaJsLogger =
47+
NullLogger
4548
def scalaNativeTestLogger: sn.Logger =
4649
sn.Logger.nullLogger
4750
def scalaNativeCliInternalLoggerOptions: List[String] =

modules/cli/src/main/scala/scala/cli/internal/CliLogger.scala

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package scala.cli.internal
33
import ch.epfl.scala.{bsp4j => b}
44
import coursier.cache.CacheLogger
55
import coursier.cache.loggers.{FallbackRefreshDisplay, ProgressBarRefreshDisplay, RefreshLogger}
6+
import org.scalajs.logging.{Level => ScalaJsLevel, Logger => ScalaJsLogger, ScalaConsoleLogger}
67

78
import java.io.PrintStream
89

@@ -150,13 +151,23 @@ class CliLogger(
150151
def bloopCliInheritStderr = verbosity >= 3
151152
}
152153

154+
def scalaJsLogger: ScalaJsLogger =
155+
// FIXME Doesn't use 'out'
156+
new ScalaConsoleLogger(
157+
minLevel =
158+
if (verbosity >= 2) ScalaJsLevel.Debug
159+
else if (verbosity >= 1) ScalaJsLevel.Info
160+
else if (verbosity >= 0) ScalaJsLevel.Warn
161+
else ScalaJsLevel.Error
162+
)
163+
153164
def scalaNativeTestLogger: sn.Logger =
154165
new sn.Logger {
155166
def trace(msg: Throwable) = ()
156167
def debug(msg: String) = logger.debug(msg)
157-
def info(msg: String) = logger.message(msg)
168+
def info(msg: String) = logger.log(msg)
158169
def warn(msg: String) = logger.log(msg)
159-
def error(msg: String) = logger.log(msg)
170+
def error(msg: String) = logger.message(msg)
160171
}
161172

162173
val scalaNativeCliInternalLoggerOptions: List[String] = {

0 commit comments

Comments
 (0)