01: /**
02: * Clever Little Trader
03: *
04: * Jubilee Group and Logical Cobwebs, 2002
05: */package org.logicalcobwebs.proxool;
06:
07: import junit.framework.TestCase;
08: import org.apache.commons.logging.Log;
09: import org.apache.commons.logging.LogFactory;
10: import org.logicalcobwebs.concurrent.ReaderPreferenceReadWriteLock;
11:
12: import java.util.Stack;
13:
14: /**
15: * Provides common code for all Proxool tests
16: * @version $Revision: 1.6 $, $Date: 2006/01/18 14:40:06 $
17: * @author bill
18: * @author $Author: billhorsman $ (current maintainer)
19: * @since Proxool 0.8
20: */
21: public abstract class AbstractProxoolTest extends TestCase {
22:
23: private static final Log LOG = LogFactory
24: .getLog(AbstractProxoolTest.class);
25:
26: private String alias;
27:
28: private static ReaderPreferenceReadWriteLock testLock = new ReaderPreferenceReadWriteLock();
29:
30: private Stack threadNames = new Stack();
31:
32: public AbstractProxoolTest(String alias) {
33: super (alias);
34: this .alias = alias;
35: }
36:
37: /**
38: * @see TestCase#setUp()
39: */
40: protected void setUp() throws Exception {
41: GlobalTest.globalSetup();
42: threadNames.push(Thread.currentThread().getName());
43: LOG.debug("Thread '" + Thread.currentThread().getName()
44: + "' -> '" + alias + "'");
45: Thread.currentThread().setName(alias);
46: testLock.writeLock().acquire();
47: }
48:
49: /**
50: * @see TestCase#tearDown()
51: */
52: protected void tearDown() throws Exception {
53: try {
54: GlobalTest.globalTeardown(alias);
55: Thread.currentThread().setName((String) threadNames.pop());
56: LOG.debug("Thread '" + alias + "' -> '"
57: + Thread.currentThread().getName() + "'");
58: } finally {
59: testLock.writeLock().release();
60: }
61: }
62:
63: }
64:
65: /*
66: Revision history:
67: $Log: AbstractProxoolTest.java,v $
68: Revision 1.6 2006/01/18 14:40:06 billhorsman
69: Unbundled Jakarta's Commons Logging.
70:
71: Revision 1.5 2004/03/26 16:00:23 billhorsman
72: Make sure we release lock on tearDown. I don't think this was a problem, but it was unrobust.
73:
74: Revision 1.4 2003/09/30 19:09:46 billhorsman
75: Now uses a readwrite lock to make sure that each test runs sequentially. This should be true all the time, but sometimes
76: tests fail and it is always because of some timing issue that is very hard to track down. This is an attempt to
77: fix that.
78:
79: Revision 1.3 2003/03/04 10:11:09 billhorsman
80: actually made abstract
81:
82: Revision 1.2 2003/03/03 17:38:47 billhorsman
83: leave shutdown to AbstractProxoolTest
84:
85: Revision 1.1 2003/03/03 17:08:54 billhorsman
86: all tests now extend AbstractProxoolTest
87:
88: */
|