forked from OSchip/llvm-project
[lldb] Also Catch invalid calls to TestPExpectTest's expect()
This is a follow up to D88792 which found an issue in a call to PExpectTest's expect function that allows passing a string to the `substrs` parameter. However this issue was found by just grepping and TestPExpect's expect function is still accepting a single string as a value to `substrs`. This patch adds the same sanity check that D88792 added to the PExpectTest's implementation of `expect` and also adds a small test for it. Reviewed By: kastiglione, JDevlieghere Differential Revision: https://reviews.llvm.org/D89302
This commit is contained in:
parent
a7bcb3b9eb
commit
2f84b59a4c
|
@ -54,6 +54,10 @@ class PExpectTest(TestBase):
|
|||
def expect(self, cmd, substrs=None):
|
||||
self.assertNotIn('\n', cmd)
|
||||
self.child.sendline(cmd)
|
||||
# If 'substrs' is a string then this code would just check that every
|
||||
# character of the string is in the output.
|
||||
assert not isinstance(substrs, six.string_types), \
|
||||
"substrs must be a collection of strings"
|
||||
if substrs is not None:
|
||||
for s in substrs:
|
||||
self.child.expect_exact(s)
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
"""
|
||||
Test the PExpectTest test functions.
|
||||
"""
|
||||
|
||||
|
||||
import lldb
|
||||
import lldbsuite.test.lldbutil as lldbutil
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from textwrap import dedent
|
||||
|
||||
|
||||
class TestPExpectTestCase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
||||
def assert_expect_fails_with(self, cmd, expect_args, expected_msg):
|
||||
try:
|
||||
self.expect(cmd, **expect_args)
|
||||
except AssertionError as e:
|
||||
self.assertIn(expected_msg, str(e))
|
||||
else:
|
||||
self.fail("expect should have raised AssertionError!")
|
||||
|
||||
def test_expect(self):
|
||||
# Test that passing a string to the 'substrs' argument is rejected.
|
||||
self.assert_expect_fails_with("settings list prompt",
|
||||
dict(substrs="some substring"),
|
||||
"substrs must be a collection of strings")
|
Loading…
Reference in New Issue