This is an automated email from the ASF dual-hosted git repository.
freeandnil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4net.git
The following commit(s) were added to refs/heads/master by this push:
new ec7a56d3 shorten console output for unit tests
ec7a56d3 is described below
commit ec7a56d3ef1fec5993b259e0e0153a1cd5205f0b
Author: Jan Friedrich <[email protected]>
AuthorDate: Mon Aug 25 16:45:47 2025 +0200
shorten console output for unit tests
---
src/changelog/3.2.1/268-shorten-test-output.xml | 10 +++++++++
src/log4net.Tests/Util/LogLogTest.cs | 27 +++++++++++++++++++++----
src/log4net/Util/LogLog.cs | 21 ++++++++++++++++++-
3 files changed, 53 insertions(+), 5 deletions(-)
diff --git a/src/changelog/3.2.1/268-shorten-test-output.xml
b/src/changelog/3.2.1/268-shorten-test-output.xml
new file mode 100644
index 00000000..4a0ea400
--- /dev/null
+++ b/src/changelog/3.2.1/268-shorten-test-output.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="https://logging.apache.org/xml/ns"
+ xsi:schemaLocation="https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
+ type="fixed">
+ <issue id="268" link="https://github.com/apache/logging-log4net/pull/268"/>
+ <description format="asciidoc">
+ shorten console output for unit tests (by @FreeAndNil in
https://github.com/apache/logging-log4net/pull/268[#268])
+ </description>
+</entry>
\ No newline at end of file
diff --git a/src/log4net.Tests/Util/LogLogTest.cs
b/src/log4net.Tests/Util/LogLogTest.cs
index 3cde0e3b..94acb385 100644
--- a/src/log4net.Tests/Util/LogLogTest.cs
+++ b/src/log4net.Tests/Util/LogLogTest.cs
@@ -32,6 +32,9 @@ namespace log4net.Tests.Util;
[TestFixture]
public class LogLogTest
{
+ /// <summary>
+ /// Tests the <see cref="TraceListener"/> functionality
+ /// </summary>
[Test]
public void TraceListenerCounterTest()
{
@@ -46,6 +49,9 @@ public void TraceListenerCounterTest()
Assert.That(listTraceListener.Count, Is.EqualTo(2));
}
+ /// <summary>
+ /// Tests the <see cref="LogLog.EmitInternalMessages"/> property
+ /// </summary>
[Test]
public void EmitInternalMessages()
{
@@ -71,6 +77,9 @@ public void EmitInternalMessages()
}
}
+ /// <summary>
+ /// Tests the <see cref="LogLog.LogReceivedAdapter"/> class.
+ /// </summary>
[Test]
public void LogReceivedAdapter()
{
@@ -90,10 +99,13 @@ public void LogReceivedAdapter()
[Test]
public void LogReceivedAdapterThreading()
{
- for (int i = 0; i < 1000; i++)
+ LogLog.ExecuteWithoutEmittingInternalMessages(() =>
{
- LogReceivedAdapterThreadingCore(i);
- }
+ for (int i = 0; i < 1000; i++)
+ {
+ LogReceivedAdapterThreadingCore(i);
+ }
+ });
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Security", "CA5394:Do not
use insecure randomness",
@@ -119,13 +131,20 @@ private void LogReceivedAdapterThreadingCore(int seed)
}
}
+/// <summary>
+/// Mock for <see cref="TraceListener"/> that counts the number of calls to
<see cref="Write(string?)"/>
+/// </summary>
internal sealed class TraceListenerCounter : TraceListener
{
+ /// <inheritdoc/>
public override void Write(string? message) => Count++;
+ /// <inheritdoc/>
public override void WriteLine(string? message) => Write(message);
+ /// <inheritdoc/>
public void Reset() => Count = 0;
+ /// <inheritdoc/>
public int Count { get; private set; }
-}
+}
\ No newline at end of file
diff --git a/src/log4net/Util/LogLog.cs b/src/log4net/Util/LogLog.cs
index f5f3c607..121bb4b3 100644
--- a/src/log4net/Util/LogLog.cs
+++ b/src/log4net/Util/LogLog.cs
@@ -223,10 +223,29 @@ static LogLog()
public static bool QuietMode { get; set; }
/// <summary>
- ///
+ /// Configures whether internal messages are emitted to Console.Out and
Console.Error.
/// </summary>
public static bool EmitInternalMessages { get; set; } = true;
+ /// <summary>
+ /// Execute the callback with internal messages suppressed
+ /// </summary>
+ /// <param name="callback">Callback</param>
+ public static void ExecuteWithoutEmittingInternalMessages(Action callback)
+ {
+ callback.EnsureNotNull();
+ bool oldEmitInternalMessages = EmitInternalMessages;
+ EmitInternalMessages = false;
+ try
+ {
+ callback();
+ }
+ finally
+ {
+ EmitInternalMessages = oldEmitInternalMessages;
+ }
+ }
+
/// <summary>
/// Raises the LogReceived event when an internal messages is received.
/// </summary>