You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by px...@apache.org on 2017/03/14 23:33:37 UTC
hive git commit: revert HIVE-15616 : Improve contents of qfile test
output (Barna Zsombor Klara via Ashutosh Chauhan)
Repository: hive
Updated Branches:
refs/heads/master 7449c507a -> f99ece64a
revert HIVE-15616 : Improve contents of qfile test output (Barna Zsombor Klara via Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/f99ece64
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/f99ece64
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/f99ece64
Branch: refs/heads/master
Commit: f99ece64a912583eca42dc069d720569fe78ed89
Parents: 7449c50
Author: Pengcheng Xiong <px...@apache.org>
Authored: Tue Mar 14 16:33:17 2017 -0700
Committer: Pengcheng Xiong <px...@apache.org>
Committed: Tue Mar 14 16:33:26 2017 -0700
----------------------------------------------------------------------
.../hadoop/hive/ql/TestLocationQueries.java | 8 +-
.../control/AbstractCoreBlobstoreCliDriver.java | 11 +-
.../hive/cli/control/CoreAccumuloCliDriver.java | 10 +-
.../hadoop/hive/cli/control/CoreCliDriver.java | 12 +-
.../hive/cli/control/CoreCompareCliDriver.java | 12 +-
.../hive/cli/control/CoreHBaseCliDriver.java | 9 +-
.../cli/control/CoreHBaseNegativeCliDriver.java | 9 +-
.../hive/cli/control/CoreNegativeCliDriver.java | 12 +-
.../hive/cli/control/CorePerfCliDriver.java | 12 +-
.../org/apache/hadoop/hive/ql/QTestUtil.java | 126 ++++++++-----------
.../hadoop/hive/ql/parse/CoreParseNegative.java | 19 ++-
11 files changed, 96 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestLocationQueries.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestLocationQueries.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestLocationQueries.java
index c17ca10..0688846 100644
--- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestLocationQueries.java
+++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestLocationQueries.java
@@ -53,11 +53,10 @@ public class TestLocationQueries extends BaseTestQueries {
* @return non-zero if it failed
*/
@Override
- public QTestProcessExecResult checkCliDriverResults(String tname) throws Exception {
+ public int checkCliDriverResults(String tname) throws Exception {
File logFile = new File(logDir, tname + ".out");
int failedCount = 0;
- StringBuilder fileNames = new StringBuilder("Files failing the location check:");
FileReader fr = new FileReader(logFile);
BufferedReader in = new BufferedReader(fr);
try {
@@ -70,20 +69,19 @@ public class TestLocationQueries extends BaseTestQueries {
File f = new File(m.group(1));
if (!f.getName().equals(locationSubdir)) {
failedCount++;
- fileNames.append(f.getName()).append("\r\n");
}
locationCount++;
}
}
// we always have to find at least one location, otw the test is useless
if (locationCount == 0) {
- return QTestProcessExecResult.create(Integer.MAX_VALUE, "0 locations tested");
+ return Integer.MAX_VALUE;
}
} finally {
in.close();
}
- return QTestProcessExecResult.create(failedCount, fileNames.toString());
+ return failedCount;
}
public CheckResults(String outDir, String logDir, MiniClusterType miniMr,
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/AbstractCoreBlobstoreCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/AbstractCoreBlobstoreCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/AbstractCoreBlobstoreCliDriver.java
index 02abe53..9c97c31 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/AbstractCoreBlobstoreCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/AbstractCoreBlobstoreCliDriver.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.hive.cli.control.AbstractCliConfig.MetastoreType;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveVariableSource;
import org.apache.hadoop.hive.conf.VariableSubstitution;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
@@ -140,14 +139,12 @@ public abstract class AbstractCoreBlobstoreCliDriver extends CliAdapter {
if ((ecode == 0) ^ expectSuccess) {
qt.failed(ecode, fname, debugHint);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, debugHint);
}
}
- catch (Exception e) {
+ catch (Throwable e) {
qt.failed(e, fname, debugHint);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreAccumuloCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreAccumuloCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreAccumuloCliDriver.java
index 73e5632..3e4b373 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreAccumuloCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreAccumuloCliDriver.java
@@ -18,10 +18,8 @@
package org.apache.hadoop.hive.cli.control;
import static org.junit.Assert.assertTrue;
-
import org.apache.hadoop.hive.accumulo.AccumuloQTestUtil;
import org.apache.hadoop.hive.accumulo.AccumuloTestSetup;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
import org.junit.AfterClass;
@@ -94,13 +92,13 @@ public class CoreAccumuloCliDriver extends CliAdapter {
qt.failed(ecode, fname, null);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- qt.failedDiff(result.getReturnCode(), fname, result.getCapturedOutput());
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, null);
}
qt.clearPostTestEffects();
- } catch (Exception e) {
+ } catch (Throwable e) {
qt.failed(e, fname, null);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java
index d59b650..a735346 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java
@@ -23,9 +23,7 @@ import static org.junit.Assert.fail;
import java.util.concurrent.TimeUnit;
import com.google.common.base.Stopwatch;
-import com.google.common.base.Strings;
import org.apache.hadoop.hive.cli.control.AbstractCliConfig.MetastoreType;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.apache.hadoop.hive.util.ElapsedTimeLoggingWrapper;
@@ -177,15 +175,13 @@ public class CoreCliDriver extends CliAdapter {
failed = true;
qt.failed(ecode, fname, debugHint);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
failed = true;
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ qt.failedDiff(ecode, fname, debugHint);
}
}
- catch (Exception e) {
+ catch (Throwable e) {
failed = true;
qt.failed(e, fname, debugHint);
} finally {
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCompareCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCompareCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCompareCliDriver.java
index bff81dd..71a02bc 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCompareCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCompareCliDriver.java
@@ -25,8 +25,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.google.common.base.Strings;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
@@ -145,14 +143,12 @@ public class CoreCompareCliDriver extends CliAdapter{
}
}
- QTestProcessExecResult result = qt.checkCompareCliDriverResults(fname, outputs);
- if (result.getReturnCode() != 0) {
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ ecode = qt.checkCompareCliDriverResults(fname, outputs);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, debugHint);
}
}
- catch (Exception e) {
+ catch (Throwable e) {
qt.failed(e, fname, debugHint);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseCliDriver.java
index aa0b071..956a42d 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseCliDriver.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.fail;
import org.apache.hadoop.hive.hbase.HBaseQTestUtil;
import org.apache.hadoop.hive.hbase.HBaseTestSetup;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
import org.junit.AfterClass;
@@ -121,12 +120,12 @@ public class CoreHBaseCliDriver extends CliAdapter {
qt.failed(ecode, fname, null);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- qt.failedDiff(result.getReturnCode(), fname, result.getCapturedOutput());
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, null);
}
- } catch (Exception e) {
+ } catch (Throwable e) {
qt.failed(e, fname, null);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseNegativeCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseNegativeCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseNegativeCliDriver.java
index 8320a80..6225180 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseNegativeCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreHBaseNegativeCliDriver.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.fail;
import org.apache.hadoop.hive.hbase.HBaseQTestUtil;
import org.apache.hadoop.hive.hbase.HBaseTestSetup;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
import org.junit.AfterClass;
@@ -102,13 +101,13 @@ public class CoreHBaseNegativeCliDriver extends CliAdapter {
qt.failed(fname, null);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- qt.failedDiff(result.getReturnCode(), fname, result.getCapturedOutput());
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, null);
}
qt.clearPostTestEffects();
- } catch (Exception e) {
+ } catch (Throwable e) {
qt.failed(e, fname, null);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreNegativeCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreNegativeCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreNegativeCliDriver.java
index 438a61e..65b2ce7 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreNegativeCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreNegativeCliDriver.java
@@ -20,8 +20,6 @@ package org.apache.hadoop.hive.cli.control;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.google.common.base.Strings;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
@@ -125,14 +123,12 @@ public class CoreNegativeCliDriver extends CliAdapter{
qt.failed(fname, debugHint);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, debugHint);
}
}
- catch (Exception e) {
+ catch (Throwable e) {
qt.failed(e, fname, debugHint);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CorePerfCliDriver.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CorePerfCliDriver.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CorePerfCliDriver.java
index 26b9ce1..8620cde 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CorePerfCliDriver.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CorePerfCliDriver.java
@@ -22,8 +22,6 @@ package org.apache.hadoop.hive.cli.control;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.google.common.base.Strings;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.junit.After;
@@ -123,13 +121,11 @@ public class CorePerfCliDriver extends CliAdapter{
if (ecode != 0) {
qt.failed(ecode, fname, debugHint);
}
- QTestProcessExecResult result = qt.checkCliDriverResults(fname);
- if (result.getReturnCode() != 0) {
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ ecode = qt.checkCliDriverResults(fname);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, debugHint);
}
- } catch (Exception e) {
+ } catch (Throwable e) {
qt.failed(e, fname, debugHint);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
index f469def..e32ee74 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
@@ -39,7 +39,6 @@ import java.io.PrintStream;
import java.io.Serializable;
import java.io.StringWriter;
import java.net.URL;
-import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@@ -68,10 +67,9 @@ import com.google.common.base.Preconditions;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
import org.apache.hadoop.fs.FileStatus;
@@ -1482,7 +1480,7 @@ public class QTestUtil {
true, true);
}
- public QTestProcessExecResult checkNegativeResults(String tname, Exception e) throws Exception {
+ public int checkNegativeResults(String tname, Exception e) throws Exception {
String outFileExtension = getOutFileExtension(tname);
@@ -1505,16 +1503,16 @@ public class QTestUtil {
outfd.write(e.getMessage());
outfd.close();
- QTestProcessExecResult result = executeDiffCommand(outf.getPath(), expf, false,
+ int exitVal = executeDiffCommand(outf.getPath(), expf, false,
qSortSet.contains(qf.getName()));
- if (overWrite) {
- overwriteResults(outf.getPath(), expf);
+ if (exitVal != 0 && overWrite) {
+ exitVal = overwriteResults(outf.getPath(), expf);
}
- return result;
+ return exitVal;
}
- public QTestProcessExecResult checkParseResults(String tname, ASTNode tree) throws Exception {
+ public int checkParseResults(String tname, ASTNode tree) throws Exception {
if (tree != null) {
String outFileExtension = getOutFileExtension(tname);
@@ -1530,10 +1528,10 @@ public class QTestUtil {
outfd.write(tree.toStringTree());
outfd.close();
- QTestProcessExecResult exitVal = executeDiffCommand(outf.getPath(), expf, false, false);
+ int exitVal = executeDiffCommand(outf.getPath(), expf, false, false);
- if (overWrite) {
- overwriteResults(outf.getPath(), expf);
+ if (exitVal != 0 && overWrite) {
+ exitVal = overwriteResults(outf.getPath(), expf);
}
return exitVal;
@@ -1714,7 +1712,7 @@ public class QTestUtil {
patternsWithMaskComments.add(toPatternPair(patternStr, maskComment));
}
- public QTestProcessExecResult checkCliDriverResults(String tname) throws Exception {
+ public int checkCliDriverResults(String tname) throws Exception {
assert(qMap.containsKey(tname));
String outFileExtension = getOutFileExtension(tname);
@@ -1723,54 +1721,51 @@ public class QTestUtil {
File f = new File(logDir, tname + outFileExtension);
maskPatterns(planMask, f.getPath());
- QTestProcessExecResult exitVal = executeDiffCommand(f.getPath(),
+ int exitVal = executeDiffCommand(f.getPath(),
outFileName, false,
qSortSet.contains(tname));
- if (overWrite) {
- overwriteResults(f.getPath(), outFileName);
+ if (exitVal != 0 && overWrite) {
+ exitVal = overwriteResults(f.getPath(), outFileName);
}
return exitVal;
}
- public QTestProcessExecResult checkCompareCliDriverResults(String tname, List<String> outputs) throws Exception {
+ public int checkCompareCliDriverResults(String tname, List<String> outputs) throws Exception {
assert outputs.size() > 1;
maskPatterns(planMask, outputs.get(0));
for (int i = 1; i < outputs.size(); ++i) {
maskPatterns(planMask, outputs.get(i));
- QTestProcessExecResult result = executeDiffCommand(
+ int ecode = executeDiffCommand(
outputs.get(i - 1), outputs.get(i), false, qSortSet.contains(tname));
- if (result.getReturnCode() != 0) {
+ if (ecode != 0) {
System.out.println("Files don't match: " + outputs.get(i - 1) + " and " + outputs.get(i));
- return result;
+ return ecode;
}
}
- return QTestProcessExecResult.createWithoutOutput(0);
+ return 0;
}
- private static void overwriteResults(String inFileName, String outFileName) throws Exception {
+ private static int overwriteResults(String inFileName, String outFileName) throws Exception {
// This method can be replaced with Files.copy(source, target, REPLACE_EXISTING)
// once Hive uses JAVA 7.
System.out.println("Overwriting results " + inFileName + " to " + outFileName);
- int result = executeCmd(new String[] {
+ return executeCmd(new String[] {
"cp",
getQuotedString(inFileName),
getQuotedString(outFileName)
- }).getReturnCode();
- if (result != 0)
- throw new IllegalStateException("Unexpected error while overwriting " +
- inFileName + " with " + outFileName);
+ });
}
- private static QTestProcessExecResult executeDiffCommand(String inFileName,
+ private static int executeDiffCommand(String inFileName,
String outFileName,
boolean ignoreWhiteSpace,
boolean sortResults
) throws Exception {
- QTestProcessExecResult result;
+ int result = 0;
if (sortResults) {
// sort will try to open the output file in write mode on windows. We need to
@@ -1783,9 +1778,12 @@ public class QTestUtil {
String inSorted = inFileName + SORT_SUFFIX;
String outSorted = outFileName + SORT_SUFFIX;
- sortFiles(inFileName, inSorted);
- sortFiles(outFileName, outSorted);
-
+ result = sortFiles(inFileName, inSorted);
+ result |= sortFiles(outFileName, outSorted);
+ if (result != 0) {
+ System.err.println("ERROR: Could not sort files before comparing");
+ return result;
+ }
inFileName = inSorted;
outFileName = outSorted;
}
@@ -1815,29 +1813,27 @@ public class QTestUtil {
return result;
}
- private static void sortFiles(String in, String out) throws Exception {
- int result = executeCmd(new String[] {
+ private static int sortFiles(String in, String out) throws Exception {
+ return executeCmd(new String[] {
"sort",
getQuotedString(in),
- }, out, null).getReturnCode();
- if (result != 0)
- throw new IllegalStateException("Unexpected error while sorting " + in);
+ }, out, null);
}
- private static QTestProcessExecResult executeCmd(Collection<String> args) throws Exception {
+ private static int executeCmd(Collection<String> args) throws Exception {
return executeCmd(args, null, null);
}
- private static QTestProcessExecResult executeCmd(String[] args) throws Exception {
+ private static int executeCmd(String[] args) throws Exception {
return executeCmd(args, null, null);
}
- private static QTestProcessExecResult executeCmd(Collection<String> args, String outFile, String errFile) throws Exception {
+ private static int executeCmd(Collection<String> args, String outFile, String errFile) throws Exception {
String[] cmdArray = args.toArray(new String[args.size()]);
return executeCmd(cmdArray, outFile, errFile);
}
- private static QTestProcessExecResult executeCmd(String[] args, String outFile, String errFile) throws Exception {
+ private static int executeCmd(String[] args, String outFile, String errFile) throws Exception {
System.out.println("Running: " + org.apache.commons.lang.StringUtils.join(args, ' '));
PrintStream out = outFile == null ?
@@ -1849,11 +1845,8 @@ public class QTestUtil {
Process executor = Runtime.getRuntime().exec(args);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- PrintStream str = new PrintStream(bos, true);
-
StreamPrinter errPrinter = new StreamPrinter(executor.getErrorStream(), null, err);
- StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(), null, out, str);
+ StreamPrinter outPrinter = new StreamPrinter(executor.getInputStream(), null, out);
outPrinter.start();
errPrinter.start();
@@ -1871,8 +1864,7 @@ public class QTestUtil {
err.close();
}
- return QTestProcessExecResult.
- create(result, new String(bos.toByteArray(), StandardCharsets.UTF_8));
+ return result;
}
private static String getQuotedString(String str){
@@ -2048,18 +2040,11 @@ public class QTestUtil {
qt[i].clearTestSideEffects();
qt[i].cliInit(qfiles[i].getName(), false);
qt[i].executeClient(qfiles[i].getName());
- QTestProcessExecResult result = qt[i].checkCliDriverResults(qfiles[i].getName());
- if (result.getReturnCode() != 0) {
+ int ecode = qt[i].checkCliDriverResults(qfiles[i].getName());
+ if (ecode != 0) {
failed = true;
- StringBuilder builder = new StringBuilder();
- builder.append("Test ")
- .append(qfiles[i].getName())
- .append(" results check failed with error code ")
- .append(result.getReturnCode());
- if (Strings.isNotEmpty(result.getCapturedOutput())) {
- builder.append(" and diff value ").append(result.getCapturedOutput());
- }
- System.err.println(builder.toString());
+ System.err.println("Test " + qfiles[i].getName()
+ + " results check failed with error code " + ecode);
outputTestFailureHelpMessage();
}
qt[i].clearPostTestEffects();
@@ -2106,18 +2091,11 @@ public class QTestUtil {
for (int i = 0; i < qfiles.length; i++) {
qtThread[i].join();
- QTestProcessExecResult result = qt[i].checkCliDriverResults(qfiles[i].getName());
- if (result.getReturnCode() != 0) {
+ int ecode = qt[i].checkCliDriverResults(qfiles[i].getName());
+ if (ecode != 0) {
failed = true;
- StringBuilder builder = new StringBuilder();
- builder.append("Test ")
- .append(qfiles[i].getName())
- .append(" results check failed with error code ")
- .append(result.getReturnCode());
- if (Strings.isNotEmpty(result.getCapturedOutput())) {
- builder.append(" and diff value ").append(result.getCapturedOutput());
- }
- System.err.println(builder.toString());
+ System.err.println("Test " + qfiles[i].getName()
+ + " results check failed with error code " + ecode);
outputTestFailureHelpMessage();
}
}
@@ -2215,15 +2193,16 @@ public class QTestUtil {
public void failedDiff(int ecode, String fname, String debugHint) {
String message =
- "Client Execution succeeded but contained differences " +
- "(error code = " + ecode + ") after executing " +
+ "Client Execution results failed with error code = " + ecode + " while executing fname=" +
fname + (debugHint != null ? (" " + debugHint) : "");
LOG.error(message);
Assert.fail(message);
}
- public void failed(Exception e, String fname, String debugHint) {
+ public void failed(Throwable e, String fname, String debugHint) {
String command = SessionState.get() != null ? SessionState.get().getLastCommand() : null;
+ System.err.println("Exception: " + e.getMessage());
+ e.printStackTrace();
System.err.println("Failed query: " + fname);
System.err.flush();
Assert.fail("Unexpected exception " +
@@ -2263,6 +2242,9 @@ public class QTestUtil {
}
br.close();
} catch (Exception e) {
+ System.err.println("Exception: " + e.getMessage());
+ e.printStackTrace();
+ System.err.flush();
Assert.fail("Unexpected exception " + org.apache.hadoop.util.StringUtils.stringifyException(e));
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f99ece64/itests/util/src/main/java/org/apache/hadoop/hive/ql/parse/CoreParseNegative.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/parse/CoreParseNegative.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/parse/CoreParseNegative.java
index 31f69a3..8dba0bb 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/parse/CoreParseNegative.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/parse/CoreParseNegative.java
@@ -21,12 +21,9 @@ import static org.junit.Assert.fail;
import java.io.Serializable;
import java.util.List;
-
-import com.google.common.base.Strings;
import org.apache.hadoop.hive.cli.control.AbstractCliConfig;
import org.apache.hadoop.hive.cli.control.CliAdapter;
import org.apache.hadoop.hive.cli.control.CliConfigs;
-import org.apache.hadoop.hive.ql.QTestProcessExecResult;
import org.apache.hadoop.hive.ql.QTestUtil;
import org.apache.hadoop.hive.ql.QTestUtil.MiniClusterType;
import org.apache.hadoop.hive.ql.exec.Task;
@@ -109,20 +106,18 @@ public class CoreParseNegative extends CliAdapter{
fail("Unexpected success for query: " + fname + debugHint);
}
catch (ParseException pe) {
- QTestProcessExecResult result = qt.checkNegativeResults(fname, pe);
- if (result.getReturnCode() != 0) {
- qt.failed(result.getReturnCode(), fname, result.getCapturedOutput() + "\r\n" + debugHint);
+ int ecode = qt.checkNegativeResults(fname, pe);
+ if (ecode != 0) {
+ qt.failed(ecode, fname, debugHint);
}
}
catch (SemanticException se) {
- QTestProcessExecResult result = qt.checkNegativeResults(fname, se);
- if (result.getReturnCode() != 0) {
- String message = Strings.isNullOrEmpty(result.getCapturedOutput()) ?
- debugHint : "\r\n" + result.getCapturedOutput();
- qt.failedDiff(result.getReturnCode(), fname, message);
+ int ecode = qt.checkNegativeResults(fname, se);
+ if (ecode != 0) {
+ qt.failedDiff(ecode, fname, debugHint);
}
}
- catch (Exception e) {
+ catch (Throwable e) {
qt.failed(e, fname, debugHint);
}