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