You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by er...@apache.org on 2022/02/11 02:04:57 UTC
[iotdb] branch master updated: [IOTDB-2523] Fix exiting with 0 when executing error in cli (#5026)
This is an automated email from the ASF dual-hosted git repository.
ericpai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new e3240f5 [IOTDB-2523] Fix exiting with 0 when executing error in cli (#5026)
e3240f5 is described below
commit e3240f5703650ef631a9562b523688f2c17beddb
Author: BaiJian <er...@hotmail.com>
AuthorDate: Fri Feb 11 10:04:02 2022 +0800
[IOTDB-2523] Fix exiting with 0 when executing error in cli (#5026)
---
cli/src/assembly/resources/sbin/start-cli.bat | 7 ++-
cli/src/assembly/resources/tools/export-csv.bat | 7 ++-
cli/src/assembly/resources/tools/import-csv.bat | 7 ++-
.../java/org/apache/iotdb/cli/AbstractCli.java | 68 ++++++++++++++--------
cli/src/main/java/org/apache/iotdb/cli/Cli.java | 15 +++--
.../org/apache/iotdb/tool/AbstractCsvTool.java | 3 +
.../main/java/org/apache/iotdb/tool/ExportCsv.java | 18 ++++--
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 33 +++++++----
.../java/org/apache/iotdb/cli/AbstractScript.java | 19 +++++-
.../org/apache/iotdb/cli/StartClientScriptIT.java | 16 ++---
.../iotdb/tool/integration/ExportCsvTestIT.java | 4 +-
.../iotdb/tool/integration/ImportCsvTestIT.java | 4 +-
12 files changed, 136 insertions(+), 65 deletions(-)
diff --git a/cli/src/assembly/resources/sbin/start-cli.bat b/cli/src/assembly/resources/sbin/start-cli.bat
index d77b15d..95cdc0a 100644
--- a/cli/src/assembly/resources/sbin/start-cli.bat
+++ b/cli/src/assembly/resources/sbin/start-cli.bat
@@ -59,16 +59,19 @@ echo %PARAMETERS% | findstr /c:"-h ">nul && (set PARAMETERS=%PARAMETERS%) || (se
echo %PARAMETERS%
"%JAVA_HOME%\bin\java" %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS% %PARAMETERS%
-
+set ret_code=%ERRORLEVEL%
goto finally
:err
echo JAVA_HOME environment variable must be set!
+set ret_code=1
pause
@REM -----------------------------------------------------------------------------
:finally
-ENDLOCAL
\ No newline at end of file
+ENDLOCAL
+
+EXIT %ret_code%
diff --git a/cli/src/assembly/resources/tools/export-csv.bat b/cli/src/assembly/resources/tools/export-csv.bat
index 44c4334..2f4fd5e 100644
--- a/cli/src/assembly/resources/tools/export-csv.bat
+++ b/cli/src/assembly/resources/tools/export-csv.bat
@@ -42,15 +42,18 @@ set CLASSPATH=%IOTDB_HOME%\lib\*
REM -----------------------------------------------------------------------------
"%JAVA_HOME%\bin\java" -DIOTDB_HOME=%IOTDB_HOME% %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS% %*
-
+set ret_code=%ERRORLEVEL%
goto finally
:err
echo JAVA_HOME environment variable must be set!
+set ret_code=1
pause
@REM -----------------------------------------------------------------------------
:finally
-ENDLOCAL
\ No newline at end of file
+ENDLOCAL
+
+EXIT %ret_code%
diff --git a/cli/src/assembly/resources/tools/import-csv.bat b/cli/src/assembly/resources/tools/import-csv.bat
index 87d71ae..ca9392e 100644
--- a/cli/src/assembly/resources/tools/import-csv.bat
+++ b/cli/src/assembly/resources/tools/import-csv.bat
@@ -42,16 +42,19 @@ set CLASSPATH=%IOTDB_HOME%\lib\*
REM -----------------------------------------------------------------------------
"%JAVA_HOME%\bin\java" -DIOTDB_HOME=%IOTDB_HOME% %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS% %*
-
+set ret_code=%ERRORLEVEL%
goto finally
:err
echo JAVA_HOME environment variable must be set!
+set ret_code=1
pause
@REM -----------------------------------------------------------------------------
:finally
-ENDLOCAL
\ No newline at end of file
+ENDLOCAL
+
+EXIT %ret_code%
diff --git a/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java b/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
index 133fe76..1cbed9d 100644
--- a/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
+++ b/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
@@ -72,6 +72,9 @@ public abstract class AbstractCli {
private static final String EXECUTE_NAME = "execute";
private static final String NULL = "null";
+ static final int CODE_OK = 0;
+ static final int CODE_ERROR = 1;
+
static final String ISO8601_ARGS = "disableISO8601";
static final List<String> AGGREGRATE_TIME_LIST = new ArrayList<>();
static final String MAX_PRINT_ROW_COUNT_ARGS = "maxPRC";
@@ -118,6 +121,8 @@ public abstract class AbstractCli {
private static boolean cursorBeforeFirst = true;
+ static int lastProcessStatus = CODE_OK;
+
static void init() {
keywordSet.add("-" + HOST_ARGS);
keywordSet.add("-" + HELP_ARGS);
@@ -318,6 +323,7 @@ public abstract class AbstractCli {
}
static OperationResult handleInputCmd(String cmd, IoTDBConnection connection) {
+ lastProcessStatus = CODE_OK;
String specialCmd = cmd.toLowerCase().trim();
if (QUIT_COMMAND.equals(specialCmd) || EXIT_COMMAND.equals(specialCmd)) {
@@ -328,27 +334,27 @@ public abstract class AbstractCli {
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SET_TIMESTAMP_DISPLAY)) {
- setTimestampDisplay(specialCmd, cmd);
+ lastProcessStatus = setTimestampDisplay(specialCmd, cmd);
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SET_TIME_ZONE)) {
- setTimeZone(specialCmd, cmd, connection);
+ lastProcessStatus = setTimeZone(specialCmd, cmd, connection);
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SET_FETCH_SIZE)) {
- setFetchSize(specialCmd, cmd);
+ lastProcessStatus = setFetchSize(specialCmd, cmd);
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SET_MAX_DISPLAY_NUM)) {
- setMaxDisplayNum(specialCmd, cmd);
+ lastProcessStatus = setMaxDisplayNum(specialCmd, cmd);
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SHOW_TIMEZONE)) {
- showTimeZone(connection);
+ lastProcessStatus = showTimeZone(connection);
return OperationResult.CONTINUE_OPER;
}
if (specialCmd.startsWith(SHOW_TIMESTAMP_DISPLAY)) {
@@ -361,11 +367,11 @@ public abstract class AbstractCli {
}
if (specialCmd.startsWith(IMPORT_CMD)) {
- importCmd(specialCmd, cmd, connection);
+ lastProcessStatus = importCmd(specialCmd, cmd, connection);
return OperationResult.CONTINUE_OPER;
}
- executeQuery(connection, cmd);
+ lastProcessStatus = executeQuery(connection, cmd);
return OperationResult.NO_OPER;
}
@@ -390,21 +396,22 @@ public abstract class AbstractCli {
SET_MAX_DISPLAY_NUM));
}
- private static void setTimestampDisplay(String specialCmd, String cmd) {
+ private static int setTimestampDisplay(String specialCmd, String cmd) {
String[] values = specialCmd.split("=");
if (values.length != 2) {
println(
String.format(
"Time display format error, please input like %s=ISO8601", SET_TIMESTAMP_DISPLAY));
- return;
+ return CODE_ERROR;
}
try {
timeFormat = RpcUtils.setTimeFormat(cmd.split("=")[1]);
} catch (Exception e) {
println(String.format("time display format error, %s", e.getMessage()));
- return;
+ return CODE_ERROR;
}
println("Time display type has set to " + cmd.split("=")[1].trim());
+ return CODE_OK;
}
/**
@@ -414,86 +421,94 @@ public abstract class AbstractCli {
* @param specialCmd
* @param cmd
* @param connection
+ * @return execute result code
*/
- private static void setTimeZone(String specialCmd, String cmd, IoTDBConnection connection) {
+ private static int setTimeZone(String specialCmd, String cmd, IoTDBConnection connection) {
String[] values = specialCmd.split("=");
if (values.length != 2) {
println(String.format("Time zone format error, please input like %s=+08:00", SET_TIME_ZONE));
- return;
+ return CODE_ERROR;
}
try {
connection.setTimeZone(cmd.split("=")[1].trim());
} catch (Exception e) {
println(String.format("Time zone format error: %s", e.getMessage()));
- return;
+ return CODE_ERROR;
}
println("Time zone has set to " + values[1].trim());
+ return CODE_OK;
}
- private static void setFetchSize(String specialCmd, String cmd) {
+ private static int setFetchSize(String specialCmd, String cmd) {
String[] values = specialCmd.split("=");
if (values.length != 2) {
println(String.format("Fetch size format error, please input like %s=10000", SET_FETCH_SIZE));
- return;
+ return CODE_ERROR;
}
try {
setFetchSize(cmd.split("=")[1]);
} catch (Exception e) {
println(String.format("Fetch size format error, %s", e.getMessage()));
- return;
+ return CODE_ERROR;
}
println("Fetch size has set to " + values[1].trim());
+ return CODE_OK;
}
- private static void setMaxDisplayNum(String specialCmd, String cmd) {
+ private static int setMaxDisplayNum(String specialCmd, String cmd) {
String[] values = specialCmd.split("=");
if (values.length != 2) {
println(
String.format(
"Max display number format error, please input like %s = 10000",
SET_MAX_DISPLAY_NUM));
- return;
+ return CODE_ERROR;
}
try {
setMaxDisplayNumber(cmd.split("=")[1]);
} catch (Exception e) {
println(String.format("Max display number format error, %s", e.getMessage()));
- return;
+ return CODE_ERROR;
}
println("Max display number has set to " + values[1].trim());
+ return CODE_OK;
}
- private static void showTimeZone(IoTDBConnection connection) {
+ private static int showTimeZone(IoTDBConnection connection) {
try {
println("Current time zone: " + connection.getTimeZone());
} catch (Exception e) {
println("Cannot get time zone from server side because: " + e.getMessage());
+ return CODE_ERROR;
}
+ return CODE_OK;
}
- private static void importCmd(String specialCmd, String cmd, IoTDBConnection connection) {
+ private static int importCmd(String specialCmd, String cmd, IoTDBConnection connection) {
String[] values = specialCmd.split(" ");
if (values.length != 2) {
println(
"Please input like: import /User/myfile. "
+ "Noted that your file path cannot contain any space character)");
- return;
+ return CODE_ERROR;
}
println(cmd.split(" ")[1]);
try {
- ImportCsv.importFromTargetPath(
+ return ImportCsv.importFromTargetPath(
host,
- Integer.valueOf(port),
+ Integer.parseInt(port),
username,
password,
cmd.split(" ")[1],
connection.getTimeZone());
} catch (IoTDBConnectionException e) {
e.printStackTrace();
+ return CODE_ERROR;
}
}
- private static void executeQuery(IoTDBConnection connection, String cmd) {
+ private static int executeQuery(IoTDBConnection connection, String cmd) {
+ int executeStatus = CODE_OK;
long startTime = System.currentTimeMillis();
try (Statement statement = connection.createStatement()) {
ZoneId zoneId = ZoneId.of(connection.getTimeZone());
@@ -533,6 +548,7 @@ public abstract class AbstractCli {
}
} catch (IOException e) {
e.printStackTrace();
+ executeStatus = CODE_ERROR;
}
}
// output tracing activity
@@ -547,9 +563,11 @@ public abstract class AbstractCli {
}
} catch (Exception e) {
println("Msg: " + e.getMessage());
+ executeStatus = CODE_ERROR;
} finally {
resetArgs();
}
+ return executeStatus;
}
/**
diff --git a/cli/src/main/java/org/apache/iotdb/cli/Cli.java b/cli/src/main/java/org/apache/iotdb/cli/Cli.java
index b13ff71..e4cf0ec 100644
--- a/cli/src/main/java/org/apache/iotdb/cli/Cli.java
+++ b/cli/src/main/java/org/apache/iotdb/cli/Cli.java
@@ -66,14 +66,14 @@ public class Cli extends AbstractCli {
+ "-h xxx.xxx.xxx.xxx -p xxxx -u xxx.");
println("For more information, please check the following hint.");
hf.printHelp(SCRIPT_HINT, options, true);
- return;
+ System.exit(CODE_ERROR);
}
init();
String[] newArgs = removePasswordArgs(args);
String[] newArgs2 = processExecuteArgs(newArgs);
boolean continues = parseCommandLine(options, newArgs2, hf);
if (!continues) {
- return;
+ System.exit(CODE_ERROR);
}
try {
@@ -82,8 +82,10 @@ public class Cli extends AbstractCli {
username = checkRequiredArg(USERNAME_ARGS, USERNAME_NAME, commandLine, true, null);
} catch (ArgsErrorException e) {
println(IOTDB_CLI_PREFIX + "> input params error because" + e.getMessage());
+ System.exit(CODE_ERROR);
} catch (Exception e) {
println(IOTDB_CLI_PREFIX + "> exit cli with error " + e.getMessage());
+ System.exit(CODE_ERROR);
}
lineReader = JlineUtils.getLineReader(username, host, port);
@@ -135,9 +137,10 @@ public class Cli extends AbstractCli {
timestampPrecision = properties.getTimestampPrecision();
AGGREGRATE_TIME_LIST.addAll(properties.getSupportedTimeAggregationOperations());
processCommand(execute, connection);
- return;
+ System.exit(lastProcessStatus);
} catch (SQLException e) {
println(IOTDB_CLI_PREFIX + "> can't execute sql because" + e.getMessage());
+ System.exit(CODE_ERROR);
}
}
if (password == null) {
@@ -146,6 +149,7 @@ public class Cli extends AbstractCli {
receiveCommands(lineReader);
} catch (Exception e) {
println(IOTDB_CLI_PREFIX + "> exit cli with error " + e.getMessage());
+ System.exit(CODE_ERROR);
}
}
@@ -174,17 +178,18 @@ public class Cli extends AbstractCli {
try {
reader.readLine("Press CTRL+C again to exit, or press ENTER to continue", '\0');
} catch (UserInterruptException | EndOfFileException e2) {
- System.exit(0);
+ System.exit(CODE_OK);
}
} catch (EndOfFileException e) {
// Exit on EOF (usually by pressing CTRL+D).
- System.exit(0);
+ System.exit(CODE_OK);
}
}
} catch (SQLException e) {
println(
String.format(
"%s> %s Host is %s, port is %s.", IOTDB_CLI_PREFIX, e.getMessage(), host, port));
+ System.exit(CODE_ERROR);
}
}
}
diff --git a/cli/src/main/java/org/apache/iotdb/tool/AbstractCsvTool.java b/cli/src/main/java/org/apache/iotdb/tool/AbstractCsvTool.java
index 3294406..54ddec9 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/AbstractCsvTool.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/AbstractCsvTool.java
@@ -98,6 +98,9 @@ public abstract class AbstractCsvTool {
"yyyy/MM/dd'T'HH:mm:ss",
"yyyy.MM.dd'T'HH:mm:ss"
};
+ protected static final int CODE_OK = 0;
+ protected static final int CODE_ERROR = 1;
+
protected static String host;
protected static String port;
protected static String username;
diff --git a/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java b/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
index 1524b43..db6e3e0 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
@@ -94,7 +94,7 @@ public class ExportCsv extends AbstractCsvTool {
public static void main(String[] args) {
Options options = createOptions();
HelpFormatter hf = new HelpFormatter();
- CommandLine commandLine;
+ CommandLine commandLine = null;
CommandLineParser parser = new DefaultParser();
hf.setOptionComparator(null); // avoid reordering
hf.setWidth(MAX_HELP_CONSOLE_WIDTH);
@@ -102,25 +102,25 @@ public class ExportCsv extends AbstractCsvTool {
if (args == null || args.length == 0) {
System.out.println("Too few params input, please check the following hint.");
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
try {
commandLine = parser.parse(options, args);
} catch (ParseException e) {
System.out.println(e.getMessage());
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
if (commandLine.hasOption(HELP_ARGS)) {
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
-
+ int exitCode = CODE_OK;
try {
parseBasicParams(commandLine);
parseSpecialParams(commandLine);
if (!checkTimeFormat()) {
- return;
+ System.exit(CODE_ERROR);
}
session = new Session(host, Integer.parseInt(port), username, password);
@@ -149,23 +149,29 @@ public class ExportCsv extends AbstractCsvTool {
} catch (IOException e) {
System.out.println("Failed to operate on file, because " + e.getMessage());
+ exitCode = CODE_ERROR;
} catch (ArgsErrorException e) {
System.out.println("Invalid args: " + e.getMessage());
+ exitCode = CODE_ERROR;
} catch (IoTDBConnectionException | StatementExecutionException e) {
System.out.println("Connect failed because " + e.getMessage());
+ exitCode = CODE_ERROR;
} catch (TException e) {
System.out.println(
"Can not get the timestamp precision from server because " + e.getMessage());
+ exitCode = CODE_ERROR;
} finally {
if (session != null) {
try {
session.close();
} catch (IoTDBConnectionException e) {
+ exitCode = CODE_ERROR;
System.out.println(
"Encounter an error when closing session, error is: " + e.getMessage());
}
}
}
+ System.exit(exitCode);
}
private static void parseSpecialParams(CommandLine commandLine) throws ArgsErrorException {
diff --git a/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java b/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
index e4eef04..5728f95 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
@@ -44,7 +44,12 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -164,24 +169,24 @@ public class ImportCsv extends AbstractCsvTool {
HelpFormatter hf = new HelpFormatter();
hf.setOptionComparator(null);
hf.setWidth(MAX_HELP_CONSOLE_WIDTH);
- CommandLine commandLine;
+ CommandLine commandLine = null;
CommandLineParser parser = new DefaultParser();
if (args == null || args.length == 0) {
System.out.println("Too few params input, please check the following hint.");
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
try {
commandLine = parser.parse(options, args);
} catch (org.apache.commons.cli.ParseException e) {
System.out.println("Parse error: " + e.getMessage());
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
if (commandLine.hasOption(HELP_ARGS)) {
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
try {
@@ -189,16 +194,20 @@ public class ImportCsv extends AbstractCsvTool {
String filename = commandLine.getOptionValue(FILE_ARGS);
if (filename == null) {
hf.printHelp(TSFILEDB_CLI_PREFIX, options, true);
- return;
+ System.exit(CODE_ERROR);
}
parseSpecialParams(commandLine);
} catch (ArgsErrorException e) {
System.out.println("Args error: " + e.getMessage());
+ System.exit(CODE_ERROR);
} catch (Exception e) {
System.out.println("Encounter an error, because: " + e.getMessage());
+ System.exit(CODE_ERROR);
}
- importFromTargetPath(host, Integer.valueOf(port), username, password, targetPath, timeZoneID);
+ System.exit(
+ importFromTargetPath(
+ host, Integer.parseInt(port), username, password, targetPath, timeZoneID));
}
/**
@@ -211,13 +220,14 @@ public class ImportCsv extends AbstractCsvTool {
* @param password
* @param targetPath a CSV file or a directory including CSV files
* @param timeZone
+ * @return the status code
* @throws IoTDBConnectionException
*/
- public static void importFromTargetPath(
+ public static int importFromTargetPath(
String host, int port, String username, String password, String targetPath, String timeZone)
throws IoTDBConnectionException {
try {
- session = new Session(host, Integer.valueOf(port), username, password, false);
+ session = new Session(host, port, username, password, false);
session.open(false);
timeZoneID = timeZone;
setTimeZone();
@@ -228,7 +238,7 @@ public class ImportCsv extends AbstractCsvTool {
} else if (file.isDirectory()) {
File[] files = file.listFiles();
if (files == null) {
- return;
+ return CODE_OK;
}
for (File subFile : files) {
@@ -238,14 +248,17 @@ public class ImportCsv extends AbstractCsvTool {
}
} else {
System.out.println("File not found!");
+ return CODE_ERROR;
}
} catch (IoTDBConnectionException | StatementExecutionException e) {
System.out.println("Encounter an error when connecting to server, because " + e.getMessage());
+ return CODE_ERROR;
} finally {
if (session != null) {
session.close();
}
}
+ return CODE_OK;
}
/**
diff --git a/cli/src/test/java/org/apache/iotdb/cli/AbstractScript.java b/cli/src/test/java/org/apache/iotdb/cli/AbstractScript.java
index 12eaae8..1172179 100644
--- a/cli/src/test/java/org/apache/iotdb/cli/AbstractScript.java
+++ b/cli/src/test/java/org/apache/iotdb/cli/AbstractScript.java
@@ -20,16 +20,22 @@ package org.apache.iotdb.cli;
import org.apache.thrift.annotation.Nullable;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
public abstract class AbstractScript {
- protected void testOutput(ProcessBuilder builder, @Nullable String[] output) throws IOException {
+ protected void testOutput(ProcessBuilder builder, @Nullable String[] output, int statusCode)
+ throws IOException {
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
@@ -61,6 +67,15 @@ public abstract class AbstractScript {
assertEquals(output[output.length - 1 - i], outputList.get(outputList.size() - 1 - i));
}
}
+ while (p.isAlive()) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+ assertEquals(statusCode, p.exitValue());
}
protected String getCliPath() {
diff --git a/cli/src/test/java/org/apache/iotdb/cli/StartClientScriptIT.java b/cli/src/test/java/org/apache/iotdb/cli/StartClientScriptIT.java
index 0039b12..18622c2 100644
--- a/cli/src/test/java/org/apache/iotdb/cli/StartClientScriptIT.java
+++ b/cli/src/test/java/org/apache/iotdb/cli/StartClientScriptIT.java
@@ -20,7 +20,9 @@ package org.apache.iotdb.cli;
import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.junit.*;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
import java.io.File;
import java.io.IOException;
@@ -66,7 +68,7 @@ public class StartClientScriptIT extends AbstractScript {
"root",
"-pw",
"root");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
final String[] output2 = {"Msg: The statement is executed successfully."};
ProcessBuilder builder2 =
@@ -78,7 +80,7 @@ public class StartClientScriptIT extends AbstractScript {
"0",
"-e",
"\"flush\"");
- testOutput(builder2, output2);
+ testOutput(builder2, output2, 0);
final String[] output3 = {
"IoTDB> error format of max print row count, it should be an integer number"
@@ -90,7 +92,7 @@ public class StartClientScriptIT extends AbstractScript {
dir + File.separator + "sbin" + File.separator + "start-cli.bat",
"-maxPRC",
"-1111111111111111111111111111");
- testOutput(builder3, output3);
+ testOutput(builder3, output3, 1);
}
@Override
@@ -111,7 +113,7 @@ public class StartClientScriptIT extends AbstractScript {
"root",
"-pw",
"root");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
final String[] output2 = {"Msg: The statement is executed successfully."};
ProcessBuilder builder2 =
@@ -122,7 +124,7 @@ public class StartClientScriptIT extends AbstractScript {
"0",
"-e",
"\"flush\"");
- testOutput(builder2, output2);
+ testOutput(builder2, output2, 0);
final String[] output3 = {
"IoTDB> error format of max print row count, it should be an integer number"
@@ -133,6 +135,6 @@ public class StartClientScriptIT extends AbstractScript {
dir + File.separator + "sbin" + File.separator + "start-cli.sh",
"-maxPRC",
"-1111111111111111111111111111");
- testOutput(builder3, output3);
+ testOutput(builder3, output3, 1);
}
}
diff --git a/cli/src/test/java/org/apache/iotdb/tool/integration/ExportCsvTestIT.java b/cli/src/test/java/org/apache/iotdb/tool/integration/ExportCsvTestIT.java
index b745e86..a1b735e 100644
--- a/cli/src/test/java/org/apache/iotdb/tool/integration/ExportCsvTestIT.java
+++ b/cli/src/test/java/org/apache/iotdb/tool/integration/ExportCsvTestIT.java
@@ -70,7 +70,7 @@ public class ExportCsvTestIT extends AbstractScript {
"root",
"-td",
"./");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
}
@Override
@@ -97,6 +97,6 @@ public class ExportCsvTestIT extends AbstractScript {
"root",
"-td",
"./");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
}
}
diff --git a/cli/src/test/java/org/apache/iotdb/tool/integration/ImportCsvTestIT.java b/cli/src/test/java/org/apache/iotdb/tool/integration/ImportCsvTestIT.java
index f5f8f86..5b9e577 100644
--- a/cli/src/test/java/org/apache/iotdb/tool/integration/ImportCsvTestIT.java
+++ b/cli/src/test/java/org/apache/iotdb/tool/integration/ImportCsvTestIT.java
@@ -70,7 +70,7 @@ public class ImportCsvTestIT extends AbstractScript {
"root",
"-f",
"./");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
}
@Override
@@ -97,6 +97,6 @@ public class ImportCsvTestIT extends AbstractScript {
"root",
"-f",
"./");
- testOutput(builder, output);
+ testOutput(builder, output, 1);
}
}