aboutsummaryrefslogtreecommitdiff
path: root/src/processor/minidump_processor_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/minidump_processor_unittest.cc')
-rw-r--r--src/processor/minidump_processor_unittest.cc50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/processor/minidump_processor_unittest.cc b/src/processor/minidump_processor_unittest.cc
index d5e7bdcb..eefc64a2 100644
--- a/src/processor/minidump_processor_unittest.cc
+++ b/src/processor/minidump_processor_unittest.cc
@@ -31,13 +31,15 @@
// corresponding symbol file, and checks the stack frames for correctness.
#include <string>
+#include "google/call_stack.h"
#include "google/minidump_processor.h"
+#include "google/stack_frame.h"
#include "google/symbol_supplier.h"
#include "processor/minidump.h"
using std::string;
+using google_airbag::CallStack;
using google_airbag::MinidumpProcessor;
-using google_airbag::StackFrames;
#define ASSERT_TRUE(cond) \
if (!(cond)) { \
@@ -72,40 +74,40 @@ static bool RunTests() {
TestSymbolSupplier supplier;
MinidumpProcessor processor(&supplier);
- StackFrames stack_frames;
+ CallStack stack;
string minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
"/src/processor/testdata/minidump2.dmp";
- ASSERT_TRUE(processor.Process(minidump_file, &stack_frames));
- ASSERT_EQ(stack_frames.size(), 4);
+ ASSERT_TRUE(processor.Process(minidump_file, &stack));
+ ASSERT_EQ(stack.frames()->size(), 4);
- ASSERT_EQ(stack_frames[0].module_base, 0x400000);
- ASSERT_EQ(stack_frames[0].module_name, "c:\\test_app.exe");
- ASSERT_EQ(stack_frames[0].function_name, "CrashFunction");
- ASSERT_EQ(stack_frames[0].source_file_name, "c:\\test_app.cc");
- ASSERT_EQ(stack_frames[0].source_line, 36);
+ ASSERT_EQ(stack.frames()->at(0)->module_base, 0x400000);
+ ASSERT_EQ(stack.frames()->at(0)->module_name, "c:\\test_app.exe");
+ ASSERT_EQ(stack.frames()->at(0)->function_name, "CrashFunction()");
+ ASSERT_EQ(stack.frames()->at(0)->source_file_name, "c:\\test_app.cc");
+ ASSERT_EQ(stack.frames()->at(0)->source_line, 65);
- ASSERT_EQ(stack_frames[1].module_base, 0x400000);
- ASSERT_EQ(stack_frames[1].module_name, "c:\\test_app.exe");
- ASSERT_EQ(stack_frames[1].function_name, "main");
- ASSERT_EQ(stack_frames[1].source_file_name, "c:\\test_app.cc");
- ASSERT_EQ(stack_frames[1].source_line, 42);
+ ASSERT_EQ(stack.frames()->at(1)->module_base, 0x400000);
+ ASSERT_EQ(stack.frames()->at(1)->module_name, "c:\\test_app.exe");
+ ASSERT_EQ(stack.frames()->at(1)->function_name, "main");
+ ASSERT_EQ(stack.frames()->at(1)->source_file_name, "c:\\test_app.cc");
+ ASSERT_EQ(stack.frames()->at(1)->source_line, 70);
// This comes from the CRT
- ASSERT_EQ(stack_frames[2].module_base, 0x400000);
- ASSERT_EQ(stack_frames[2].module_name, "c:\\test_app.exe");
- ASSERT_EQ(stack_frames[2].function_name, "__tmainCRTStartup");
- ASSERT_EQ(stack_frames[2].source_file_name,
+ ASSERT_EQ(stack.frames()->at(2)->module_base, 0x400000);
+ ASSERT_EQ(stack.frames()->at(2)->module_name, "c:\\test_app.exe");
+ ASSERT_EQ(stack.frames()->at(2)->function_name, "__tmainCRTStartup");
+ ASSERT_EQ(stack.frames()->at(2)->source_file_name,
"f:\\rtm\\vctools\\crt_bld\\self_x86\\crt\\src\\crt0.c");
- ASSERT_EQ(stack_frames[2].source_line, 318);
+ ASSERT_EQ(stack.frames()->at(2)->source_line, 318);
// No debug info available for kernel32.dll
- ASSERT_EQ(stack_frames[3].module_base, 0x7c800000);
- ASSERT_EQ(stack_frames[3].module_name,
+ ASSERT_EQ(stack.frames()->at(3)->module_base, 0x7c800000);
+ ASSERT_EQ(stack.frames()->at(3)->module_name,
"C:\\WINDOWS\\system32\\kernel32.dll");
- ASSERT_TRUE(stack_frames[3].function_name.empty());
- ASSERT_TRUE(stack_frames[3].source_file_name.empty());
- ASSERT_EQ(stack_frames[3].source_line, 0);
+ ASSERT_TRUE(stack.frames()->at(3)->function_name.empty());
+ ASSERT_TRUE(stack.frames()->at(3)->source_file_name.empty());
+ ASSERT_EQ(stack.frames()->at(3)->source_line, 0);
return true;
}