From a2e3e881064cba8308e6e7601ccace49444f2aec Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 23 Oct 2012 20:59:16 +0800 Subject: [PATCH] add lock fair testcase --- .../alibaba/druid/bvt/pool/LockFairTest.java | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/alibaba/druid/bvt/pool/LockFairTest.java b/src/test/java/com/alibaba/druid/bvt/pool/LockFairTest.java index 7193efbc2b..16547efc1f 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/LockFairTest.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/LockFairTest.java @@ -1,5 +1,6 @@ package com.alibaba.druid.bvt.pool; +import java.sql.Connection; import java.util.concurrent.locks.ReentrantLock; import junit.framework.Assert; @@ -11,19 +12,50 @@ import com.alibaba.druid.util.JdbcUtils; public class LockFairTest extends TestCase { private DruidDataSource dataSource; - + protected void setUp() throws Exception { dataSource = new DruidDataSource(); + dataSource.setUrl("jdbc:mock:xx"); } - + protected void tearDown() throws Exception { JdbcUtils.close(dataSource); } public void test_fair() throws Exception { - Assert.assertEquals(false, ((ReentrantLock)dataSource.getLock()).isFair()); + Assert.assertEquals(false, ((ReentrantLock) dataSource.getLock()).isFair()); dataSource.setMaxWait(100); + + Assert.assertEquals(true, ((ReentrantLock) dataSource.getLock()).isFair()); + { + Connection conn = dataSource.getConnection(); + conn.close(); + } + dataSource.setMaxWait(110); + + Assert.assertEquals(true, ((ReentrantLock) dataSource.getLock()).isFair()); + { + Connection conn = dataSource.getConnection(); + conn.close(); + } - Assert.assertEquals(true, ((ReentrantLock)dataSource.getLock()).isFair()); + dataSource.setMaxWait(0); + + Assert.assertEquals(true, ((ReentrantLock) dataSource.getLock()).isFair()); + { + Connection conn = dataSource.getConnection(); + conn.close(); + } + } + + public void test_fair_1() throws Exception { + + Connection conn = dataSource.getConnection(); + conn.close(); + + Assert.assertEquals(false, ((ReentrantLock) dataSource.getLock()).isFair()); + dataSource.setMaxWait(100); + + Assert.assertEquals(false, ((ReentrantLock) dataSource.getLock()).isFair()); } }