aboutsummaryrefslogtreecommitdiff
path: root/src/common/android/breakpad_getcontext_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/android/breakpad_getcontext_unittest.cc')
-rw-r--r--src/common/android/breakpad_getcontext_unittest.cc15
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));