You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ab...@apache.org on 2015/03/05 03:02:46 UTC

sqoop git commit: SQOOP-2170: MySQL specific tests are not properly cleaning up created tables

Repository: sqoop
Updated Branches:
  refs/heads/trunk d40825208 -> 3a475c969


SQOOP-2170: MySQL specific tests are not properly cleaning up created tables

(Jarek Jarcec Cecho via Abraham Elmahrek)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/3a475c96
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/3a475c96
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/3a475c96

Branch: refs/heads/trunk
Commit: 3a475c9694e208fd64e81441a8942ad8381de522
Parents: d408252
Author: Abraham Elmahrek <ab...@apache.org>
Authored: Wed Mar 4 16:33:08 2015 -0800
Committer: Abraham Elmahrek <ab...@apache.org>
Committed: Wed Mar 4 16:33:08 2015 -0800

----------------------------------------------------------------------
 src/test/com/cloudera/sqoop/TestAllTables.java  | 13 +++++
 .../sqoop/manager/DirectMySQLExportTest.java    | 17 +++---
 .../cloudera/sqoop/manager/DirectMySQLTest.java | 61 +++++++++-----------
 .../sqoop/manager/JdbcMySQLExportTest.java      | 19 +++---
 .../manager/mysql/MySqlCallExportTest.java      | 12 ++++
 5 files changed, 68 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/3a475c96/src/test/com/cloudera/sqoop/TestAllTables.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/TestAllTables.java b/src/test/com/cloudera/sqoop/TestAllTables.java
index d2c7b16..39e8941 100644
--- a/src/test/com/cloudera/sqoop/TestAllTables.java
+++ b/src/test/com/cloudera/sqoop/TestAllTables.java
@@ -29,6 +29,7 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.IOUtils;
 import org.junit.Before;
+import org.junit.After;
 
 import com.cloudera.sqoop.testutil.CommonArgs;
 import com.cloudera.sqoop.testutil.ImportJobTestCase;
@@ -110,6 +111,18 @@ public class TestAllTables extends ImportJobTestCase {
     }
   }
 
+  @After
+  public void tearDown() {
+    try {
+      for (String table : tableNames) {
+        dropTableIfExists(table);
+      }
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+    super.tearDown();
+  }
+
   public void testMultiTableImport() throws IOException {
     String [] argv = getArgv(true, null);
     runImport(new ImportAllTablesTool(), argv);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3a475c96/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java b/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
index eac7836..986dc86 100644
--- a/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
@@ -98,6 +98,13 @@ public class DirectMySQLExportTest extends TestExport {
 
   @After
   public void tearDown() {
+    try {
+      Statement stmt = conn.createStatement();
+      stmt.execute(getDropTableStatement(getTableName()));
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+
     super.tearDown();
 
     if (null != this.conn) {
@@ -107,16 +114,6 @@ public class DirectMySQLExportTest extends TestExport {
         LOG.error("Got SQLException closing conn: " + sqlE.toString());
       }
     }
-
-    if (null != manager) {
-      try {
-        manager.close();
-        manager = null;
-      } catch (SQLException sqlE) {
-        LOG.error("Got SQLException: " + sqlE.toString());
-        fail("Got SQLException: " + sqlE.toString());
-      }
-    }
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3a475c96/src/test/com/cloudera/sqoop/manager/DirectMySQLTest.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/manager/DirectMySQLTest.java b/src/test/com/cloudera/sqoop/manager/DirectMySQLTest.java
index b7d6284..d0f0c50 100644
--- a/src/test/com/cloudera/sqoop/manager/DirectMySQLTest.java
+++ b/src/test/com/cloudera/sqoop/manager/DirectMySQLTest.java
@@ -119,34 +119,19 @@ public class DirectMySQLTest extends ImportJobTestCase {
       LOG.error("Encountered SQL Exception: " + sqlE);
       sqlE.printStackTrace();
       fail("SQLException when running test setUp(): " + sqlE);
-    } finally {
-      try {
-        if (null != st) {
-          st.close();
-        }
-
-        if (null != connection) {
-          connection.close();
-        }
-      } catch (SQLException sqlE) {
-        LOG.warn("Got SQLException when closing connection: " + sqlE);
-      }
     }
   }
 
   @After
   public void tearDown() {
-    super.tearDown();
-
-    if (null != manager) {
-      try {
-        manager.close();
-        manager = null;
-      } catch (SQLException sqlE) {
-        LOG.error("Got SQLException: " + sqlE.toString());
-        fail("Got SQLException: " + sqlE.toString());
-      }
+    try {
+      Statement stmt = manager.getConnection().createStatement();
+      stmt.execute("DROP TABLE " + getTableName());
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
     }
+
+    super.tearDown();
   }
 
   private String [] getArgv(boolean mysqlOutputDelims, boolean isDirect,
@@ -342,7 +327,17 @@ public class DirectMySQLTest extends ImportJobTestCase {
 
       st.executeUpdate("INSERT INTO `" + RESERVED_TABLE_NAME + "` VALUES("
           + "2,'Aaron','2009-05-14',1000000.00,'engineering')");
+      st.close();
       connection.commit();
+
+      String [] expectedResults = {
+          "2,Aaron,2009-05-14,1000000.0,engineering",
+      };
+
+      doImport(false, false, RESERVED_TABLE_NAME, expectedResults, null);
+
+      st = connection.createStatement();
+      st.execute("DROP TABLE `" + RESERVED_TABLE_NAME + "`");
     } finally {
       if (null != st) {
         st.close();
@@ -353,11 +348,6 @@ public class DirectMySQLTest extends ImportJobTestCase {
       }
     }
 
-    String [] expectedResults = {
-        "2,Aaron,2009-05-14,1000000.0,engineering",
-    };
-
-    doImport(false, false, RESERVED_TABLE_NAME, expectedResults, null);
   }
 
   @Test
@@ -365,7 +355,6 @@ public class DirectMySQLTest extends ImportJobTestCase {
     // Test a JDBC-based import of a table with a column whose name is
     // a reserved sql keyword (and is thus `quoted`).
     final String TABLE_NAME = "mysql_escaped_col_table";
-    setCurTableName(TABLE_NAME);
     SqoopOptions options = new SqoopOptions(MySQLTestUtils.CONNECT_STRING,
         TABLE_NAME);
     options.setUsername(MySQLTestUtils.getCurrentUser());
@@ -390,7 +379,17 @@ public class DirectMySQLTest extends ImportJobTestCase {
 
       st.executeUpdate("INSERT INTO " + TABLE_NAME + " VALUES("
           + "2,'Aaron','2009-05-14',1000000.00,'engineering')");
+      st.close();
       connection.commit();
+
+      String [] expectedResults = {
+          "2,Aaron,2009-05-14,1000000.0,engineering",
+      };
+
+      doImport(false, false, TABLE_NAME, expectedResults, null);
+
+      st = connection.createStatement();
+      st.execute("DROP TABLE " + TABLE_NAME);
     } finally {
       if (null != st) {
         st.close();
@@ -400,11 +399,5 @@ public class DirectMySQLTest extends ImportJobTestCase {
         connection.close();
       }
     }
-
-    String [] expectedResults = {
-        "2,Aaron,2009-05-14,1000000.0,engineering",
-    };
-
-    doImport(false, false, TABLE_NAME, expectedResults, null);
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3a475c96/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java b/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
index f7cc297..86b9aab 100644
--- a/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
@@ -21,6 +21,7 @@ package com.cloudera.sqoop.manager;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.sql.Statement;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -97,6 +98,14 @@ public class JdbcMySQLExportTest extends TestExport {
 
   @After
   public void tearDown() {
+    try {
+      Statement stmt = conn.createStatement();
+      stmt.execute(getDropTableStatement(getTableName()));
+      stmt.execute(getDropTableStatement(getStagingTableName()));
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+
     super.tearDown();
 
     if (null != this.conn) {
@@ -106,16 +115,6 @@ public class JdbcMySQLExportTest extends TestExport {
         LOG.error("Got SQLException closing conn: " + sqlE.toString());
       }
     }
-
-    if (null != manager) {
-      try {
-        manager.close();
-        manager = null;
-      } catch (SQLException sqlE) {
-        LOG.error("Got SQLException: " + sqlE.toString());
-        fail("Got SQLException: " + sqlE.toString());
-      }
-    }
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/sqoop/blob/3a475c96/src/test/org/apache/sqoop/manager/mysql/MySqlCallExportTest.java
----------------------------------------------------------------------
diff --git a/src/test/org/apache/sqoop/manager/mysql/MySqlCallExportTest.java b/src/test/org/apache/sqoop/manager/mysql/MySqlCallExportTest.java
index 3be447e..6bf939b 100644
--- a/src/test/org/apache/sqoop/manager/mysql/MySqlCallExportTest.java
+++ b/src/test/org/apache/sqoop/manager/mysql/MySqlCallExportTest.java
@@ -56,6 +56,18 @@ public class MySqlCallExportTest extends ExportJobTestCase {
     createObjects();
   }
 
+  @Override
+  public void tearDown() {
+    try {
+      Statement stmt = getManager().getConnection().createStatement();
+      stmt.execute("DROP TABLE " + getTableName());
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+
+    super.tearDown();
+  }
+
   private String[] getArgv(String... extraArgs) {
     ArrayList<String> args = new ArrayList<String>();