You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2014/07/05 18:13:18 UTC

git commit: SQOOP-1362: TestImportJob getContent method doesn't work'

Repository: sqoop
Updated Branches:
  refs/heads/trunk 6bfaa9d65 -> c0831f20c


SQOOP-1362: TestImportJob getContent method doesn't work'

(Abraham Elmahrek via Jarek Jarcec Cecho)


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

Branch: refs/heads/trunk
Commit: c0831f20c0f8a43df95b85efa6f1a7a6fffd01cc
Parents: 6bfaa9d
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Sat Jul 5 09:12:43 2014 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Sat Jul 5 09:12:43 2014 -0700

----------------------------------------------------------------------
 .../cloudera/sqoop/mapreduce/TestImportJob.java | 25 +++++++++++++-------
 1 file changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/c0831f20/src/test/com/cloudera/sqoop/mapreduce/TestImportJob.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/mapreduce/TestImportJob.java b/src/test/com/cloudera/sqoop/mapreduce/TestImportJob.java
index b22b2b6..9504974 100644
--- a/src/test/com/cloudera/sqoop/mapreduce/TestImportJob.java
+++ b/src/test/com/cloudera/sqoop/mapreduce/TestImportJob.java
@@ -45,6 +45,8 @@ import com.cloudera.sqoop.testutil.ImportJobTestCase;
 import com.cloudera.sqoop.testutil.InjectableManagerFactory;
 import com.cloudera.sqoop.testutil.InjectableConnManager;
 import com.cloudera.sqoop.tool.ImportTool;
+import org.apache.sqoop.SqoopOptions;
+import org.apache.sqoop.util.ClassLoaderStack;
 
 /**
  * Test aspects of the DataDrivenImportJob class' failure reporting.
@@ -55,7 +57,6 @@ import com.cloudera.sqoop.tool.ImportTool;
  * SQOOP_RETHROW_PROPERTY = "sqoop.throwOnError".
  */
 public class TestImportJob extends ImportJobTestCase {
-
   public void testFailedImportDueToIOException() throws IOException {
     // Make sure that if a MapReduce job to do the import fails due
     // to an IOException, we tell the user about it.
@@ -246,21 +247,26 @@ public class TestImportJob extends ImportJobTestCase {
 
   // helper method to get contents of a given dir containing sequence files
   private String[] getContent(Configuration conf, Path path) throws Exception {
+    ClassLoader prevClassLoader = ClassLoaderStack.addJarFile(
+        new Path(new Path(new SqoopOptions().getJarOutputDir()), getTableName() + ".jar").toString(),
+        getTableName());
+
     FileSystem fs = FileSystem.getLocal(conf);
     FileStatus[] stats = fs.listStatus(path);
-    String [] fileNames = new String[stats.length];
+    Path[] paths = new Path[stats.length];
     for (int i = 0; i < stats.length; i++) {
-      fileNames[i] = stats[i].getPath().toString();
+      paths[i] = stats[i].getPath();
     }
 
     // Read all the files adding the value lines to the list.
     List<String> strings = new ArrayList<String>();
-    for (String fileName : fileNames) {
-      if (fileName.startsWith("_") || fileName.startsWith(".")) {
+    for (Path filePath : paths) {
+      if (filePath.getName().startsWith("_") || filePath.getName().startsWith(".")) {
         continue;
       }
 
-      SequenceFile.Reader reader = new SequenceFile.Reader(fs, path, conf);
+      // Need to use new configuration object so that it has the proper classloaders.
+      SequenceFile.Reader reader = new SequenceFile.Reader(fs, filePath, new Configuration());
       WritableComparable key = (WritableComparable)
           reader.getKeyClass().newInstance();
       Writable value = (Writable) reader.getValueClass().newInstance();
@@ -268,6 +274,8 @@ public class TestImportJob extends ImportJobTestCase {
         strings.add(value.toString());
       }
     }
+
+    ClassLoaderStack.setCurrentClassLoader(prevClassLoader);
     return strings.toArray(new String[0]);
   }
 
@@ -300,7 +308,7 @@ public class TestImportJob extends ImportJobTestCase {
       assertTrue("Expecting two files in the directory.",
           fs.listStatus(outputPath).length == 2);
       String[] output = getContent(conf, outputPath);
-      assertEquals("Expected output and actual output should be same.", "meep",
+      assertEquals("Expected output and actual output should be same.", "meep\n",
           output[0]);
 
       ret = Sqoop.runSqoop(importer, argv);
@@ -311,12 +319,11 @@ public class TestImportJob extends ImportJobTestCase {
       assertTrue("Expecting two files in the directory.",
           fs.listStatus(outputPath).length == 2);
       output = getContent(conf, outputPath);
-      assertEquals("Expected output and actual output should be same.", "meep",
+      assertEquals("Expected output and actual output should be same.", "meep\n",
           output[0]);
     } catch (Exception e) {
       // In debug mode, ImportException is wrapped in RuntimeException.
       LOG.info("Got exceptional return (expected: ok). msg is: " + e);
     }
   }
-
 }