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

Side by Side Diff: minidump/minidump_crashpad_info_writer_test.cc

Issue 1513573005: Provide std::move() in compat instead of using crashpad::move() (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 5 years 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
« no previous file with comments | « minidump/minidump_crashpad_info_writer.cc ('k') | minidump/minidump_exception_writer.cc » ('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 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and 12 // See the License for the specific language governing permissions and
13 // limitations under the License. 13 // limitations under the License.
14 14
15 #include "minidump/minidump_crashpad_info_writer.h" 15 #include "minidump/minidump_crashpad_info_writer.h"
16 16
17 #include <windows.h> 17 #include <windows.h>
18 #include <dbghelp.h> 18 #include <dbghelp.h>
19 19
20 #include <map> 20 #include <map>
21 #include <string> 21 #include <string>
22 #include <utility>
22 23
23 #include "gtest/gtest.h" 24 #include "gtest/gtest.h"
24 #include "minidump/minidump_extensions.h" 25 #include "minidump/minidump_extensions.h"
25 #include "minidump/minidump_file_writer.h" 26 #include "minidump/minidump_file_writer.h"
26 #include "minidump/minidump_module_crashpad_info_writer.h" 27 #include "minidump/minidump_module_crashpad_info_writer.h"
27 #include "minidump/minidump_simple_string_dictionary_writer.h" 28 #include "minidump/minidump_simple_string_dictionary_writer.h"
28 #include "minidump/test/minidump_file_writer_test_util.h" 29 #include "minidump/test/minidump_file_writer_test_util.h"
29 #include "minidump/test/minidump_string_writer_test_util.h" 30 #include "minidump/test/minidump_string_writer_test_util.h"
30 #include "minidump/test/minidump_writable_test_util.h" 31 #include "minidump/test/minidump_writable_test_util.h"
31 #include "snapshot/test/test_module_snapshot.h" 32 #include "snapshot/test/test_module_snapshot.h"
32 #include "snapshot/test/test_process_snapshot.h" 33 #include "snapshot/test/test_process_snapshot.h"
33 #include "util/file/string_file.h" 34 #include "util/file/string_file.h"
34 #include "util/stdlib/move.h"
35 35
36 namespace crashpad { 36 namespace crashpad {
37 namespace test { 37 namespace test {
38 namespace { 38 namespace {
39 39
40 void GetCrashpadInfoStream( 40 void GetCrashpadInfoStream(
41 const std::string& file_contents, 41 const std::string& file_contents,
42 const MinidumpCrashpadInfo** crashpad_info, 42 const MinidumpCrashpadInfo** crashpad_info,
43 const MinidumpSimpleStringDictionary** simple_annotations, 43 const MinidumpSimpleStringDictionary** simple_annotations,
44 const MinidumpModuleCrashpadInfoList** module_list) { 44 const MinidumpModuleCrashpadInfoList** module_list) {
(...skipping 16 matching lines...) Expand all
61 *module_list = 61 *module_list =
62 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfoList>( 62 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfoList>(
63 file_contents, (*crashpad_info)->module_list); 63 file_contents, (*crashpad_info)->module_list);
64 } 64 }
65 65
66 TEST(MinidumpCrashpadInfoWriter, Empty) { 66 TEST(MinidumpCrashpadInfoWriter, Empty) {
67 MinidumpFileWriter minidump_file_writer; 67 MinidumpFileWriter minidump_file_writer;
68 auto crashpad_info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter()); 68 auto crashpad_info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter());
69 EXPECT_FALSE(crashpad_info_writer->IsUseful()); 69 EXPECT_FALSE(crashpad_info_writer->IsUseful());
70 70
71 minidump_file_writer.AddStream(crashpad::move(crashpad_info_writer)); 71 minidump_file_writer.AddStream(std::move(crashpad_info_writer));
72 72
73 StringFile string_file; 73 StringFile string_file;
74 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 74 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
75 75
76 const MinidumpCrashpadInfo* crashpad_info = nullptr; 76 const MinidumpCrashpadInfo* crashpad_info = nullptr;
77 const MinidumpSimpleStringDictionary* simple_annotations = nullptr; 77 const MinidumpSimpleStringDictionary* simple_annotations = nullptr;
78 const MinidumpModuleCrashpadInfoList* module_list = nullptr; 78 const MinidumpModuleCrashpadInfoList* module_list = nullptr;
79 79
80 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream( 80 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream(
81 string_file.string(), &crashpad_info, &simple_annotations, &module_list)); 81 string_file.string(), &crashpad_info, &simple_annotations, &module_list));
(...skipping 14 matching lines...) Expand all
96 report_id.InitializeFromString("01234567-89ab-cdef-0123-456789abcdef")); 96 report_id.InitializeFromString("01234567-89ab-cdef-0123-456789abcdef"));
97 crashpad_info_writer->SetReportID(report_id); 97 crashpad_info_writer->SetReportID(report_id);
98 98
99 UUID client_id; 99 UUID client_id;
100 ASSERT_TRUE( 100 ASSERT_TRUE(
101 client_id.InitializeFromString("00112233-4455-6677-8899-aabbccddeeff")); 101 client_id.InitializeFromString("00112233-4455-6677-8899-aabbccddeeff"));
102 crashpad_info_writer->SetClientID(client_id); 102 crashpad_info_writer->SetClientID(client_id);
103 103
104 EXPECT_TRUE(crashpad_info_writer->IsUseful()); 104 EXPECT_TRUE(crashpad_info_writer->IsUseful());
105 105
106 minidump_file_writer.AddStream(crashpad::move(crashpad_info_writer)); 106 minidump_file_writer.AddStream(std::move(crashpad_info_writer));
107 107
108 StringFile string_file; 108 StringFile string_file;
109 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 109 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
110 110
111 const MinidumpCrashpadInfo* crashpad_info = nullptr; 111 const MinidumpCrashpadInfo* crashpad_info = nullptr;
112 const MinidumpSimpleStringDictionary* simple_annotations = nullptr; 112 const MinidumpSimpleStringDictionary* simple_annotations = nullptr;
113 const MinidumpModuleCrashpadInfoList* module_list = nullptr; 113 const MinidumpModuleCrashpadInfoList* module_list = nullptr;
114 114
115 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream( 115 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream(
116 string_file.string(), &crashpad_info, &simple_annotations, &module_list)); 116 string_file.string(), &crashpad_info, &simple_annotations, &module_list));
(...skipping 14 matching lines...) Expand all
131 "something"; 131 "something";
132 const char kValue[] = 132 const char kValue[] =
133 "the numerical amount denoted by an algebraic term; a magnitude, " 133 "the numerical amount denoted by an algebraic term; a magnitude, "
134 "quantity, or number"; 134 "quantity, or number";
135 auto simple_string_dictionary_writer = 135 auto simple_string_dictionary_writer =
136 make_scoped_ptr(new MinidumpSimpleStringDictionaryWriter()); 136 make_scoped_ptr(new MinidumpSimpleStringDictionaryWriter());
137 auto simple_string_dictionary_entry_writer = 137 auto simple_string_dictionary_entry_writer =
138 make_scoped_ptr(new MinidumpSimpleStringDictionaryEntryWriter()); 138 make_scoped_ptr(new MinidumpSimpleStringDictionaryEntryWriter());
139 simple_string_dictionary_entry_writer->SetKeyValue(kKey, kValue); 139 simple_string_dictionary_entry_writer->SetKeyValue(kKey, kValue);
140 simple_string_dictionary_writer->AddEntry( 140 simple_string_dictionary_writer->AddEntry(
141 crashpad::move(simple_string_dictionary_entry_writer)); 141 std::move(simple_string_dictionary_entry_writer));
142 crashpad_info_writer->SetSimpleAnnotations( 142 crashpad_info_writer->SetSimpleAnnotations(
143 crashpad::move(simple_string_dictionary_writer)); 143 std::move(simple_string_dictionary_writer));
144 144
145 EXPECT_TRUE(crashpad_info_writer->IsUseful()); 145 EXPECT_TRUE(crashpad_info_writer->IsUseful());
146 146
147 minidump_file_writer.AddStream(crashpad::move(crashpad_info_writer)); 147 minidump_file_writer.AddStream(std::move(crashpad_info_writer));
148 148
149 StringFile string_file; 149 StringFile string_file;
150 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 150 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
151 151
152 const MinidumpCrashpadInfo* crashpad_info = nullptr; 152 const MinidumpCrashpadInfo* crashpad_info = nullptr;
153 const MinidumpSimpleStringDictionary* simple_annotations = nullptr; 153 const MinidumpSimpleStringDictionary* simple_annotations = nullptr;
154 const MinidumpModuleCrashpadInfoList* module_list = nullptr; 154 const MinidumpModuleCrashpadInfoList* module_list = nullptr;
155 155
156 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream( 156 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream(
157 string_file.string(), &crashpad_info, &simple_annotations, &module_list)); 157 string_file.string(), &crashpad_info, &simple_annotations, &module_list));
(...skipping 13 matching lines...) Expand all
171 171
172 TEST(MinidumpCrashpadInfoWriter, CrashpadModuleList) { 172 TEST(MinidumpCrashpadInfoWriter, CrashpadModuleList) {
173 const uint32_t kMinidumpModuleListIndex = 3; 173 const uint32_t kMinidumpModuleListIndex = 3;
174 174
175 MinidumpFileWriter minidump_file_writer; 175 MinidumpFileWriter minidump_file_writer;
176 auto crashpad_info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter()); 176 auto crashpad_info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter());
177 177
178 auto module_list_writer = 178 auto module_list_writer =
179 make_scoped_ptr(new MinidumpModuleCrashpadInfoListWriter()); 179 make_scoped_ptr(new MinidumpModuleCrashpadInfoListWriter());
180 auto module_writer = make_scoped_ptr(new MinidumpModuleCrashpadInfoWriter()); 180 auto module_writer = make_scoped_ptr(new MinidumpModuleCrashpadInfoWriter());
181 module_list_writer->AddModule(crashpad::move(module_writer), kMinidumpModuleLi stIndex); 181 module_list_writer->AddModule(std::move(module_writer),
182 crashpad_info_writer->SetModuleList(crashpad::move(module_list_writer)); 182 kMinidumpModuleListIndex);
183 crashpad_info_writer->SetModuleList(std::move(module_list_writer));
183 184
184 EXPECT_TRUE(crashpad_info_writer->IsUseful()); 185 EXPECT_TRUE(crashpad_info_writer->IsUseful());
185 186
186 minidump_file_writer.AddStream(crashpad::move(crashpad_info_writer)); 187 minidump_file_writer.AddStream(std::move(crashpad_info_writer));
187 188
188 StringFile string_file; 189 StringFile string_file;
189 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 190 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
190 191
191 const MinidumpCrashpadInfo* crashpad_info = nullptr; 192 const MinidumpCrashpadInfo* crashpad_info = nullptr;
192 const MinidumpSimpleStringDictionary* simple_annotations = nullptr; 193 const MinidumpSimpleStringDictionary* simple_annotations = nullptr;
193 const MinidumpModuleCrashpadInfoList* module_list = nullptr; 194 const MinidumpModuleCrashpadInfoList* module_list = nullptr;
194 195
195 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream( 196 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream(
196 string_file.string(), &crashpad_info, &simple_annotations, &module_list)); 197 string_file.string(), &crashpad_info, &simple_annotations, &module_list));
(...skipping 29 matching lines...) Expand all
226 227
227 const char kKey[] = "version"; 228 const char kKey[] = "version";
228 const char kValue[] = "40.0.2214.111"; 229 const char kValue[] = "40.0.2214.111";
229 const char kEntry[] = "This is a simple annotation in a list."; 230 const char kEntry[] = "This is a simple annotation in a list.";
230 231
231 // Test with a useless module, one that doesn’t carry anything that would 232 // Test with a useless module, one that doesn’t carry anything that would
232 // require MinidumpCrashpadInfo or any child object. 233 // require MinidumpCrashpadInfo or any child object.
233 auto process_snapshot = make_scoped_ptr(new TestProcessSnapshot()); 234 auto process_snapshot = make_scoped_ptr(new TestProcessSnapshot());
234 235
235 auto module_snapshot = make_scoped_ptr(new TestModuleSnapshot()); 236 auto module_snapshot = make_scoped_ptr(new TestModuleSnapshot());
236 process_snapshot->AddModule(crashpad::move(module_snapshot)); 237 process_snapshot->AddModule(std::move(module_snapshot));
237 238
238 auto info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter()); 239 auto info_writer = make_scoped_ptr(new MinidumpCrashpadInfoWriter());
239 info_writer->InitializeFromSnapshot(process_snapshot.get()); 240 info_writer->InitializeFromSnapshot(process_snapshot.get());
240 EXPECT_FALSE(info_writer->IsUseful()); 241 EXPECT_FALSE(info_writer->IsUseful());
241 242
242 // Try again with a useful module. 243 // Try again with a useful module.
243 process_snapshot.reset(new TestProcessSnapshot()); 244 process_snapshot.reset(new TestProcessSnapshot());
244 245
245 process_snapshot->SetReportID(report_id); 246 process_snapshot->SetReportID(report_id);
246 process_snapshot->SetClientID(client_id); 247 process_snapshot->SetClientID(client_id);
247 248
248 std::map<std::string, std::string> annotations_simple_map; 249 std::map<std::string, std::string> annotations_simple_map;
249 annotations_simple_map[kKey] = kValue; 250 annotations_simple_map[kKey] = kValue;
250 process_snapshot->SetAnnotationsSimpleMap(annotations_simple_map); 251 process_snapshot->SetAnnotationsSimpleMap(annotations_simple_map);
251 252
252 module_snapshot.reset(new TestModuleSnapshot()); 253 module_snapshot.reset(new TestModuleSnapshot());
253 std::vector<std::string> annotations_list(1, std::string(kEntry)); 254 std::vector<std::string> annotations_list(1, std::string(kEntry));
254 module_snapshot->SetAnnotationsVector(annotations_list); 255 module_snapshot->SetAnnotationsVector(annotations_list);
255 process_snapshot->AddModule(crashpad::move(module_snapshot)); 256 process_snapshot->AddModule(std::move(module_snapshot));
256 257
257 info_writer.reset(new MinidumpCrashpadInfoWriter()); 258 info_writer.reset(new MinidumpCrashpadInfoWriter());
258 info_writer->InitializeFromSnapshot(process_snapshot.get()); 259 info_writer->InitializeFromSnapshot(process_snapshot.get());
259 EXPECT_TRUE(info_writer->IsUseful()); 260 EXPECT_TRUE(info_writer->IsUseful());
260 261
261 MinidumpFileWriter minidump_file_writer; 262 MinidumpFileWriter minidump_file_writer;
262 minidump_file_writer.AddStream(crashpad::move(info_writer)); 263 minidump_file_writer.AddStream(std::move(info_writer));
263 264
264 StringFile string_file; 265 StringFile string_file;
265 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 266 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
266 267
267 const MinidumpCrashpadInfo* info = nullptr; 268 const MinidumpCrashpadInfo* info = nullptr;
268 const MinidumpSimpleStringDictionary* simple_annotations; 269 const MinidumpSimpleStringDictionary* simple_annotations;
269 const MinidumpModuleCrashpadInfoList* module_list; 270 const MinidumpModuleCrashpadInfoList* module_list;
270 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream( 271 ASSERT_NO_FATAL_FAILURE(GetCrashpadInfoStream(
271 string_file.string(), &info, &simple_annotations, &module_list)); 272 string_file.string(), &info, &simple_annotations, &module_list));
272 273
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 308
308 const MinidumpSimpleStringDictionary* module_simple_annotations = 309 const MinidumpSimpleStringDictionary* module_simple_annotations =
309 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( 310 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>(
310 string_file.string(), module->simple_annotations); 311 string_file.string(), module->simple_annotations);
311 EXPECT_FALSE(module_simple_annotations); 312 EXPECT_FALSE(module_simple_annotations);
312 } 313 }
313 314
314 } // namespace 315 } // namespace
315 } // namespace test 316 } // namespace test
316 } // namespace crashpad 317 } // namespace crashpad
OLDNEW
« no previous file with comments | « minidump/minidump_crashpad_info_writer.cc ('k') | minidump/minidump_exception_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698