Add some more DWARF ARM register numbers to the DWARF CFI register maps

R=jimb at https://breakpad.appspot.com/418002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@988 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
ted.mielczarek 2012-07-18 18:13:29 +00:00
parent 4116671cbf
commit 72542b052d
2 changed files with 28 additions and 5 deletions

View file

@ -69,6 +69,7 @@ struct DwarfCFIToModuleFixture {
register_names.push_back("reg7");
register_names.push_back("sp");
register_names.push_back("pc");
register_names.push_back("");
EXPECT_CALL(reporter, UnnamedRegister(_, _)).Times(0);
EXPECT_CALL(reporter, UndefinedNotSupported(_, _)).Times(0);
@ -140,6 +141,17 @@ TEST_F(Rule, UndefinedRule) {
EXPECT_EQ(0U, entries[0]->rule_changes.size());
}
TEST_F(Rule, RegisterWithEmptyName) {
EXPECT_CALL(reporter, UnnamedRegister(_, 10));
EXPECT_CALL(reporter, UndefinedNotSupported(_, "unnamed_register10"));
StartEntry();
ASSERT_TRUE(handler.UndefinedRule(entry_address, 10));
ASSERT_TRUE(handler.End());
CheckEntry();
EXPECT_EQ(0U, entries[0]->initial_rules.size());
EXPECT_EQ(0U, entries[0]->rule_changes.size());
}
TEST_F(Rule, SameValueRule) {
StartEntry();
ASSERT_TRUE(handler.SameValueRule(entry_address, 6));
@ -178,17 +190,17 @@ TEST_F(Rule, OffsetRuleNegative) {
TEST_F(Rule, ValOffsetRule) {
// Use an unnamed register number, to exercise that branch of RegisterName.
EXPECT_CALL(reporter, UnnamedRegister(_, 10));
EXPECT_CALL(reporter, UnnamedRegister(_, 11));
StartEntry();
ASSERT_TRUE(handler.ValOffsetRule(entry_address + 0x5ab7,
DwarfCFIToModule::kCFARegister,
10, 61812979));
11, 61812979));
ASSERT_TRUE(handler.End());
CheckEntry();
EXPECT_EQ(0U, entries[0]->initial_rules.size());
Module::RuleChangeMap expected_changes;
expected_changes[entry_address + 0x5ab7][".cfa"] =
"unnamed_register10 61812979 +";
"unnamed_register11 61812979 +";
EXPECT_THAT(entries[0]->rule_changes, ContainerEq(expected_changes));
}