* ReaderWriterLockTest.cs: Added one more test.
authorLluis Sanchez <lluis@novell.com>
Wed, 7 Apr 2004 09:06:45 +0000 (09:06 -0000)
committerLluis Sanchez <lluis@novell.com>
Wed, 7 Apr 2004 09:06:45 +0000 (09:06 -0000)
svn path=/trunk/mcs/; revision=25147

mcs/class/corlib/Test/System.Threading/ChangeLog
mcs/class/corlib/Test/System.Threading/ReaderWriterLockTest.cs

index 1e3b1626e63768c2b77833a2bcc50890792e151d..661cd4374abc25fda12e131f3310d8ff90b75f9e 100644 (file)
@@ -1,3 +1,7 @@
+2004-04-07  Lluis Sanchez Gual <lluis@ximian.com>\r
+\r
+       * ReaderWriterLockTest.cs: Added one more test.\r
+\r
 2004-04-06  Lluis Sanchez Gual <lluis@ximian.com>\r
 \r
        * ReaderWriterLockTest.cs: New tests for System.Threading.ReaderWriterLock.\r
index 3c61fc3800ba0820238741124eed8c5143504fb4..7cb66350503b22e2a9fe699e002a9f77274b332a 100644 (file)
@@ -202,5 +202,29 @@ namespace MonoTests.System.Threading
                        rwlock.ReleaseReaderLock ();\r
                        Assert ("u6", !rwlock.IsReaderLockHeld);\r
                }\r
+               \r
+               [Test]\r
+               public void TestReaderInsideWriter ()\r
+               {\r
+                       // Reader acquires and releases work like the writer equivalent\r
+                       \r
+                       rwlock = new ReaderWriterLock ();\r
+                       rwlock.AcquireWriterLock (-1);\r
+                       rwlock.AcquireReaderLock (-1);\r
+                       Assert ("u1", !rwlock.IsReaderLockHeld);\r
+                       Assert ("u2", rwlock.IsWriterLockHeld);\r
+                       rwlock.AcquireReaderLock (-1);\r
+                       Assert ("u3", !rwlock.IsReaderLockHeld);\r
+                       Assert ("u4", rwlock.IsWriterLockHeld);\r
+                       rwlock.ReleaseWriterLock ();\r
+                       Assert ("u5", !rwlock.IsReaderLockHeld);\r
+                       Assert ("u6", rwlock.IsWriterLockHeld);\r
+                       rwlock.ReleaseReaderLock ();\r
+                       Assert ("u7", !rwlock.IsReaderLockHeld);\r
+                       Assert ("u8", rwlock.IsWriterLockHeld);\r
+                       rwlock.ReleaseReaderLock ();\r
+                       Assert ("u9", !rwlock.IsReaderLockHeld);\r
+                       Assert ("u10", !rwlock.IsWriterLockHeld);\r
+               }\r
        }\r
 }