Files
clang-p2996/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
Dave Lee 4076664228 [lldb][test] Replace use of p with expression (NFC)
In API tests, replace use of the `p` alias with the `expression` command.

To avoid conflating tests of the alias with tests of the expression command,
this patch canonicalizes to the use `expression`.

Differential Revision: https://reviews.llvm.org/D141539
2023-01-25 11:03:58 -08:00

37 lines
1.4 KiB
Python

"""
Test calling std::String member functions.
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class ExprCommandCallFunctionTestCase(TestBase):
@expectedFailureAll(
compiler="icc",
bugnumber="llvm.org/pr14437, fails with ICC 13.1")
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765")
@skipIf(compiler="clang", compiler_version=['<', '9.0'])
def test_with(self):
"""Test calling std::String member function."""
self.build()
lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.cpp"))
self.expect("expression str",
substrs=['Hello world'])
# Calling this function now succeeds, but we follow the typedef return type through to
# const char *, and thus don't invoke the Summary formatter.
# clang's libstdc++ on ios arm64 inlines std::string::c_str() always;
# skip this part of the test.
triple = self.dbg.GetSelectedPlatform().GetTriple()
do_cstr_test = True
if triple in ["arm64-apple-ios", "arm64e-apple-ios", "arm64-apple-tvos", "armv7k-apple-watchos", "arm64-apple-bridgeos", "arm64_32-apple-watchos"]:
do_cstr_test = False
if do_cstr_test:
self.expect("expression str.c_str()",
substrs=['Hello world'])