Explorar el Código

Add unit tests for recursive acquire of a Write or Upgradeable lock from a Read lock state

Jérémie Laval hace 15 años
padre
commit
fcf6cc6955

+ 28 - 0
mcs/class/System.Core/Test/System.Threading/ReaderWriterLockSlimTest.cs

@@ -414,6 +414,34 @@ namespace MonoTests.System.Threading
 			Assert.IsTrue (v.TryEnterReadLock (100), "#3");
 		}
 
+		[Test]
+		public void RecursiveReadPlusWriteLockTest ()
+		{
+			var v = new ReaderWriterLockSlim (LockRecursionPolicy.SupportsRecursion);
+
+			try {
+				v.EnterReadLock ();
+				v.EnterWriteLock ();
+				Assert.Fail ("1");
+			} catch (LockRecursionException ex) {
+				Assert.IsNotNull (ex, "#1");
+			}
+		}
+
+		[Test]
+		public void RecursiveReadPlusUpgradeableLockTest ()
+		{
+			var v = new ReaderWriterLockSlim (LockRecursionPolicy.SupportsRecursion);
+
+			try {
+				v.EnterReadLock ();
+				v.EnterUpgradeableReadLock ();
+				Assert.Fail ("1");
+			} catch (LockRecursionException ex) {
+				Assert.IsNotNull (ex, "#1");
+			}
+		}
+
 		[Test]
 		public void RecursiveWriteLockTest ()
 		{