Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(5)

Unified Diff: src/processor/minidump_unittest.cc

Issue 614002: [MIPS] Add support for Breakpad for MIPS (Closed) Base URL: http://google-breakpad.googlecode.com/svn/trunk/src/
Patch Set: Added unittest for stackwalker_mips class and few more changes as per code review comments. Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/processor/minidump_stackwalk.cc ('k') | src/processor/stackwalker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/processor/minidump_unittest.cc
===================================================================
--- src/processor/minidump_unittest.cc (revision 1208)
+++ src/processor/minidump_unittest.cc (working copy)
@@ -1150,4 +1150,117 @@
EXPECT_EQ(0x2e951ef7U, raw_context.cpsr);
}
+TEST(Dump, OneExceptionMIPS) {
+ Dump dump(0, kLittleEndian);
+
+ MDRawContextMIPS raw_context;
+ raw_context.context_flags = MD_CONTEXT_MIPS_INTEGER;
+ raw_context.iregs[0] = 0x3ecba80d;
+ raw_context.iregs[1] = 0x382583b9;
+ raw_context.iregs[2] = 0x7fccc03f;
+ raw_context.iregs[3] = 0xf62f8ec2;
+ raw_context.iregs[4] = 0x46a6a6a8;
+ raw_context.iregs[5] = 0x6a5025e2;
+ raw_context.iregs[6] = 0xd9fabb4a;
+ raw_context.iregs[7] = 0x6913f540;
+ raw_context.iregs[8] = 0xbffe6eda;
+ raw_context.iregs[9] = 0xb2ce1e2d;
+ raw_context.iregs[10] = 0x659caaa4;
+ raw_context.iregs[11] = 0xf0e0d0c0;
+ raw_context.iregs[12] = 0xa9b8c7d6;
+ raw_context.iregs[13] = 0x12345678;
+ raw_context.iregs[14] = 0xabcd1234;
+ raw_context.iregs[15] = 0x10203040;
+ raw_context.iregs[16] = 0xa80d3ecb;
+ raw_context.iregs[17] = 0x83b93825;
+ raw_context.iregs[18] = 0xc03f7fcc;
+ raw_context.iregs[19] = 0x8ec2f62f;
+ raw_context.iregs[20] = 0xa6a846a6;
+ raw_context.iregs[21] = 0x25e26a50;
+ raw_context.iregs[22] = 0xbb4ad9fa;
+ raw_context.iregs[23] = 0xf5406913;
+ raw_context.iregs[24] = 0x6edabffe;
+ raw_context.iregs[25] = 0x1e2db2ce;
+ raw_context.iregs[26] = 0xaaa4659c;
+ raw_context.iregs[27] = 0xd0c0f0e0;
+ raw_context.iregs[28] = 0xc7d6a9b8;
+ raw_context.iregs[29] = 0x56781234;
+ raw_context.iregs[30] = 0x1234abcd;
+ raw_context.iregs[31] = 0x30401020;
+
+ Context context(dump, raw_context);
+
+ Exception exception(dump, context,
+ 0x1234abcd, // Thread id.
+ 0xdcba4321, // Exception code.
+ 0xf0e0d0c0, // Exception flags.
+ 0x0919a9b9); // Exception address.
+
+ dump.Add(&context);
+ dump.Add(&exception);
+ dump.Finish();
+
+ string contents;
+ ASSERT_TRUE(dump.GetContents(&contents));
+
+ istringstream minidump_stream(contents);
+ Minidump minidump(minidump_stream);
+ ASSERT_TRUE(minidump.Read());
+ ASSERT_EQ(1U, minidump.GetDirectoryEntryCount());
+
+ MinidumpException *md_exception = minidump.GetException();
+ ASSERT_TRUE(md_exception != NULL);
+
+ uint32_t thread_id;
+ ASSERT_TRUE(md_exception->GetThreadID(&thread_id));
+ ASSERT_EQ(0x1234abcdU, thread_id);
+
+ const MDRawExceptionStream* raw_exception = md_exception->exception();
+ ASSERT_TRUE(raw_exception != NULL);
+ EXPECT_EQ(0xdcba4321, raw_exception->exception_record.exception_code);
+ EXPECT_EQ(0xf0e0d0c0, raw_exception->exception_record.exception_flags);
+ EXPECT_EQ(0x0919a9b9U,
+ raw_exception->exception_record.exception_address);
+
+ MinidumpContext* md_context = md_exception->GetContext();
+ ASSERT_TRUE(md_context != NULL);
+ ASSERT_EQ((uint32_t) MD_CONTEXT_MIPS, md_context->GetContextCPU());
+ const MDRawContextMIPS* md_raw_context = md_context->GetContextMIPS();
+ ASSERT_TRUE(md_raw_context != NULL);
+ ASSERT_EQ((uint32_t) MD_CONTEXT_MIPS_INTEGER,
+ (md_raw_context->context_flags & MD_CONTEXT_MIPS_INTEGER));
+ EXPECT_EQ(0x3ecba80dU, raw_context.iregs[0]);
+ EXPECT_EQ(0x382583b9U, raw_context.iregs[1]);
+ EXPECT_EQ(0x7fccc03fU, raw_context.iregs[2]);
+ EXPECT_EQ(0xf62f8ec2U, raw_context.iregs[3]);
+ EXPECT_EQ(0x46a6a6a8U, raw_context.iregs[4]);
+ EXPECT_EQ(0x6a5025e2U, raw_context.iregs[5]);
+ EXPECT_EQ(0xd9fabb4aU, raw_context.iregs[6]);
+ EXPECT_EQ(0x6913f540U, raw_context.iregs[7]);
+ EXPECT_EQ(0xbffe6edaU, raw_context.iregs[8]);
+ EXPECT_EQ(0xb2ce1e2dU, raw_context.iregs[9]);
+ EXPECT_EQ(0x659caaa4U, raw_context.iregs[10]);
+ EXPECT_EQ(0xf0e0d0c0U, raw_context.iregs[11]);
+ EXPECT_EQ(0xa9b8c7d6U, raw_context.iregs[12]);
+ EXPECT_EQ(0x12345678U, raw_context.iregs[13]);
+ EXPECT_EQ(0xabcd1234U, raw_context.iregs[14]);
+ EXPECT_EQ(0x10203040U, raw_context.iregs[15]);
+ EXPECT_EQ(0xa80d3ecbU, raw_context.iregs[16]);
+ EXPECT_EQ(0x83b93825U, raw_context.iregs[17]);
+ EXPECT_EQ(0xc03f7fccU, raw_context.iregs[18]);
+ EXPECT_EQ(0x8ec2f62fU, raw_context.iregs[19]);
+ EXPECT_EQ(0xa6a846a6U, raw_context.iregs[20]);
+ EXPECT_EQ(0x25e26a50U, raw_context.iregs[21]);
+ EXPECT_EQ(0xbb4ad9faU, raw_context.iregs[22]);
+ EXPECT_EQ(0xf5406913U, raw_context.iregs[23]);
+ EXPECT_EQ(0x6edabffeU, raw_context.iregs[24]);
+ EXPECT_EQ(0x1e2db2ceU, raw_context.iregs[25]);
+ EXPECT_EQ(0xaaa4659cU, raw_context.iregs[26]);
+ EXPECT_EQ(0xd0c0f0e0U, raw_context.iregs[27]);
+ EXPECT_EQ(0xc7d6a9b8U, raw_context.iregs[28]);
+ EXPECT_EQ(0x56781234U, raw_context.iregs[29]);
+ EXPECT_EQ(0x1234abcdU, raw_context.iregs[30]);
+ EXPECT_EQ(0x30401020U, raw_context.iregs[31]);
+}
+
} // namespace
« no previous file with comments | « src/processor/minidump_stackwalk.cc ('k') | src/processor/stackwalker.cc » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted