saschwartz created this revision.
saschwartz added a reviewer: clayborg.
saschwartz requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
This diff modifies the LLDB server return codes to more accurately
reflect usage error paths. It additionally modifies the associated unit test
to check that we have nonzero return codes on error conditions.
Test Plan:
LLDB tests pass:
ninja check-lldb
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108351
Files:
lldb/test/Shell/lldb-server/TestErrorMessages.test
lldb/tools/lldb-server/lldb-server.cpp
Index: lldb/tools/lldb-server/lldb-server.cpp
===================================================================
--- lldb/tools/lldb-server/lldb-server.cpp
+++ lldb/tools/lldb-server/lldb-server.cpp
@@ -52,29 +52,29 @@
llvm::InitLLVM IL(argc, argv, /*InstallPipeSignalExitHandler=*/false);
llvm::PrettyStackTraceProgram X(argc, argv);
- int option_error = 0;
const char *progname = argv[0];
if (argc < 2) {
display_usage(progname);
- exit(option_error);
+ exit(1);
}
+ int ret = 0;
switch (argv[1][0]) {
case 'g':
llgs::initialize();
- main_gdbserver(argc, argv);
+ ret = main_gdbserver(argc, argv);
llgs::terminate_debugger();
- break;
case 'p':
llgs::initialize();
- main_platform(argc, argv);
+ ret = main_platform(argc, argv);
llgs::terminate_debugger();
- break;
case 'v':
fprintf(stderr, "%s\n", lldb_private::GetVersion());
+ ret = 0;
break;
default:
display_usage(progname);
- exit(option_error);
+ ret = 1;
}
+ return ret;
}
Index: lldb/test/Shell/lldb-server/TestErrorMessages.test
===================================================================
--- lldb/test/Shell/lldb-server/TestErrorMessages.test
+++ lldb/test/Shell/lldb-server/TestErrorMessages.test
@@ -1,13 +1,13 @@
-RUN: %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL %s
+RUN: not %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL
%s
FD1: error: --fd: missing argument
-RUN: %lldb-server gdbserver --fd three 2>&1 | FileCheck
--check-prefixes=FD2,ALL %s
+RUN: not %lldb-server gdbserver --fd three 2>&1 | FileCheck
--check-prefixes=FD2,ALL %s
FD2: error: invalid '--fd' argument
-RUN: %lldb-server gdbserver --bogus 2>&1 | FileCheck
--check-prefixes=BOGUS,ALL %s
+RUN: not %lldb-server gdbserver --bogus 2>&1 | FileCheck
--check-prefixes=BOGUS,ALL %s
BOGUS: error: unknown argument '--bogus'
-RUN: %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s
+RUN: not %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s
CONN: error: no connection arguments
ALL: Use '{{.*}} g[dbserver] --help' for a complete list of options.
Index: lldb/tools/lldb-server/lldb-server.cpp
===================================================================
--- lldb/tools/lldb-server/lldb-server.cpp
+++ lldb/tools/lldb-server/lldb-server.cpp
@@ -52,29 +52,29 @@
llvm::InitLLVM IL(argc, argv, /*InstallPipeSignalExitHandler=*/false);
llvm::PrettyStackTraceProgram X(argc, argv);
- int option_error = 0;
const char *progname = argv[0];
if (argc < 2) {
display_usage(progname);
- exit(option_error);
+ exit(1);
}
+ int ret = 0;
switch (argv[1][0]) {
case 'g':
llgs::initialize();
- main_gdbserver(argc, argv);
+ ret = main_gdbserver(argc, argv);
llgs::terminate_debugger();
- break;
case 'p':
llgs::initialize();
- main_platform(argc, argv);
+ ret = main_platform(argc, argv);
llgs::terminate_debugger();
- break;
case 'v':
fprintf(stderr, "%s\n", lldb_private::GetVersion());
+ ret = 0;
break;
default:
display_usage(progname);
- exit(option_error);
+ ret = 1;
}
+ return ret;
}
Index: lldb/test/Shell/lldb-server/TestErrorMessages.test
===================================================================
--- lldb/test/Shell/lldb-server/TestErrorMessages.test
+++ lldb/test/Shell/lldb-server/TestErrorMessages.test
@@ -1,13 +1,13 @@
-RUN: %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL %s
+RUN: not %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL %s
FD1: error: --fd: missing argument
-RUN: %lldb-server gdbserver --fd three 2>&1 | FileCheck --check-prefixes=FD2,ALL %s
+RUN: not %lldb-server gdbserver --fd three 2>&1 | FileCheck --check-prefixes=FD2,ALL %s
FD2: error: invalid '--fd' argument
-RUN: %lldb-server gdbserver --bogus 2>&1 | FileCheck --check-prefixes=BOGUS,ALL %s
+RUN: not %lldb-server gdbserver --bogus 2>&1 | FileCheck --check-prefixes=BOGUS,ALL %s
BOGUS: error: unknown argument '--bogus'
-RUN: %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s
+RUN: not %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s
CONN: error: no connection arguments
ALL: Use '{{.*}} g[dbserver] --help' for a complete list of options.
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits