llvm-project/lldb/test/API/test_utils/TestPExpectTest.py
Raphael Isemann 2f84b59a4c [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
2020-11-05 14:08:46 +01:00

30 lines
847 B
Python

"""
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")