Skip to content

Commit fbd869c

Browse files
committed
improvement: Fix tests and also send trace messages
1 parent c2b6296 commit fbd869c

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

frontend/src/main/scala/bloop/logging/BspServerLogger.scala

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,20 @@ final class BspServerLogger private (
6565
override def debug(msg: String)(implicit ctx: DebugFilter): Unit =
6666
if (debugFilter.isEnabledFor(ctx)) printDebug(msg)
6767

68-
override def trace(t: Throwable): Unit = underlying.trace(t)
68+
override def trace(t: Throwable): Unit = {
69+
if (isVerbose) {
70+
def msg(t: Throwable): String = {
71+
val base = t.getMessage() + "\n" + t.getStackTrace().mkString("\n\t")
72+
if (t.getCause() == null) base
73+
else base + "\nCaused by: " + msg(t.getCause())
74+
}
75+
client.notify(
76+
Build.logMessage,
77+
bsp.LogMessageParams(bsp.MessageType.Log, None, originId, msg(t))
78+
)
79+
}
80+
underlying.trace(t)
81+
}
6982

7083
override def error(msg: String): Unit = {
7184
client.notify(

frontend/src/test/scala/bloop/bsp/BspCompileSpec.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ class BspCompileSpec(
3636
assertExitStatus(state, ExitStatus.Ok)
3737
}
3838
}
39-
val contentLogs = logger.debugs.flatMap(_.split("\n")).filter(_.startsWith(" --> content:"))
39+
val contentLogs = logger.debugs
40+
.flatMap(_.split("\n"))
41+
.filter(msg => msg.startsWith(" --> content:") && !msg.contains("logMessage"))
4042
val allButInitializeRequest = contentLogs.filterNot(_.contains("""build/initialize""""))
4143
// Filter out the initialize request that contains platform-specific details
4244
assertNoDiff(

frontend/src/test/scala/bloop/bsp/BspConnectionSpec.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,9 @@ class BspConnectionSpec(
9898
def checkConnectionIsInitialized(logger: RecordingLogger): Unit = {
9999
val contentLogs = logger.debugs.flatMap(_.split("\n")).filter(_.startsWith(" --> content:"))
100100
// Filter out the initialize request that contains platform-specific details
101-
val allButInitializeRequest = contentLogs.filterNot(_.contains("""build/initialize""""))
101+
val allButInitializeRequest = contentLogs.filterNot(msg =>
102+
msg.contains("""build/initialize"""") || msg.contains("logMessage")
103+
)
102104
assertNoDiff(
103105
allButInitializeRequest.mkString(lineSeparator),
104106
s"""|

0 commit comments

Comments
 (0)