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

Side by Side Diff: minidump/minidump_exception_writer_test.cc

Issue 664283002: Refactor minidump test utilities for MinidumpWritable, … (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « minidump/minidump_crashpad_info_writer_test.cc ('k') | minidump/minidump_file_writer_test.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,
(...skipping 26 matching lines...) Expand all
37 void GetExceptionStream(const std::string& file_contents, 37 void GetExceptionStream(const std::string& file_contents,
38 const MINIDUMP_EXCEPTION_STREAM** exception_stream) { 38 const MINIDUMP_EXCEPTION_STREAM** exception_stream) {
39 const size_t kDirectoryOffset = sizeof(MINIDUMP_HEADER); 39 const size_t kDirectoryOffset = sizeof(MINIDUMP_HEADER);
40 const size_t kExceptionStreamOffset = 40 const size_t kExceptionStreamOffset =
41 kDirectoryOffset + sizeof(MINIDUMP_DIRECTORY); 41 kDirectoryOffset + sizeof(MINIDUMP_DIRECTORY);
42 const size_t kContextOffset = 42 const size_t kContextOffset =
43 kExceptionStreamOffset + sizeof(MINIDUMP_EXCEPTION_STREAM); 43 kExceptionStreamOffset + sizeof(MINIDUMP_EXCEPTION_STREAM);
44 const size_t kFileSize = kContextOffset + sizeof(MinidumpContextX86); 44 const size_t kFileSize = kContextOffset + sizeof(MinidumpContextX86);
45 ASSERT_EQ(file_contents.size(), kFileSize); 45 ASSERT_EQ(file_contents.size(), kFileSize);
46 46
47 const MINIDUMP_DIRECTORY* directory;
47 const MINIDUMP_HEADER* header = 48 const MINIDUMP_HEADER* header =
48 reinterpret_cast<const MINIDUMP_HEADER*>(&file_contents[0]); 49 MinidumpHeaderAtStart(file_contents, &directory);
49
50 ASSERT_NO_FATAL_FAILURE(VerifyMinidumpHeader(header, 1, 0)); 50 ASSERT_NO_FATAL_FAILURE(VerifyMinidumpHeader(header, 1, 0));
51 51
52 const MINIDUMP_DIRECTORY* directory =
53 reinterpret_cast<const MINIDUMP_DIRECTORY*>(
54 &file_contents[kDirectoryOffset]);
55
56 ASSERT_EQ(kMinidumpStreamTypeException, directory[0].StreamType); 52 ASSERT_EQ(kMinidumpStreamTypeException, directory[0].StreamType);
57 ASSERT_GE(directory[0].Location.DataSize, sizeof(MINIDUMP_EXCEPTION_STREAM)); 53 ASSERT_GE(directory[0].Location.DataSize, sizeof(MINIDUMP_EXCEPTION_STREAM));
58 ASSERT_EQ(kExceptionStreamOffset, directory[0].Location.Rva); 54 ASSERT_EQ(kExceptionStreamOffset, directory[0].Location.Rva);
59 55
60 *exception_stream = reinterpret_cast<const MINIDUMP_EXCEPTION_STREAM*>( 56 *exception_stream = reinterpret_cast<const MINIDUMP_EXCEPTION_STREAM*>(
61 &file_contents[kExceptionStreamOffset]); 57 &file_contents[kExceptionStreamOffset]);
62 } 58 }
63 59
64 // The MINIDUMP_EXCEPTION_STREAMs |expected| and |observed| are compared against 60 // The MINIDUMP_EXCEPTION_STREAMs |expected| and |observed| are compared against
65 // each other using gtest assertions. The context will be recovered from 61 // each other using gtest assertions. The context will be recovered from
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 MinidumpExceptionWriter exception_writer; 207 MinidumpExceptionWriter exception_writer;
212 std::vector<uint64_t> exception_information(EXCEPTION_MAXIMUM_PARAMETERS + 1, 208 std::vector<uint64_t> exception_information(EXCEPTION_MAXIMUM_PARAMETERS + 1,
213 0x5a5a5a5a5a5a5a5a); 209 0x5a5a5a5a5a5a5a5a);
214 ASSERT_DEATH(exception_writer.SetExceptionInformation(exception_information), 210 ASSERT_DEATH(exception_writer.SetExceptionInformation(exception_information),
215 "kMaxParameters"); 211 "kMaxParameters");
216 } 212 }
217 213
218 } // namespace 214 } // namespace
219 } // namespace test 215 } // namespace test
220 } // namespace crashpad 216 } // namespace crashpad
OLDNEW
« no previous file with comments | « minidump/minidump_crashpad_info_writer_test.cc ('k') | minidump/minidump_file_writer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698