Author: khorgath Date: Thu May 1 01:08:11 2014 New Revision: 1591527 URL: http://svn.apache.org/r1591527 Log: HIVE-6931 : Windows unit test fixes (Jason Dere via Sushanth Sowmyan)
Modified: hive/trunk/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java hive/trunk/pom.xml hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/WindowsPathUtil.java hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java hive/trunk/ql/src/test/queries/clientpositive/scriptfile1_win.q hive/trunk/ql/src/test/queries/clientpositive/tez_insert_overwrite_local_directory_1.q hive/trunk/ql/src/test/results/clientpositive/scriptfile1_win.q.out Modified: hive/trunk/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java URL: http://svn.apache.org/viewvc/hive/trunk/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java (original) +++ hive/trunk/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java Thu May 1 01:08:11 2014 @@ -258,7 +258,7 @@ public class QTestUtil { mr.setupConfiguration(conf); // set fs.default.name to the uri of mini-dfs - String dfsUriString = getHdfsUriString(dfs.getFileSystem().getUri().toString()); + String dfsUriString = WindowsPathUtil.getHdfsUriString(dfs.getFileSystem().getUri().toString()); conf.setVar(HiveConf.ConfVars.HADOOPFS, dfsUriString); // hive.metastore.warehouse.dir needs to be set relative to the mini-dfs conf.setVar(HiveConf.ConfVars.METASTOREWAREHOUSE, @@ -269,46 +269,10 @@ public class QTestUtil { // Windows paths should be converted after MiniMrShim.setupConfiguration() // since setupConfiguration may overwrite configuration values. if (Shell.WINDOWS) { - convertPathsFromWindowsToHdfs(); + WindowsPathUtil.convertPathsFromWindowsToHdfs(conf); } } - private void convertPathsFromWindowsToHdfs() { - // Following local paths are used as HDFS paths in unit tests. - // It works well in Unix as the path notation in Unix and HDFS is more or less same. - // But when it comes to Windows, drive letter separator ':' & backslash '\" are invalid - // characters in HDFS so we need to converts these local paths to HDFS paths before using them - // in unit tests. - - // hive.exec.scratchdir needs to be set relative to the mini-dfs - String orgWarehouseDir = conf.getVar(HiveConf.ConfVars.METASTOREWAREHOUSE); - conf.setVar(HiveConf.ConfVars.METASTOREWAREHOUSE, getHdfsUriString(orgWarehouseDir)); - - String orgTestTempDir = System.getProperty("test.tmp.dir"); - System.setProperty("test.tmp.dir", getHdfsUriString(orgTestTempDir)); - - String orgScratchDir = conf.getVar(HiveConf.ConfVars.SCRATCHDIR); - conf.setVar(HiveConf.ConfVars.SCRATCHDIR, getHdfsUriString(orgScratchDir)); - - if (miniMr) { - String orgAuxJarFolder = conf.getAuxJars(); - conf.setAuxJars(getHdfsUriString("file://" + orgAuxJarFolder)); - } - } - - private String getHdfsUriString(String uriStr) { - assert uriStr != null; - if(Shell.WINDOWS) { - // If the URI conversion is from Windows to HDFS then replace the '\' with '/' - // and remove the windows single drive letter & colon from absolute path. - return uriStr.replace('\\', '/') - .replaceFirst("/[c-zC-Z]:", "/") - .replaceFirst("^[c-zC-Z]:", ""); - } - - return uriStr; - } - public enum MiniClusterType { mr, tez, @@ -361,7 +325,7 @@ public class QTestUtil { if (clusterType != MiniClusterType.none) { dfs = shims.getMiniDfs(conf, numberOfDataNodes, true, null); FileSystem fs = dfs.getFileSystem(); - String uriString = getHdfsUriString(fs.getUri().toString()); + String uriString = WindowsPathUtil.getHdfsUriString(fs.getUri().toString()); if (clusterType == MiniClusterType.tez) { mr = shims.getMiniTezCluster(conf, 4, uriString, 1); } else { Modified: hive/trunk/pom.xml URL: http://svn.apache.org/viewvc/hive/trunk/pom.xml?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/pom.xml (original) +++ hive/trunk/pom.xml Thu May 1 01:08:11 2014 @@ -64,6 +64,7 @@ <test.hive.hadoop.classpath>${maven.test.classpath}</test.hive.hadoop.classpath> <test.log4j.scheme>file://</test.log4j.scheme> <test.tmp.dir>${project.build.directory}/tmp</test.tmp.dir> + <test.tmp.dir.uri>file://${test.tmp.dir}</test.tmp.dir.uri> <test.warehouse.dir>${project.build.directory}/warehouse</test.warehouse.dir> <test.warehouse.scheme>pfile://</test.warehouse.scheme> @@ -757,6 +758,7 @@ <test.data.files>${basedir}/${hive.path.to.root}/data/files</test.data.files> <test.data.dir>${basedir}/${hive.path.to.root}/data/files</test.data.dir> <test.tmp.dir>${test.tmp.dir}</test.tmp.dir> + <test.tmp.dir.uri>${test.tmp.dir.uri}</test.tmp.dir.uri> <test.dfs.mkdir>${test.dfs.mkdir}</test.dfs.mkdir> <test.output.overwrite>${test.output.overwrite}</test.output.overwrite> <test.warehouse.dir>${test.warehouse.scheme}${test.warehouse.dir}</test.warehouse.dir> @@ -1047,6 +1049,7 @@ <hadoop.bin.path>${basedir}/${hive.path.to.root}/testutils/hadoop.cmd</hadoop.bin.path> <test.extra.path>;${env.HADOOP_HOME}/bin</test.extra.path> <test.hive.hadoop.classpath>${project.build.directory}/deplibs/*</test.hive.hadoop.classpath> + <test.tmp.dir.uri>file:///${test.tmp.dir}</test.tmp.dir.uri> <test.log4j.scheme>file:/</test.log4j.scheme> </properties> </profile> Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/WindowsPathUtil.java URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/WindowsPathUtil.java?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/WindowsPathUtil.java (original) +++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/WindowsPathUtil.java Thu May 1 01:08:11 2014 @@ -24,17 +24,26 @@ import org.apache.hadoop.util.Shell; public class WindowsPathUtil { public static void convertPathsFromWindowsToHdfs(HiveConf conf){ + // Following local paths are used as HDFS paths in unit tests. + // It works well in Unix as the path notation in Unix and HDFS is more or less same. + // But when it comes to Windows, drive letter separator ':' & backslash '\" are invalid + // characters in HDFS so we need to converts these local paths to HDFS paths before using them + // in unit tests. + String orgWarehouseDir = conf.getVar(HiveConf.ConfVars.METASTOREWAREHOUSE); conf.setVar(HiveConf.ConfVars.METASTOREWAREHOUSE, getHdfsUriString(orgWarehouseDir)); String orgTestTempDir = System.getProperty("test.tmp.dir"); System.setProperty("test.tmp.dir", getHdfsUriString(orgTestTempDir)); + String orgTestWarehouseDir = System.getProperty("test.warehouse.dir"); + System.setProperty("test.warehouse.dir", getHdfsUriString(orgTestWarehouseDir)); + String orgScratchDir = conf.getVar(HiveConf.ConfVars.SCRATCHDIR); conf.setVar(HiveConf.ConfVars.SCRATCHDIR, getHdfsUriString(orgScratchDir)); } - private static String getHdfsUriString(String uriStr) { + public static String getHdfsUriString(String uriStr) { assert uriStr != null; if(Shell.WINDOWS) { // If the URI conversion is from Windows to HDFS then replace the '\' with '/' Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java (original) +++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java Thu May 1 01:08:11 2014 @@ -71,9 +71,9 @@ public class TestExecDriver extends Test static HiveConf conf; - private static final String tmpdir = System.getProperty("test.tmp.dir"); + private static final String tmpdir; private static final Log LOG = LogFactory.getLog(TestExecDriver.class); - private static final Path tmppath = new Path(tmpdir); + private static final Path tmppath; private static Hive db; private static FileSystem fs; @@ -86,6 +86,8 @@ public class TestExecDriver extends Test if (Shell.WINDOWS) { WindowsPathUtil.convertPathsFromWindowsToHdfs(conf); } + tmpdir = System.getProperty("test.tmp.dir"); + tmppath = new Path(tmpdir); fs = FileSystem.get(conf); if (fs.exists(tmppath) && !fs.getFileStatus(tmppath).isDir()) { Modified: hive/trunk/ql/src/test/queries/clientpositive/scriptfile1_win.q URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/scriptfile1_win.q?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/ql/src/test/queries/clientpositive/scriptfile1_win.q (original) +++ hive/trunk/ql/src/test/queries/clientpositive/scriptfile1_win.q Thu May 1 01:08:11 2014 @@ -3,7 +3,7 @@ set hive.input.format=org.apache.hadoop. CREATE TABLE dest1(key INT, value STRING); -ADD FILE src/test/scripts/testgrep_win.bat; +ADD FILE ../../ql/src/test/scripts/testgrep_win.bat; FROM ( FROM src Modified: hive/trunk/ql/src/test/queries/clientpositive/tez_insert_overwrite_local_directory_1.q URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/tez_insert_overwrite_local_directory_1.q?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/ql/src/test/queries/clientpositive/tez_insert_overwrite_local_directory_1.q (original) +++ hive/trunk/ql/src/test/queries/clientpositive/tez_insert_overwrite_local_directory_1.q Thu May 1 01:08:11 2014 @@ -1,5 +1,5 @@ insert overwrite local directory '${system:test.tmp.dir}/tez_local_src_table_1' select * from src order by key limit 10 ; -dfs -cat file:${system:test.tmp.dir}/tez_local_src_table_1/000000_0 ; +dfs -cat ${system:test.tmp.dir.uri}/tez_local_src_table_1/* ; -dfs -rmr file:${system:test.tmp.dir}/tez_local_src_table_1/ ; +dfs -rmr ${system:test.tmp.dir.uri}/tez_local_src_table_1/ ; Modified: hive/trunk/ql/src/test/results/clientpositive/scriptfile1_win.q.out URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/scriptfile1_win.q.out?rev=1591527&r1=1591526&r2=1591527&view=diff ============================================================================== --- hive/trunk/ql/src/test/results/clientpositive/scriptfile1_win.q.out (original) +++ hive/trunk/ql/src/test/results/clientpositive/scriptfile1_win.q.out Thu May 1 01:08:11 2014 @@ -2,10 +2,12 @@ PREHOOK: query: -- INCLUDE_OS_WINDOWS CREATE TABLE dest1(key INT, value STRING) PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default POSTHOOK: query: -- INCLUDE_OS_WINDOWS CREATE TABLE dest1(key INT, value STRING) POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default POSTHOOK: Output: default@dest1 PREHOOK: query: FROM ( FROM src