Add unit tests for recursive acquire of a Write or Upgradeable lock from a Read lock...
authorJérémie Laval <jeremie.laval@gmail.com>
Tue, 31 Aug 2010 15:44:50 +0000 (16:44 +0100)
committerJérémie Laval <jeremie.laval@gmail.com>
Tue, 31 Aug 2010 16:01:41 +0000 (17:01 +0100)
mcs/class/System.Core/Test/System.Threading/ReaderWriterLockSlimTest.cs

index 1fa7cb27de75a85193094cd0443a5e4d3bf734a1..4f0477b9c50a5823906ffae55e0bdc60f328d9ee 100644 (file)
@@ -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 ()
                {