From 8652b249e6ede3f495bf96820b6f34110aafa84d Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Mon, 25 Sep 2017 18:19:39 +0000 Subject: Initial patchset to get the testsuite running against armv7 and arm64 iOS devices. Normal customer devices won't be able to run these tests, we're hoping to get a public facing bot set up at some point. Both devices pass the testsuite without any errors or failures. I have seen some instability with the armv7 test runs, I may submit additional patches to address this. arm64 looks good. I'll be watching the bots for the rest of today; if any problems are introduced by this patch I'll revert it - if anyone sees a problem with their bot that I don't see, please do the same. I know it's a rather large patch. One change I had to make specifically for iOS devices was that debugserver can't create files. There were several tests that launch the inferior process redirecting its output to a file, then they retrieve the file. They were not trying to test file redirection in these tests, so I rewrote those to write their output to a file directly. llvm-svn: 314132 --- .../call-function/TestCallStdStringFunction.py | 12 ++++++++++-- .../lldbsuite/test/expression_command/char/TestExprsChar.py | 5 ++++- .../persist_objc_pointeetype/TestPersistObjCPointeeType.py | 1 + .../lldbsuite/test/expression_command/po_verbosity/Makefile | 2 +- .../lldbsuite/test/expression_command/po_verbosity/main.m | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) (limited to 'lldb/packages/Python/lldbsuite/test/expression_command') diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py index a2d149f4b49..16736f79852 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py @@ -44,5 +44,13 @@ class ExprCommandCallFunctionTestCase(TestBase): # Calling this function now succeeds, but we follow the typedef return type through to # const char *, and thus don't invoke the Summary formatter. - self.expect("print str.c_str()", - substrs=['Hello world']) + + # 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 == "arm64-apple-ios" or triple == "arm64-apple-tvos" or triple == "armv7k-apple-watchos" or triple == "arm64-apple-bridgeos": + do_cstr_test = False + if do_cstr_test: + self.expect("print str.c_str()", + substrs=['Hello world']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py index 74991999d92..445979f5c70 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py @@ -58,7 +58,10 @@ class ExprCharTestCase(TestBase): @expectedFailureAll( archs=[ "i[3-6]86", - "x86_64"], + "x86_64", + "arm64", + 'armv7', + 'armv7k'], bugnumber="llvm.org/pr23069, ") @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") @expectedFailureAll(triple='mips*', bugnumber="llvm.org/pr23069") diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py index b99fb727e8a..ba00ce32e5c 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py @@ -26,6 +26,7 @@ class PersistObjCPointeeType(TestBase): bugnumber='http://llvm.org/pr23504', oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0']) @skipIf(archs=["i386", "i686"]) + @skipIf(debug_info="gmodules", archs=['arm64', 'armv7', 'armv7k']) # compile error with gmodules for iOS def test_with(self): """Test that we can p *objcObject""" self.build() diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile index 4464e2ee9f5..b6592745356 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile +++ b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/Makefile @@ -3,4 +3,4 @@ LEVEL = ../../make OBJC_SOURCES := main.m include $(LEVEL)/Makefile.rules -LDFLAGS += -framework Cocoa +LDFLAGS += -framework Foundation diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m index 3dbb024b280..9c79f850bf2 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m +++ b/lldb/packages/Python/lldbsuite/test/expression_command/po_verbosity/main.m @@ -1,4 +1,4 @@ -#import +#import int main() { -- cgit v1.2.3