You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by fr...@apache.org on 2025/04/24 16:50:42 UTC

(logging-log4net) branch Feature/CompressionForRollingFileAppender updated: added simple compression tests for prototyping

This is an automated email from the ASF dual-hosted git repository.

freeandnil pushed a commit to branch Feature/CompressionForRollingFileAppender
in repository https://gitbox.apache.org/repos/asf/logging-log4net.git


The following commit(s) were added to refs/heads/Feature/CompressionForRollingFileAppender by this push:
     new 1a04bb25 added simple compression tests for prototyping
1a04bb25 is described below

commit 1a04bb25322de4f2cef30be990eea5fb88466353
Author: Jan Friedrich <fr...@apache.org>
AuthorDate: Thu Apr 24 18:50:28 2025 +0200

    added simple compression tests for prototyping
---
 .../Appender/RollingFileAppenderCompressionTest.cs | 62 ++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/src/log4net.Tests/Appender/RollingFileAppenderCompressionTest.cs b/src/log4net.Tests/Appender/RollingFileAppenderCompressionTest.cs
new file mode 100644
index 00000000..0abcc030
--- /dev/null
+++ b/src/log4net.Tests/Appender/RollingFileAppenderCompressionTest.cs
@@ -0,0 +1,62 @@
+#region Apache License
+
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more 
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership. 
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with 
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#endregion
+
+using System.IO;
+using System.IO.Compression;
+using log4net.Appender;
+using NUnit.Framework;
+
+namespace log4net.Tests.Appender;
+
+/// <summary>
+/// Used for internal unit testing the compression feature of <see cref="RollingFileAppender"/> class.
+/// </summary>
+[TestFixture]
+public class RollingFileAppenderCompressionTest
+{
+  /// <summary>
+  /// Test Zip-Compression
+  /// </summary>
+  [Test]
+  public void CompressZipFile()
+  {
+    FileInfo file = new("test.zip");
+    using FileStream zipFile = file.Create();
+    using ZipArchive archive = new(zipFile, ZipArchiveMode.Create);
+    ZipArchiveEntry entry = archive.CreateEntry("test.log");
+    using Stream stream = entry.Open();
+    for (int i = 0; i < 10_000; i++)
+      stream.WriteByte((byte)'A');
+  }
+
+  /// <summary>
+  /// Test GZip-Compression
+  /// </summary>
+  [Test]
+  public void CompressGZipFile()
+  {
+    FileInfo file = new("test.gz");
+    using FileStream zipFile = file.Create();
+    using GZipStream archive = new(zipFile, CompressionMode.Compress);
+    for (int i = 0; i < 10_000; i++)
+      archive.WriteByte((byte)'A');
+  }
+}
\ No newline at end of file