aboutsummaryrefslogtreecommitdiff
path: root/src/processor/cfi_frame_info_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/cfi_frame_info_unittest.cc')
-rw-r--r--src/processor/cfi_frame_info_unittest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/processor/cfi_frame_info_unittest.cc b/src/processor/cfi_frame_info_unittest.cc
index 5f776fe8..979d4a3b 100644
--- a/src/processor/cfi_frame_info_unittest.cc
+++ b/src/processor/cfi_frame_info_unittest.cc
@@ -89,6 +89,7 @@ TEST_F(Simple, NoCFA) {
cfi.SetRARule("0");
ASSERT_FALSE(cfi.FindCallerRegs<u_int64_t>(registers, memory,
&caller_registers));
+ ASSERT_EQ(".ra: 0", cfi.Serialize());
}
// FindCallerRegs should fail if no .ra rule is provided.
@@ -98,6 +99,7 @@ TEST_F(Simple, NoRA) {
cfi.SetCFARule("0");
ASSERT_FALSE(cfi.FindCallerRegs<u_int64_t>(registers, memory,
&caller_registers));
+ ASSERT_EQ(".cfa: 0", cfi.Serialize());
}
TEST_F(Simple, SetCFAAndRARule) {
@@ -110,6 +112,9 @@ TEST_F(Simple, SetCFAAndRARule) {
ASSERT_EQ(2U, caller_registers.size());
ASSERT_EQ(330903416631436410ULL, caller_registers[".cfa"]);
ASSERT_EQ(5870666104170902211ULL, caller_registers[".ra"]);
+
+ ASSERT_EQ(".cfa: 330903416631436410 .ra: 5870666104170902211",
+ cfi.Serialize());
}
TEST_F(Simple, SetManyRules) {
@@ -130,6 +135,13 @@ TEST_F(Simple, SetManyRules) {
ASSERT_EQ(31740999U, caller_registers["vodkathumbscrewingly"]);
ASSERT_EQ(-22136316ULL, caller_registers["pubvexingfjordschmaltzy"]);
ASSERT_EQ(12U, caller_registers["uncopyrightables"]);
+ ASSERT_EQ(".cfa: $temp1 68737028 = $temp2 61072337 = $temp1 $temp2 - "
+ ".ra: .cfa 99804755 + "
+ "pubvexingfjordschmaltzy: .cfa 29801007 - "
+ "register1: .cfa 54370437 * "
+ "uncopyrightables: 92642917 .cfa / "
+ "vodkathumbscrewingly: 24076308 .cfa +",
+ cfi.Serialize());
}
TEST_F(Simple, RulesOverride) {
@@ -143,6 +155,8 @@ TEST_F(Simple, RulesOverride) {
ASSERT_EQ(2U, caller_registers.size());
ASSERT_EQ(2828089117179001ULL, caller_registers[".cfa"]);
ASSERT_EQ(5870666104170902211ULL, caller_registers[".ra"]);
+ ASSERT_EQ(".cfa: 2828089117179001 .ra: 5870666104170902211",
+ cfi.Serialize());
}
class Scope: public CFIFixture, public Test { };