Skip to content

Commit

Permalink
Merge pull request #668 from alexarchambault/tweak-scala-js-native-te…
Browse files Browse the repository at this point in the history
…st-logging

Better Scala.JS and Scala Native logging during tests
  • Loading branch information
alexarchambault authored Feb 21, 2022
2 parents c52d375 + cdce9f6 commit 8ffc73b
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 14 deletions.
5 changes: 5 additions & 0 deletions modules/build/src/main/scala/scala/build/Logger.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package scala.build

import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}

import java.io.{OutputStream, PrintStream}

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

def coursierLogger: coursier.cache.CacheLogger
def bloopRifleLogger: BloopRifleLogger
def scalaJsLogger: ScalaJsLogger
def scalaNativeTestLogger: sn.Logger
def scalaNativeCliInternalLoggerOptions: List[String]

Expand All @@ -48,6 +51,8 @@ object Logger {
coursier.cache.CacheLogger.nop
def bloopRifleLogger: BloopRifleLogger =
BloopRifleLogger.nop
def scalaJsLogger: ScalaJsLogger =
NullLogger
def scalaNativeTestLogger: sn.Logger =
sn.Logger.nullLogger
def scalaNativeCliInternalLoggerOptions: List[String] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package scala.build

import org.scalajs.logging.{Logger => ScalaJsLogger}

import java.io.PrintStream

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

def coursierLogger: coursier.cache.CacheLogger = parent.coursierLogger
def bloopRifleLogger: BloopRifleLogger = parent.bloopRifleLogger
def scalaJsLogger: ScalaJsLogger = parent.scalaJsLogger
def scalaNativeTestLogger: sn.Logger = parent.scalaNativeTestLogger
def scalaNativeCliInternalLoggerOptions: List[String] = parent.scalaNativeCliInternalLoggerOptions

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,6 @@ object Runner {
): Either[TestError, Int] = either {
import org.scalajs.jsenv.Input
import org.scalajs.jsenv.nodejs.NodeJSEnv
import org.scalajs.logging.ScalaConsoleLogger
import org.scalajs.testing.adapter.TestAdapter
val nodePath = findInPath("node").fold("node")(_.toString)
val jsEnv = new NodeJSEnv(
Expand All @@ -251,7 +250,7 @@ object Runner {
.withEnv(Map.empty)
.withSourceMap(NodeJSEnv.SourceMap.Disable)
)
val adapterConfig = TestAdapter.Config().withLogger(new ScalaConsoleLogger)
val adapterConfig = TestAdapter.Config().withLogger(logger.scalaJsLogger)
val inputs = Seq(Input.Script(entrypoint.toPath))
var adapter: TestAdapter = null

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package scala.build.tests

import scala.build.errors.Severity
import com.eed3si9n.expecty.Expecty.expect
import scala.build.options.{BuildOptions, InternalOptions, JavaOptions, Scope}
import scala.build.{Build, Inputs, LocalRepo, Positioned, Sources}
import scala.build.options.{ScalacOpt, ScalaOptions, ShadowingSeq}
import scala.build.Logger
import coursier.cache.CacheLogger
import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}

import java.io.PrintStream

import scala.build.Ops._
import scala.build.blooprifle.BloopRifleLogger
import scala.build.errors.BuildException
import scala.build.errors.Diagnostic
import java.io.PrintStream
import coursier.cache.CacheLogger
import scala.build.Position
import scala.build.errors.{BuildException, Diagnostic, Severity}
import scala.build.options.{
BuildOptions,
InternalOptions,
JavaOptions,
ScalacOpt,
ScalaOptions,
Scope,
ShadowingSeq
}
import scala.build.{Build, Inputs, LocalRepo, Logger, Position, Positioned, Sources}

class BuildProjectTests extends munit.FunSuite {

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

override def bloopRifleLogger: BloopRifleLogger = BloopRifleLogger.nop
override def scalaJsLogger: ScalaJsLogger = NullLogger

override def scalaNativeTestLogger: scala.scalanative.build.Logger =
scala.scalanative.build.Logger.nullLogger
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package scala.build.tests

import coursier.cache.CacheLogger
import coursier.cache.loggers.{FallbackRefreshDisplay, RefreshLogger}
import org.scalajs.logging.{Logger => ScalaJsLogger, NullLogger}

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

def bloopRifleLogger: BloopRifleLogger =
BloopRifleLogger.nop
def scalaJsLogger: ScalaJsLogger =
NullLogger
def scalaNativeTestLogger: sn.Logger =
sn.Logger.nullLogger
def scalaNativeCliInternalLoggerOptions: List[String] =
Expand Down
15 changes: 13 additions & 2 deletions modules/cli/src/main/scala/scala/cli/internal/CliLogger.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package scala.cli.internal
import ch.epfl.scala.{bsp4j => b}
import coursier.cache.CacheLogger
import coursier.cache.loggers.{FallbackRefreshDisplay, ProgressBarRefreshDisplay, RefreshLogger}
import org.scalajs.logging.{Level => ScalaJsLevel, Logger => ScalaJsLogger, ScalaConsoleLogger}

import java.io.PrintStream

Expand Down Expand Up @@ -150,13 +151,23 @@ class CliLogger(
def bloopCliInheritStderr = verbosity >= 3
}

def scalaJsLogger: ScalaJsLogger =
// FIXME Doesn't use 'out'
new ScalaConsoleLogger(
minLevel =
if (verbosity >= 2) ScalaJsLevel.Debug
else if (verbosity >= 1) ScalaJsLevel.Info
else if (verbosity >= 0) ScalaJsLevel.Warn
else ScalaJsLevel.Error
)

def scalaNativeTestLogger: sn.Logger =
new sn.Logger {
def trace(msg: Throwable) = ()
def debug(msg: String) = logger.debug(msg)
def info(msg: String) = logger.message(msg)
def info(msg: String) = logger.log(msg)
def warn(msg: String) = logger.log(msg)
def error(msg: String) = logger.log(msg)
def error(msg: String) = logger.message(msg)
}

val scalaNativeCliInternalLoggerOptions: List[String] = {
Expand Down

0 comments on commit 8ffc73b

Please sign in to comment.