[lldb-dev] [Bug 48049] New: platform shell doesn't fail if the shell command fails
via lldb-dev
lldb-dev at lists.llvm.org
Mon Nov 2 07:48:40 PST 2020
https://bugs.llvm.org/show_bug.cgi?id=48049
Bug ID: 48049
Summary: platform shell doesn't fail if the shell command fails
Product: lldb
Version: 11.0
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: lldb-dev at lists.llvm.org
Reporter: david.spickett at linaro.org
CC: jdevlieghere at apple.com, llvm-bugs at lists.llvm.org
In an interactive shell we get all the output you'd expect:
$ ./bin/lldb
(lldb) platform shell not_a_cmd
/bin/bash: not_a_cmd: command not found
error: command returned with status 127
But when using the API (via the test framework) the command is marked as
succeeded even though it failed on the platform:
@no_debug_info_test
+ def test_shell_command_failure(self):
+ """ Test that the platform shell command passes on command failures"""
+ triple = self.dbg.GetSelectedPlatform().GetTriple()
+ # TODO: windows/android like above
+ self.runCmd("platform shell definitley_not_a_command", check=False)
+ self.assertFalse(self.res.Succeeded())
FAIL: test_shell_command_failure (TestPlatformCommand.PlatformCommandTestCase)
Test that the platform shell command passes on command failures
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/work/open_source/nightly-llvm/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py",
line 346, in wrapper
return func(self, *args, **kwargs)
File
"/work/open_source/nightly-llvm/llvm-project/lldb/test/API/commands/platform/basic/TestPlatformCommand.py",
line 85, in test_shell_command_failure
self.assertFalse(self.res.Succeeded())
AssertionError: True is not False
I can see some logic in saying it's a success because lldb successfully sent
the command text to and from the platform. Whether the command itself was
successful is the user's business. Is that intentional or just how "platform
shell" happens to act?
I initially assumed that a failed shell command would be a failed lldb command.
I couldn't find mention of this in the docs.
The one existing test using SBPlatformCommand is:
API/python_api/sbplatform/TestSBPlatform.py
Which also checks that the command output contains the expected text.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20201102/13d82b04/attachment.html>
More information about the lldb-dev
mailing list