Author: fhanik
Date: Fri Aug  8 00:22:51 2014
New Revision: 1616649

URL: http://svn.apache.org/r1616649
Log:
Fix suspect test cases. If validation times out, it should be treated as a 
validation error.

Modified:
    
tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java

Modified: 
tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java?rev=1616649&r1=1616648&r2=1616649&view=diff
==============================================================================
--- 
tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidationQueryTimeout.java
 Fri Aug  8 00:22:51 2014
@@ -34,6 +34,8 @@ import org.junit.Test;
 
 import org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor;
 
+import static org.junit.Assert.fail;
+
 public class TestValidationQueryTimeout extends DefaultTestCase {
 
     private static int TIMEOUT = 10;
@@ -131,7 +133,7 @@ public class TestValidationQueryTimeout 
 
     @Test(expected=SQLException.class)
     public void testValidationInvalidOnConnection() throws Exception {
-        // use our mock driver
+        // use a real driver cause we have an invalid query to validate
         this.datasource.setDriverClassName("org.h2.Driver");
         
this.datasource.setUrl("jdbc:h2:~/.h2/test;QUERY_TIMEOUT=0;DB_CLOSE_ON_EXIT=FALSE");
 
@@ -161,38 +163,31 @@ public class TestValidationQueryTimeout 
             //  this is a requirement for other tests to run properly
             start = System.currentTimeMillis();
             stmt.execute(longQuery);
-        } catch (SQLException ex) {}
-        finally {
+        } catch (SQLTimeoutException ex) {
+            
+        } catch (SQLException x) {
+            fail("We should have got a timeout exception.");  
+        } finally {
             end = System.currentTimeMillis();
 
             if (stmt != null) { stmt.close(); }
             if (con != null) { con.close(); }
 
             Assert.assertTrue(start != 0 && end != 0);
-            Assert.assertTrue((end - start) > 1000);
+            //we're faking it
+            //Assert.assertTrue((end - start) > 1000);
         }
     }
 
-    @Test
+    @Test(expected = SQLException.class)
     public void testValidationQueryTimeoutOnBorrow() throws Exception {
-        // use our mock driver
-        this.datasource.setDriverClassName("org.h2.Driver");
-        
this.datasource.setUrl("jdbc:h2:~/.h2/test;QUERY_TIMEOUT=0;DB_CLOSE_ON_EXIT=FALSE");
-
         // Required to trigger validation query's execution
         this.datasource.setTestOnBorrow(true);
         this.datasource.setValidationInterval(-1);
         this.datasource.setValidationQuery(longQuery);
         this.datasource.setValidationQueryTimeout(1);
-
-        // assert that even though the validation query times out, we still 
get a connection
+        // assert that even though the validation query we don't get a 
connection
         Connection con = this.datasource.getConnection();
-        Assert.assertNotNull(con);
-        Statement st = con.createStatement();
-        ResultSet rs = st.executeQuery("SELECT 1");
-        rs.close();
-        st.close();
-        con.close();
     }
 
     /**
@@ -261,10 +256,6 @@ public class TestValidationQueryTimeout 
         @Override
         public boolean execute(String sql) throws SQLException {
             if (longQuery.equals(sql)) {
-                try {
-                    Thread.sleep(getQueryTimeout() * 1000);
-                }catch (Exception x) {
-                }
                 throw new SQLTimeoutException();
             } else {
                 return super.execute(sql);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to