OLD | NEW |
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 #ifndef CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ | 15 #ifndef CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ |
16 #define CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ | 16 #define CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ |
17 | 17 |
18 #include <dbghelp.h> | 18 #include <dbghelp.h> |
19 #include <stdint.h> | 19 #include <stdint.h> |
20 | 20 |
| 21 #include <string> |
| 22 |
21 namespace crashpad { | 23 namespace crashpad { |
22 namespace test { | 24 namespace test { |
23 | 25 |
| 26 //! \brief Returns the MINIDUMP_HEADER at the start of a minidump file, along |
| 27 //! with the MINIDUMP_DIRECTORY it references. |
| 28 //! |
| 29 //! This function validates the MINIDUMP_HEADER::Signature and |
| 30 //! MINIDUMP_HEADER::Version fields. |
| 31 //! |
| 32 //! \param[in] file_contents The contents of the minidump file. |
| 33 //! \param[out] directory The MINIDUMP_DIRECTORY referenced by the |
| 34 //! MINIDUMP_HEADER. If the MINIDUMP_HEADER does not reference a |
| 35 //! MINIDUMP_DIRECTORY, `nullptr` without raising a gtest assertion. If the |
| 36 //! referenced MINIDUMP_DIRECTORY is not valid, `nullptr` with a gtest |
| 37 //! assertion raised. On failure, `nullptr`. |
| 38 //! |
| 39 //! \return On success, the MINIDUMP_HEADER at the beginning of the minidump |
| 40 //! file. On failure, raises a gtest assertion and returns `nullptr`. |
| 41 const MINIDUMP_HEADER* MinidumpHeaderAtStart( |
| 42 const std::string& file_contents, |
| 43 const MINIDUMP_DIRECTORY** directory); |
| 44 |
24 //! \brief Verifies, via gtest assertions, that a MINIDUMP_HEADER contains | 45 //! \brief Verifies, via gtest assertions, that a MINIDUMP_HEADER contains |
25 //! expected values. | 46 //! expected values. |
26 //! | 47 //! |
27 //! All fields in the MINIDUMP_HEADER will be evaluated. Most are compared to | 48 //! All fields in the MINIDUMP_HEADER will be evaluated. Most are compared to |
28 //! their correct default values. MINIDUMP_HEADER::NumberOfStreams is compared | 49 //! their correct default values. MINIDUMP_HEADER::NumberOfStreams is compared |
29 //! to \a streams, and MINIDUMP_HEADER::TimeDateStamp is compared to \a | 50 //! to \a streams, and MINIDUMP_HEADER::TimeDateStamp is compared to \a |
30 //! timestamp. Most fields are checked with nonfatal EXPECT-style assertions, | 51 //! timestamp. Most fields are checked with nonfatal EXPECT-style assertions, |
31 //! but MINIDUMP_HEADER::NumberOfStreams and MINIDUMP_HEADER::StreamDirectoryRva | 52 //! but MINIDUMP_HEADER::NumberOfStreams and MINIDUMP_HEADER::StreamDirectoryRva |
32 //! are checked with fatal ASSERT-style assertions, because they must be | 53 //! are checked with fatal ASSERT-style assertions, because they must be |
33 //! correct in order for processing of the minidump to continue. | 54 //! correct in order for processing of the minidump to continue. |
34 void VerifyMinidumpHeader(const MINIDUMP_HEADER* header, | 55 void VerifyMinidumpHeader(const MINIDUMP_HEADER* header, |
35 uint32_t streams, | 56 uint32_t streams, |
36 uint32_t timestamp); | 57 uint32_t timestamp); |
37 | 58 |
38 } // namespace test | 59 } // namespace test |
39 } // namespace crashpad | 60 } // namespace crashpad |
40 | 61 |
41 #endif // CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ | 62 #endif // CRASHPAD_MINIDUMP_TEST_MINIDUMP_FILE_WRITER_TEST_UTIL_H_ |
OLD | NEW |