You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by dp...@apache.org on 2018/10/03 18:40:47 UTC
[4/8] logging-log4net git commit: Added method to test if LocalMutex
LockStrategy actually perform lock
Added method to test if LocalMutex LockStrategy actually perform lock
Project: http://git-wip-us.apache.org/repos/asf/logging-log4net/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4net/commit/8fccdd34
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4net/tree/8fccdd34
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4net/diff/8fccdd34
Branch: refs/heads/feature/rfa-configurable-rolling-mutex
Commit: 8fccdd3492a965ed49e09d8c95ceb683b0a64377
Parents: 1782679
Author: Andrei Stryia <An...@epam.com>
Authored: Mon Oct 1 16:20:58 2018 +0300
Committer: Andrei Stryia <An...@epam.com>
Committed: Mon Oct 1 16:20:58 2018 +0300
----------------------------------------------------------------------
tests/src/Appender/RollingFileAppenderTest.cs | 29 +++++++---------------
1 file changed, 9 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/8fccdd34/tests/src/Appender/RollingFileAppenderTest.cs
----------------------------------------------------------------------
diff --git a/tests/src/Appender/RollingFileAppenderTest.cs b/tests/src/Appender/RollingFileAppenderTest.cs
index b9c2ed0..e3cf04d 100644
--- a/tests/src/Appender/RollingFileAppenderTest.cs
+++ b/tests/src/Appender/RollingFileAppenderTest.cs
@@ -33,7 +33,6 @@ using log4net.Util;
using NUnit.Framework;
using System.Globalization;
using System.Threading;
-using System.Threading.Tasks;
namespace log4net.Tests.Appender
{
@@ -1787,28 +1786,30 @@ namespace log4net.Tests.Appender
[Test]
public void TestRollingLockStrategyLocalMutex()
{
- String filename = c_fileName;
+ String filename = "test_lock.log";
SilentErrorHandler sh = new SilentErrorHandler();
- ILogger log = CreateLogger(filename, new FileAppender.MinimalLock(), sh, maxFileSize: 1, maxSizeRollBackups: 2, rollingLockStrategy: RollingFileAppender.RollingLockStrategyKind.LocalMutex);
- RollingFileAppender appender = (RollingFileAppender) log.Repository.GetAppenders()[0];
-
Mutex syncObject = null;
try
{
+ ILogger log = CreateLogger(filename, new FileAppender.MinimalLock(), sh, maxFileSize: 1, maxSizeRollBackups: 2, rollingLockStrategy: RollingFileAppender.RollingLockStrategyKind.LocalMutex);
+ RollingFileAppender appender = (RollingFileAppender)log.Repository.GetAppenders()[0];
+
syncObject = new Mutex(false, appender.File.Replace("\\", "_").Replace(":", "_").Replace("/", "_"));
syncObject.WaitOne();
// Logger should acquire Mutex in different thread
- var write1 = Task.Factory.StartNew(()=> Assert.DoesNotThrow(delegate { log.Log(GetType(), Level.Info, "1", null); }));
+ var loggerThread = new Thread(o => Assert.DoesNotThrow(delegate { log.Log(GetType(), Level.Info, "1", null); }));
+ loggerThread.Start();
// Wait some time
- WaitForStart(write1);
+ Thread.Sleep(2000);
// Since Mutex already locked, log file should be empty
AssertFileEquals(filename, string.Empty, cleanup: false);
syncObject.ReleaseMutex();
- write1.Wait();
+
+ loggerThread.Join(1000);
DestroyLogger();
AssertFileEquals(filename, "1" + Environment.NewLine);
@@ -1817,20 +1818,8 @@ namespace log4net.Tests.Appender
finally
{
if (syncObject != null)
- {
syncObject.Dispose();
- }
-
- }
- }
- private void WaitForStart(Task write1)
- {
- while (write1.Status != TaskStatus.Running)
- {
- Thread.Sleep(100);
}
-
- Thread.Sleep(800);
}
#endif