| 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 |