You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by pa...@apache.org on 2015/05/06 07:26:25 UTC

[9/9] drill git commit: DRILL-2887: Fix bad applications of JdbcTest.connect(...).

DRILL-2887: Fix bad applications of JdbcTest.connect(...).

- Removed use of Jdbc.connect() from:
  - Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest
  - Drill2489CallsAfterCloseThrowExceptionsTest
- Added (manual) test for use of auto-resetting connection.  [JdbcTest]
- Documented need to avoid Jdbc.connect() in above and similar tests.
- Add "document" TODO for JdbcTest.


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/7ab51dd7
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/7ab51dd7
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/7ab51dd7

Branch: refs/heads/master
Commit: 7ab51dd745177276c0df9b1a707adb354e50dab0
Parents: c492d4f
Author: dbarclay <db...@maprtech.com>
Authored: Mon Apr 27 12:33:46 2015 -0700
Committer: Parth Chandra <pc...@maprtech.com>
Committed: Tue May 5 19:29:18 2015 -0700

----------------------------------------------------------------------
 .../jdbc/ConnectionTransactionMethodsTest.java  |  3 +++
 .../jdbc/DatabaseMetaDataGetColumnsTest.java    |  3 +++
 .../apache/drill/jdbc/DatabaseMetaDataTest.java |  5 ++++-
 .../java/org/apache/drill/jdbc/JdbcTest.java    | 22 ++++++++++++++++++++
 .../jdbc/ResultSetGetMethodConversionsTest.java |  3 ++-
 .../jdbc/test/Bug1735ConnectionCloseTest.java   |  9 ++++++--
 ...etColumnsDataTypeNotTypeCodeIntBugsTest.java | 10 ++++++++-
 ...2463GetNullsFailedWithAssertionsBugTest.java |  3 +++
 ...l2489CallsAfterCloseThrowExceptionsTest.java |  4 +++-
 9 files changed, 56 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/ConnectionTransactionMethodsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ConnectionTransactionMethodsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ConnectionTransactionMethodsTest.java
index dd92c9b..1aff918 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ConnectionTransactionMethodsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ConnectionTransactionMethodsTest.java
@@ -41,6 +41,9 @@ public class ConnectionTransactionMethodsTest {
 
   @BeforeClass
   public static void setUpConnection() throws SQLException {
+    // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses some objects across methods.)
     connection = new Driver().connect( "jdbc:drill:zk=local", null );
   }
 

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataGetColumnsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataGetColumnsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataGetColumnsTest.java
index 0f3d838..19be2fd 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataGetColumnsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataGetColumnsTest.java
@@ -169,6 +169,9 @@ public class DatabaseMetaDataGetColumnsTest extends JdbcTest {
   public static void setUpConnectionAndMetadataToCheck() throws Exception {
 
     // Get JDBC connection to Drill:
+    // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses some objects across methods.)
     connection = new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties());
     dbMetadata = connection.getMetaData();
     Statement stmt = connection.createStatement();

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataTest.java
index 8b885a4..886f974 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/DatabaseMetaDataTest.java
@@ -22,13 +22,13 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
 import static org.junit.Assert.assertThat;
 import static org.hamcrest.CoreMatchers.*;
+
 import org.apache.drill.jdbc.Driver;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
-
 import static java.sql.Connection.*;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
@@ -47,6 +47,9 @@ public class DatabaseMetaDataTest {
 
   @BeforeClass
   public static void setUpConnection() throws SQLException {
+    // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses some objects across methods.)
     connection = new Driver().connect( "jdbc:drill:zk=local", null );
   }
 

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/JdbcTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/JdbcTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/JdbcTest.java
index e486898..0042f24 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/JdbcTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/JdbcTest.java
@@ -17,6 +17,8 @@
  */
 package org.apache.drill.jdbc;
 
+import static org.junit.Assert.fail;
+
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
@@ -25,15 +27,21 @@ import java.sql.Statement;
 import java.util.Properties;
 
 import com.google.common.base.Strings;
+
 import org.apache.drill.exec.ExecTest;
 import org.apache.drill.jdbc.test.JdbcAssert;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Rule;
+import org.junit.Test;
 import org.junit.rules.TestRule;
 import org.junit.rules.TestWatcher;
 import org.junit.runner.Description;
 
+// TODO:  Document this, especially what writers of unit tests need to know
+//   (e.g., the reusing of connections, the automatic interception of test
+//   failures and resetting of connections, etc.).
 public class JdbcTest extends ExecTest {
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(JdbcTest.class);
 
@@ -130,4 +138,18 @@ public class JdbcTest extends ExecTest {
   public static void tearDownTestCase() throws Exception {
     factory.closeConnections();
   }
+
+  /**
+   * Test of whether tests that get connection from JdbcTest.connect(...)
+   * work with resetting of connections.  If enabling this (failing) test method
+   * causes other test methods to fail, something needs to be fixed.
+   * (Note:  Not a guaranteed test--depends on order in which test methods are
+   * run.)
+   */
+  @Ignore( "Usually disabled; enable temporarily to check tests" )
+  @Test
+  public void testJdbcTestConnectionResettingCompatibility() {
+    fail( "Intentional failure--did other test methods still run?" );
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
index eced72b..49e41e4 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
@@ -68,7 +68,8 @@ public class ResultSetGetMethodConversionsTest extends JdbcTest {
   public static void setUpConnectionAndMetadataToCheck() throws SQLException {
     // Get JDBC connection to Drill:
     // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
-    // connection on test method failure, but we use ResultSet across methods.)
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses some objects across methods.)
     connection = new Driver().connect( "jdbc:drill:zk=local", null );
 
     // Set up result row with values of various types.

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Bug1735ConnectionCloseTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Bug1735ConnectionCloseTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Bug1735ConnectionCloseTest.java
index 78a8af2..7800fd5 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Bug1735ConnectionCloseTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Bug1735ConnectionCloseTest.java
@@ -77,7 +77,8 @@ public class Bug1735ConnectionCloseTest extends JdbcTestQueryBase {
     for ( int i = 1; i <= SMALL_ITERATION_COUNT; i++ ) {
       logger.info( "iteration " + i + ":" );
       System.out.println( "iteration " + i + ":" );
-      Connection connection = new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties() );
+      Connection connection = new Driver().connect( "jdbc:drill:zk=local",
+                                                     JdbcAssert.getDefaultProperties() );
       connection.close();
     }
   }
@@ -94,7 +95,11 @@ public class Bug1735ConnectionCloseTest extends JdbcTestQueryBase {
     for ( int i = 1; i <= LARGE_ITERATION_COUNT; i++ ) {
       logger.info( "iteration " + i + ":" );
       System.out.println( "iteration " + i + ":" );
-      Connection connection = new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties() );
+
+      // (Note: Can't use JdbcTest's connect(...) because it returns connection
+      // that doesn't really close.
+      Connection connection = new Driver().connect( "jdbc:drill:zk=local",
+                                                    JdbcAssert.getDefaultProperties() );
       connection.close();
     }
   }

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest.java
index 38c6d46..d32712d 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest.java
@@ -29,11 +29,13 @@ import org.junit.rules.TestRule;
 
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
+import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
 
 import org.apache.drill.common.util.TestTools;
+import org.apache.drill.jdbc.Driver;
 import org.apache.drill.jdbc.JdbcTest;
 
 
@@ -51,7 +53,13 @@ public class Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest extends JdbcTest
 
   @BeforeClass
   public static void setUpConnection() throws Exception {
-    connection = connect( "jdbc:drill:zk=local" );
+    // Get JDBC connection to Drill:
+    // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses connection (and dependent DatabaseMetaData object) across
+    // methods.)
+    Driver.load();
+    connection = DriverManager.getConnection( "jdbc:drill:zk=local" );
     dbMetadata = connection.getMetaData();
   }
 

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2463GetNullsFailedWithAssertionsBugTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2463GetNullsFailedWithAssertionsBugTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2463GetNullsFailedWithAssertionsBugTest.java
index 1d1361a..ea9c943 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2463GetNullsFailedWithAssertionsBugTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2463GetNullsFailedWithAssertionsBugTest.java
@@ -41,6 +41,9 @@ public class Drill2463GetNullsFailedWithAssertionsBugTest extends JdbcTest {
 
   @BeforeClass
   public static void setUpConnection() throws SQLException {
+    // (Note: Can't use JdbcTest's connect(...) because JdbcTest closes
+    // Connection--and other JDBC objects--on test method failure, but this test
+    // class uses some objects across methods.)
     connection = new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties() );
     statement = connection.createStatement();
 

http://git-wip-us.apache.org/repos/asf/drill/blob/7ab51dd7/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
index 3282945..1732e5c 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
@@ -77,7 +77,9 @@ public class Drill2489CallsAfterCloseThrowExceptionsTest extends JdbcTest {
 
   @BeforeClass
   public static void setUpConnection() throws Exception {
-    final Connection connection = new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties() );
+    // (Note: Can't use JdbcTest's connect(...) for this test class.)
+    final Connection connection =
+        new Driver().connect( "jdbc:drill:zk=local", JdbcAssert.getDefaultProperties() );
     final Statement stmt = connection.createStatement();
     final ResultSet result =
         stmt.executeQuery( "SELECT * FROM INFORMATION_SCHEMA.CATALOGS" );