Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: src/processor/microdump_processor_unittest.cc

Issue 1306983003: Use runtime ABI instead of hw architecture when processing microdumps (Closed) Base URL: http://google-breakpad.googlecode.com/svn/trunk
Patch Set: Fix microdump stackwalker test. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/processor/microdump.cc ('k') | src/processor/testdata/microdump.stackwalk-arm.out » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, Google Inc. 1 // Copyright (c) 2014, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 google_breakpad::ProcessResult result = 121 google_breakpad::ProcessResult result =
122 ProcessMicrodump("", "This is not a valid microdump", &state); 122 ProcessMicrodump("", "This is not a valid microdump", &state);
123 ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result); 123 ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result);
124 } 124 }
125 125
126 TEST_F(MicrodumpProcessorTest, TestProcess_MissingSymbols) { 126 TEST_F(MicrodumpProcessorTest, TestProcess_MissingSymbols) {
127 ProcessState state; 127 ProcessState state;
128 AnalyzeDump("microdump-arm64.dmp", &state, true /* omit_symbols */); 128 AnalyzeDump("microdump-arm64.dmp", &state, true /* omit_symbols */);
129 129
130 ASSERT_EQ(8U, state.modules()->module_count()); 130 ASSERT_EQ(8U, state.modules()->module_count());
131 ASSERT_EQ("aarch64", state.system_info()->cpu); 131 ASSERT_EQ("arm64", state.system_info()->cpu);
132 ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version); 132 ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version);
133 ASSERT_EQ(1U, state.threads()->size()); 133 ASSERT_EQ(1U, state.threads()->size());
134 ASSERT_EQ(12U, state.threads()->at(0)->frames()->size()); 134 ASSERT_EQ(12U, state.threads()->at(0)->frames()->size());
135 135
136 ASSERT_EQ("", 136 ASSERT_EQ("",
137 state.threads()->at(0)->frames()->at(0)->function_name); 137 state.threads()->at(0)->frames()->at(0)->function_name);
138 ASSERT_EQ("", 138 ASSERT_EQ("",
139 state.threads()->at(0)->frames()->at(3)->function_name); 139 state.threads()->at(0)->frames()->at(3)->function_name);
140 } 140 }
141 141
142 TEST_F(MicrodumpProcessorTest, TestProcess_UnsupportedArch) { 142 TEST_F(MicrodumpProcessorTest, TestProcess_UnsupportedArch) {
143 string microdump_contents = 143 string microdump_contents =
144 "W/google-breakpad(26491): -----BEGIN BREAKPAD MICRODUMP-----\n" 144 "W/google-breakpad(26491): -----BEGIN BREAKPAD MICRODUMP-----\n"
145 "W/google-breakpad(26491): O A \"unsupported-arch\"\n" 145 "W/google-breakpad(26491): O A \"unsupported-arch\"\n"
146 "W/google-breakpad(26491): S 0 A48BD840 A48BD000 00002000\n"; 146 "W/google-breakpad(26491): S 0 A48BD840 A48BD000 00002000\n";
147 147
148 ProcessState state; 148 ProcessState state;
149 149
150 google_breakpad::ProcessResult result = 150 google_breakpad::ProcessResult result =
151 ProcessMicrodump("", microdump_contents, &state); 151 ProcessMicrodump("", microdump_contents, &state);
152 152
153 ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result); 153 ASSERT_EQ(google_breakpad::PROCESS_ERROR_NO_THREAD_LIST, result);
154 } 154 }
155 155
156 TEST_F(MicrodumpProcessorTest, TestProcessArm) { 156 TEST_F(MicrodumpProcessorTest, TestProcessArm) {
157 ProcessState state; 157 ProcessState state;
158 AnalyzeDump("microdump-arm.dmp", &state, false /* omit_symbols */); 158 AnalyzeDump("microdump-arm.dmp", &state, false /* omit_symbols */);
159 159
160 ASSERT_EQ(6U, state.modules()->module_count()); 160 ASSERT_EQ(6U, state.modules()->module_count());
161 ASSERT_EQ("armv7l", state.system_info()->cpu); 161 ASSERT_EQ("arm", state.system_info()->cpu);
162 ASSERT_EQ("OS VERSION INFO", state.system_info()->os_version); 162 ASSERT_EQ("OS VERSION INFO", state.system_info()->os_version);
163 ASSERT_EQ(8U, state.threads()->at(0)->frames()->size()); 163 ASSERT_EQ(8U, state.threads()->at(0)->frames()->size());
164 ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody", 164 ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody",
165 state.threads()->at(0)->frames()->at(0)->function_name); 165 state.threads()->at(0)->frames()->at(0)->function_name);
166 ASSERT_EQ("testing::Test::Run", 166 ASSERT_EQ("testing::Test::Run",
167 state.threads()->at(0)->frames()->at(1)->function_name); 167 state.threads()->at(0)->frames()->at(1)->function_name);
168 ASSERT_EQ("main", 168 ASSERT_EQ("main",
169 state.threads()->at(0)->frames()->at(6)->function_name); 169 state.threads()->at(0)->frames()->at(6)->function_name);
170 ASSERT_EQ("breakpad_unittests", 170 ASSERT_EQ("breakpad_unittests",
171 state.threads()->at(0)->frames()->at(6)->module->code_file()); 171 state.threads()->at(0)->frames()->at(6)->module->code_file());
172 } 172 }
173 173
174 TEST_F(MicrodumpProcessorTest, TestProcessArm64) { 174 TEST_F(MicrodumpProcessorTest, TestProcessArm64) {
175 ProcessState state; 175 ProcessState state;
176 AnalyzeDump("microdump-arm64.dmp", &state, false /* omit_symbols */); 176 AnalyzeDump("microdump-arm64.dmp", &state, false /* omit_symbols */);
177 177
178 ASSERT_EQ(8U, state.modules()->module_count()); 178 ASSERT_EQ(8U, state.modules()->module_count());
179 ASSERT_EQ("aarch64", state.system_info()->cpu); 179 ASSERT_EQ("arm64", state.system_info()->cpu);
180 ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version); 180 ASSERT_EQ("OS 64 VERSION INFO", state.system_info()->os_version);
181 ASSERT_EQ(9U, state.threads()->at(0)->frames()->size()); 181 ASSERT_EQ(9U, state.threads()->at(0)->frames()->size());
182 ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody", 182 ASSERT_EQ("MicrodumpWriterTest_Setup_Test::TestBody",
183 state.threads()->at(0)->frames()->at(0)->function_name); 183 state.threads()->at(0)->frames()->at(0)->function_name);
184 ASSERT_EQ("testing::Test::Run", 184 ASSERT_EQ("testing::Test::Run",
185 state.threads()->at(0)->frames()->at(2)->function_name); 185 state.threads()->at(0)->frames()->at(2)->function_name);
186 ASSERT_EQ("main", 186 ASSERT_EQ("main",
187 state.threads()->at(0)->frames()->at(7)->function_name); 187 state.threads()->at(0)->frames()->at(7)->function_name);
188 ASSERT_EQ("breakpad_unittests", 188 ASSERT_EQ("breakpad_unittests",
189 state.threads()->at(0)->frames()->at(7)->module->code_file()); 189 state.threads()->at(0)->frames()->at(7)->module->code_file());
190 } 190 }
191 191
192 } // namespace 192 } // namespace
193 193
194 int main(int argc, char* argv[]) { 194 int main(int argc, char* argv[]) {
195 ::testing::InitGoogleTest(&argc, argv); 195 ::testing::InitGoogleTest(&argc, argv);
196 return RUN_ALL_TESTS(); 196 return RUN_ALL_TESTS();
197 } 197 }
OLDNEW
« no previous file with comments | « src/processor/microdump.cc ('k') | src/processor/testdata/microdump.stackwalk-arm.out » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698