|
@@ -298,6 +298,11 @@ public class CLITestHelper {
|
|
|
|
|
|
return compareOutput;
|
|
return compareOutput;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private boolean compareTextExitCode(ComparatorData compdata,
|
|
|
|
+ Result cmdResult) {
|
|
|
|
+ return compdata.getExitCode() == cmdResult.getExitCode();
|
|
|
|
+ }
|
|
|
|
|
|
/***********************************
|
|
/***********************************
|
|
************* TESTS RUNNER
|
|
************* TESTS RUNNER
|
|
@@ -330,10 +335,17 @@ public class CLITestHelper {
|
|
final String comptype = cd.getComparatorType();
|
|
final String comptype = cd.getComparatorType();
|
|
|
|
|
|
boolean compareOutput = false;
|
|
boolean compareOutput = false;
|
|
|
|
+ boolean compareExitCode = false;
|
|
|
|
|
|
if (! comptype.equalsIgnoreCase("none")) {
|
|
if (! comptype.equalsIgnoreCase("none")) {
|
|
compareOutput = compareTestOutput(cd, cmdResult);
|
|
compareOutput = compareTestOutput(cd, cmdResult);
|
|
- overallTCResult &= compareOutput;
|
|
|
|
|
|
+ if (cd.getExitCode() == -1) {
|
|
|
|
+ // No need to check exit code if not specified
|
|
|
|
+ compareExitCode = true;
|
|
|
|
+ } else {
|
|
|
|
+ compareExitCode = compareTextExitCode(cd, cmdResult);
|
|
|
|
+ }
|
|
|
|
+ overallTCResult &= (compareOutput & compareExitCode);
|
|
}
|
|
}
|
|
|
|
|
|
cd.setExitCode(cmdResult.getExitCode());
|
|
cd.setExitCode(cmdResult.getExitCode());
|
|
@@ -391,6 +403,7 @@ public class CLITestHelper {
|
|
testComparators = new ArrayList<ComparatorData>();
|
|
testComparators = new ArrayList<ComparatorData>();
|
|
} else if (qName.equals("comparator")) {
|
|
} else if (qName.equals("comparator")) {
|
|
comparatorData = new ComparatorData();
|
|
comparatorData = new ComparatorData();
|
|
|
|
+ comparatorData.setExitCode(-1);
|
|
}
|
|
}
|
|
charString = "";
|
|
charString = "";
|
|
}
|
|
}
|
|
@@ -422,6 +435,8 @@ public class CLITestHelper {
|
|
comparatorData.setComparatorType(charString);
|
|
comparatorData.setComparatorType(charString);
|
|
} else if (qName.equals("expected-output")) {
|
|
} else if (qName.equals("expected-output")) {
|
|
comparatorData.setExpectedOutput(charString);
|
|
comparatorData.setExpectedOutput(charString);
|
|
|
|
+ } else if (qName.equals("expected-exit-code")) {
|
|
|
|
+ comparatorData.setExitCode(Integer.valueOf(charString));
|
|
} else if (qName.equals("test")) {
|
|
} else if (qName.equals("test")) {
|
|
if (!Shell.WINDOWS || runOnWindows) {
|
|
if (!Shell.WINDOWS || runOnWindows) {
|
|
testsFromConfigFile.add(td);
|
|
testsFromConfigFile.add(td);
|