diff options
author | rmcilroy@chromium.org <rmcilroy@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2014-04-09 09:08:19 +0000 |
---|---|---|
committer | rmcilroy@chromium.org <rmcilroy@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2014-04-09 09:08:19 +0000 |
commit | 543cf832e620a38baec38dac018b11daaf147593 (patch) | |
tree | eca4aad7786daded56d9a91544981fc5d239c516 /src/common/android/breakpad_getcontext_unittest.cc | |
parent | Add Arm64 support to breakpad unittests. (diff) | |
download | breakpad-543cf832e620a38baec38dac018b11daaf147593.tar.xz |
Fix aarch64 ucontext layout on Android
BUG=354405,335641
R=mark@chromium.org
Review URL: https://breakpad.appspot.com/1444002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1306 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/common/android/breakpad_getcontext_unittest.cc')
-rw-r--r-- | src/common/android/breakpad_getcontext_unittest.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/common/android/breakpad_getcontext_unittest.cc b/src/common/android/breakpad_getcontext_unittest.cc index c1b69c25..14d7927a 100644 --- a/src/common/android/breakpad_getcontext_unittest.cc +++ b/src/common/android/breakpad_getcontext_unittest.cc @@ -33,11 +33,24 @@ #include "common/android/ucontext_constants.h" TEST(AndroidUContext, GRegsOffset) { -#ifdef __arm__ +#if defined(__arm__) // There is no gregs[] array on ARM, so compare to the offset of // first register fields, since they're stored in order. ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET), offsetof(ucontext_t,uc_mcontext.arm_r0)); +#elif defined(__aarch64__) + // There is no gregs[] array on ARM, so compare to the offset of + // first register fields, since they're stored in order. + ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET), + offsetof(ucontext_t,uc_mcontext.regs[0])); + ASSERT_EQ(static_cast<size_t>(MCONTEXT_SP_OFFSET), + offsetof(ucontext_t,uc_mcontext.sp)); + ASSERT_EQ(static_cast<size_t>(MCONTEXT_PC_OFFSET), + offsetof(ucontext_t,uc_mcontext.pc)); + ASSERT_EQ(static_cast<size_t>(MCONTEXT_PSTATE_OFFSET), + offsetof(ucontext_t,uc_mcontext.pstate)); + ASSERT_EQ(static_cast<size_t>(MCONTEXT_EXTENSION_OFFSET), + offsetof(ucontext_t,uc_mcontext.__reserved)); #elif defined(__i386__) ASSERT_EQ(static_cast<size_t>(MCONTEXT_GREGS_OFFSET), offsetof(ucontext_t,uc_mcontext.gregs)); |