Add a test case of no user name change
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 4 Jan 2011 15:55:18 +0000 (15:55 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 4 Jan 2011 15:55:18 +0000 (15:55 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1055085 13f79535-47bb-0310-9956-ffa450edef68

modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/AlternateUsernameTest.java
modules/jdbc-pool/test/org/apache/tomcat/jdbc/test/DefaultTestCase.java

index e910bbc..dcdc079 100644 (file)
@@ -38,13 +38,16 @@ public class AlternateUsernameTest extends DefaultTestCase {
     public AlternateUsernameTest(String name) {
         super(name);
     }
-    
     public void testUsernameCompare() throws Exception {
-        
+        testUsername(true);
+    }
+    
+    private void testUsername(boolean allowUsernameChange) throws Exception {
+        long start = System.currentTimeMillis();
         this.init();
         this.datasource.setDriverClassName(Driver.class.getName());
         this.datasource.setUrl("jdbc:tomcat:test");
-        this.datasource.setAlternateUsernameAllowed(true);
+        this.datasource.setAlternateUsernameAllowed(allowUsernameChange);
         this.datasource.getConnection().close();
         int withoutuser =10;
         int withuser = withoutuser;
@@ -52,7 +55,7 @@ public class AlternateUsernameTest extends DefaultTestCase {
         for (int i=0; i<withuser; i++) {
             TestRunner with = new TestRunner("foo","bar",datasource.getPoolProperties().getUsername(),datasource.getPoolProperties().getPassword());
             TestRunner without = new TestRunner(null,null,datasource.getPoolProperties().getUsername(),datasource.getPoolProperties().getPassword());
-            runners[i] = with;
+            runners[i] = allowUsernameChange?with:without;
             runners[i+withuser] = without;
         }
         ExecutorService svc = Executors.newFixedThreadPool(withuser+withoutuser);
@@ -65,12 +68,13 @@ public class AlternateUsernameTest extends DefaultTestCase {
             failures += results.get(i+withuser).get().failures;
             total+=results.get(i+withuser).get().iterations;
         }
+        long stop = System.currentTimeMillis();
         assertEquals("Nr of failures was:"+failures,0, failures);
         svc.shutdownNow();
         this.datasource.close();
         System.out.println("Nr of connect() calls:"+Driver.connectCount.get());
         System.out.println("Nr of disconnect() calls:"+Driver.disconnectCount.get());
-        System.out.println("Nr of iterations:"+total);
+        System.out.println("Nr of iterations:"+total+" over "+(stop-start)+ " ms.");
 
     }
     
@@ -78,6 +82,10 @@ public class AlternateUsernameTest extends DefaultTestCase {
         testUsernameCompare();
     }
     
+    public void testUsernameCompareNotAllowed() throws Exception {
+        testUsername(false);
+    }
+    
     public static class TestResult {
         public int iterations;
         public int failures;
index f19ff63..401c380 100644 (file)
@@ -180,6 +180,7 @@ public class DefaultTestCase extends TestCase {
         tDatasource = null;
         //c3p0Datasource = null;
         System.gc();
+        org.apache.tomcat.jdbc.test.driver.Driver.reset();
     }
 
     private final static String PROP_DEFAULTAUTOCOMMIT = "defaultAutoCommit";