Chromium Code Reviews| Index: snapshot/win/crashpad_snapshot_test_simple_annotations.cc |
| diff --git a/snapshot/win/crashpad_snapshot_test_simple_annotations.cc b/snapshot/win/crashpad_snapshot_test_simple_annotations.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..10518085b64ffe8ae00fbd67104a7c0a34d3ef31 |
| --- /dev/null |
| +++ b/snapshot/win/crashpad_snapshot_test_simple_annotations.cc |
| @@ -0,0 +1,55 @@ |
| +// Copyright 2015 The Crashpad Authors. All rights reserved. |
| +// |
| +// Licensed under the Apache License, Version 2.0 (the "License"); |
| +// you may not use this file except in compliance with the License. |
| +// You may obtain a copy of the License at |
| +// |
| +// http://www.apache.org/licenses/LICENSE-2.0 |
| +// |
| +// Unless required by applicable law or agreed to in writing, software |
| +// distributed under the License is distributed on an "AS IS" BASIS, |
| +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| +// See the License for the specific language governing permissions and |
| +// limitations under the License. |
| + |
| +#include <windows.h> |
| + |
| +#include "base/logging.h" |
| +#include "client/crashpad_info.h" |
| +#include "util/file/file_io.h" |
| + |
| +int wmain(int argc, wchar_t* argv[]) { |
| + crashpad::CrashpadInfo* crashpad_info = |
| + crashpad::CrashpadInfo::GetCrashpadInfo(); |
| + |
| + // This is "leaked" to crashpad_info. |
| + crashpad::SimpleStringDictionary* simple_annotations = |
| + new crashpad::SimpleStringDictionary(); |
| + simple_annotations->SetKeyValue("#TEST# pad", "break"); |
| + simple_annotations->SetKeyValue("#TEST# key", "value"); |
| + simple_annotations->SetKeyValue("#TEST# pad", "crash"); |
| + simple_annotations->SetKeyValue("#TEST# x", "y"); |
| + simple_annotations->SetKeyValue("#TEST# longer", "shorter"); |
| + simple_annotations->SetKeyValue("#TEST# empty_value", ""); |
| + |
| + crashpad_info->set_simple_annotations(simple_annotations); |
| + |
| + // Tell the parent that the environment has been set up. |
| + HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); |
| + PCHECK(out != INVALID_HANDLE_VALUE) << "GetStdHandle"; |
| + char c = ' '; |
| + crashpad::CheckedWriteFile(out, &c, sizeof(c)); |
| + |
| + HANDLE in = GetStdHandle(STD_INPUT_HANDLE); |
| + PCHECK(in != INVALID_HANDLE_VALUE) << "GetStdHandle"; |
| + crashpad::CheckedReadFile(in, &c, sizeof(c)); |
| + CHECK(c == 'd' || c == ' '); |
| + |
| + // If 'd' we crash with a debug break, otherwise exit normally. |
| + if (c == 'd') |
| + __debugbreak(); |
| + |
| + return 0; |
| +} |
| + |
|
Mark Mentovai
2015/09/22 13:17:29
Lose the blank lines at EOF.
scottmg
2015/09/22 17:25:59
Done.
|
| + |