| Index: src/processor/minidump_unittest.cc
|
| diff --git a/src/processor/minidump_unittest.cc b/src/processor/minidump_unittest.cc
|
| index 4c5a7b2f3c65da38f9f8c721bf6121661e33bded..d29e9f4e5e1512822ecfcff99c07e39761728623 100644
|
| --- a/src/processor/minidump_unittest.cc
|
| +++ b/src/processor/minidump_unittest.cc
|
| @@ -625,6 +625,80 @@ TEST(Dump, CVELFShort) {
|
| ASSERT_EQ("B4CDA95F0000000000000000000000000", md_module->debug_identifier());
|
| }
|
|
|
| +// Test that a build_id that's very long is handled properly.
|
| +TEST(Dump, CVELFLong) {
|
| + Dump dump(0, kLittleEndian);
|
| + String module_name(dump, "elf module");
|
| + Section cv_info(dump);
|
| + cv_info
|
| + .D32(MD_CVINFOELF_SIGNATURE) // signature
|
| + // build_id, lots of bytes
|
| + .Append("\x5f\xa9\xcd\xb4\x10\x53\xdf\x1b\x86\xfa\xb7\x33\xb4\xdf"
|
| + "\x37\x38\xce\xa3\x4a\x87\x01\x02\x03\x04\x05\x06\x07\x08"
|
| + "\x09\x0a\x0b\x0c\x0d\x0e\x0f");
|
| +
|
| +
|
| + const MDRawSystemInfo linux_x86 = {
|
| + MD_CPU_ARCHITECTURE_X86, // processor_architecture
|
| + 6, // processor_level
|
| + 0xd08, // processor_revision
|
| + 1, // number_of_processors
|
| + 0, // product_type
|
| + 0, // major_version
|
| + 0, // minor_version
|
| + 0, // build_number
|
| + MD_OS_LINUX, // platform_id
|
| + 0xdeadbeef, // csd_version_rva
|
| + 0x100, // suite_mask
|
| + 0, // reserved2
|
| + { // cpu
|
| + { // x86_cpu_info
|
| + { 0x756e6547, 0x49656e69, 0x6c65746e }, // vendor_id
|
| + 0x6d8, // version_information
|
| + 0xafe9fbff, // feature_information
|
| + 0xffffffff // amd_extended_cpu_features
|
| + }
|
| + }
|
| + };
|
| + String csd_version(dump, "Literally Linux");
|
| + SystemInfo system_info(dump, linux_x86, csd_version);
|
| +
|
| + Module module(dump, 0xa90206ca83eb2852ULL, 0xada542bd,
|
| + module_name,
|
| + 0xb1054d2a,
|
| + 0x34571371,
|
| + fixed_file_info, // from synth_minidump_unittest_data.h
|
| + &cv_info, nullptr);
|
| +
|
| + dump.Add(&module);
|
| + dump.Add(&module_name);
|
| + dump.Add(&cv_info);
|
| + dump.Add(&system_info);
|
| + dump.Add(&csd_version);
|
| + dump.Finish();
|
| +
|
| + string contents;
|
| + ASSERT_TRUE(dump.GetContents(&contents));
|
| + istringstream minidump_stream(contents);
|
| + Minidump minidump(minidump_stream);
|
| + ASSERT_TRUE(minidump.Read());
|
| + ASSERT_EQ(2U, minidump.GetDirectoryEntryCount());
|
| +
|
| + MinidumpModuleList *md_module_list = minidump.GetModuleList();
|
| + ASSERT_TRUE(md_module_list != NULL);
|
| + ASSERT_EQ(1U, md_module_list->module_count());
|
| +
|
| + const MinidumpModule *md_module = md_module_list->GetModuleAtIndex(0);
|
| + ASSERT_TRUE(md_module != NULL);
|
| + // just the build_id, directly
|
| + ASSERT_EQ(
|
| + "5fa9cdb41053df1b86fab733b4df3738cea34a870102030405060708090a0b0c0d0e0f",
|
| + md_module->code_identifier());
|
| + // build_id truncated to GUID length and treated as such, with zero
|
| + // age appended.
|
| + ASSERT_EQ("B4CDA95F53101BDF86FAB733B4DF37380", md_module->debug_identifier());
|
| +}
|
| +
|
| TEST(Dump, OneSystemInfo) {
|
| Dump dump(0, kLittleEndian);
|
| String csd_version(dump, "Petulant Pierogi");
|
|
|