org.objectweb.cjdbc.util
Class ReadPrioritaryFIFOWriteLockTest

java.lang.Object
  extended byTestCase
      extended byorg.objectweb.cjdbc.util.ReadPrioritaryFIFOWriteLockTest

public class ReadPrioritaryFIFOWriteLockTest
extends TestCase

Reader/Writer Lock test class.

Version:
1.0
Author:
Emmanuel Cecchet
See Also:
Serialized Form

Field Summary
private  boolean done
           
private  ReadPrioritaryFIFOWriteLock lock
           
private  java.util.Random r
           
private  int randomTest
           
(package private) static long TIMEOUT
           
 
Constructor Summary
ReadPrioritaryFIFOWriteLockTest()
           
 
Method Summary
private  java.lang.Thread acquireReadDoneFalse()
           
private  java.lang.Thread acquireReadDoneTrue()
           
private  java.lang.Thread acquireWriteDoneFalse()
           
private  java.lang.Thread acquireWriteDoneTrue()
           
static void main(java.lang.String[] args)
           
private  java.lang.Thread randomAcquireReleaseRead()
           
private  java.lang.Thread randomAcquireReleaseWrite()
           
private  void randomTestComplete()
           
protected  void setUp()
           
static Test suite()
           
 void testNonBlocking()
          Acquire 4 read locks, then release them.
 void testRandom()
          Randomly acquire and release locks.
 void testReadAfterWrite()
          Acquire 1 write lock.
 void testWriteAfterRead()
          Acquire 4 read locks.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TIMEOUT

static final long TIMEOUT
See Also:
Constant Field Values

lock

private ReadPrioritaryFIFOWriteLock lock

done

private boolean done

randomTest

private int randomTest

r

private java.util.Random r
Constructor Detail

ReadPrioritaryFIFOWriteLockTest

public ReadPrioritaryFIFOWriteLockTest()
Method Detail

suite

public static Test suite()

main

public static void main(java.lang.String[] args)

setUp

protected void setUp()
See Also:
junit.framework.TestCase#setUp()

testNonBlocking

public void testNonBlocking()
Acquire 4 read locks, then release them. Acquire 1 write lock and release it. Finally acquire 1 read lock and release it.


testWriteAfterRead

public void testWriteAfterRead()
Acquire 4 read locks. Acquire 1 write lock and check that the write lock is blocked. Release each read lock in turn and check that the write lock is blocked. Finally check that the write lock has been released.


testReadAfterWrite

public void testReadAfterWrite()
Acquire 1 write lock. Acquire 4 read locks and check that they are all blocked. Release the write lock and check that all read locks have been released.


testRandom

public void testRandom()
Randomly acquire and release locks. This test should terminate


randomTestComplete

private void randomTestComplete()

acquireReadDoneTrue

private java.lang.Thread acquireReadDoneTrue()

acquireReadDoneFalse

private java.lang.Thread acquireReadDoneFalse()

acquireWriteDoneTrue

private java.lang.Thread acquireWriteDoneTrue()

acquireWriteDoneFalse

private java.lang.Thread acquireWriteDoneFalse()

randomAcquireReleaseRead

private java.lang.Thread randomAcquireReleaseRead()

randomAcquireReleaseWrite

private java.lang.Thread randomAcquireReleaseWrite()


Copyright © 2002, 2003 - ObjectWeb Consortium - All Rights Reserved.