diff options
author | Alex Langford <apl@fb.com> | 2019-07-09 21:35:58 +0000 |
---|---|---|
committer | Alex Langford <apl@fb.com> | 2019-07-09 21:35:58 +0000 |
commit | 695f7821e2d90210ac93533393a0a028a4a08600 (patch) | |
tree | fa05ab56dcc0eea278cc9b2a2e27b58bd7805ff3 /lldb/packages/Python/lldbsuite/test | |
parent | ba9eb48318420802d7e42592f45ad443044a4b90 (diff) | |
download | bcm5719-llvm-695f7821e2d90210ac93533393a0a028a4a08600.tar.gz bcm5719-llvm-695f7821e2d90210ac93533393a0a028a4a08600.zip |
[lldb_test_suite] Fix lldb test suite targeting remote Android
Summary:
Fixed `Android.rules` for running test suite on remote android
- the build configuration is not compatible with ndk structure, change it to link to static libc++
- generally clang should be able to use libc++ and will link against the right library, but some libc++ installations require the user manually link libc++abi.
- add flag `-lc++abi` to fix the test binary build failure
Added `skipIfTargetAndroid` `skipUnlessTargetAndroid` for better test support
- the `skipIfPlatform` method will ask `lldbplatformutil.getPlatform()` for platform info which is actually the os type, and //Android// is not os type but environment
- create this function to handle the android target condition
**To Run Test on Remote Android**
1 start lldb-server on your devices
2 run lldb-dotest with following configuration:
`./lldb-dotest --out-of-tree-debugserver --arch aarch64 --platform-name remote-android --platform-url connect://localhost:12345 --platform-working-dir /data/local/tmp/ --compiler your/ndk/clang`
Reviewers: xiaobai, labath
Reviewed By: labath
Subscribers: labath, javed.absar, kristof.beyls, srhines, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D64118
llvm-svn: 365561
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
3 files changed, 11 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/android/platform/TestDefaultCacheLineSize.py b/lldb/packages/Python/lldbsuite/test/android/platform/TestDefaultCacheLineSize.py index 5eff454c3bf..38685cd1498 100644 --- a/lldb/packages/Python/lldbsuite/test/android/platform/TestDefaultCacheLineSize.py +++ b/lldb/packages/Python/lldbsuite/test/android/platform/TestDefaultCacheLineSize.py @@ -16,7 +16,7 @@ class DefaultCacheLineSizeTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) - @skipUnlessPlatform(['android']) + @skipUnlessTargetAndroid def test_cache_line_size(self): self.build(dictionary=self.getBuildFlags()) exe = self.getBuildArtifact("a.out") diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 7f3eac363c0..0493a4316ed 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -596,6 +596,10 @@ def skipIfWindows(func): """Decorate the item to skip tests that should be skipped on Windows.""" return skipIfPlatform(["windows"])(func) +def skipIfTargetAndroid(func): + return unittest2.skipIf(lldbplatformutil.target_is_android(), + "skip on target Android")(func) + def skipUnlessWindows(func): """Decorate the item to skip tests that should be skipped on any non-Windows platform.""" @@ -606,6 +610,10 @@ def skipUnlessDarwin(func): """Decorate the item to skip tests that should be skipped on any non Darwin platform.""" return skipUnlessPlatform(lldbplatformutil.getDarwinOSTriples())(func) +def skipUnlessTargetAndroid(func): + return unittest2.skipUnless(lldbplatformutil.target_is_android(), + "requires target to be Android")(func) + def skipIfHostIncompatibleWithRemote(func): """Decorate the item to skip tests if binaries built on this host are incompatible.""" diff --git a/lldb/packages/Python/lldbsuite/test/make/Android.rules b/lldb/packages/Python/lldbsuite/test/make/Android.rules index fab956e2364..ad42b9b2ea0 100644 --- a/lldb/packages/Python/lldbsuite/test/make/Android.rules +++ b/lldb/packages/Python/lldbsuite/test/make/Android.rules @@ -90,5 +90,6 @@ else ARCH_LDFLAGS += \ -L$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH) \ - $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH)/libc++.a + $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(STL_ARCH)/libc++_static.a \ + -lc++abi endif |