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

Unified Diff: util/mac/mach_o_image_reader_test.cc

Issue 586393003: 10.6 runtime compatibility for MachOImageReader test (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: util/mac/mach_o_image_reader_test.cc
diff --git a/util/mac/mach_o_image_reader_test.cc b/util/mac/mach_o_image_reader_test.cc
index b0ea514361fdce1869dba0ad9beba14c2d480545..6fcfebf6d16573647208c078ed6cdc521871aef9 100644
--- a/util/mac/mach_o_image_reader_test.cc
+++ b/util/mac/mach_o_image_reader_test.cc
@@ -281,10 +281,38 @@ void ExpectSegmentCommands(const MachHeader* expect_image,
// Similarly, make sure that a section name that exists in one segment isn’t
// accidentally found during a lookup for that section in a different segment.
- EXPECT_TRUE(actual_image->GetSectionByName(SEG_TEXT, SECT_TEXT, NULL));
+ //
+ // If the image has no sections (unexpected), then any section lookup should
+ // fail, and these initial values of test_segment and test_section are fine
+ // for the EXPECT_FALSE checks on GetSectionByName() below.
+ std::string test_segment = SEG_DATA;
+ std::string test_section = SECT_TEXT;
+
+ const process_types::section* section =
+ actual_image->GetSectionAtIndex(1, NULL, NULL);
+ if (section) {
+ // Use the name of the first section in the image as the section that
+ // shouldn’t appear in a different segment. If the first section is in the
+ // __TEXT segment (as it is normally), then a section by the same name
+ // wouldn’t be expected in the __DATA segment. But if the first section is
+ // in any other segment, then it wouldn’t be expected in the __TEXT segment.
+ if (MachOImageSegmentReader::SegmentNameString(section->segname) ==
+ SEG_TEXT) {
Robert Sesek 2014/09/22 16:35:47 nit: indent +4
+ test_segment = SEG_DATA;
+ } else {
+ test_segment = SEG_TEXT;
+ }
+ test_section =
+ MachOImageSegmentReader::SectionNameString(section->sectname);
+
+ // It should be possible to look up the first section by name.
+ EXPECT_EQ(section, actual_image->GetSectionByName(
+ section->segname, section->sectname, NULL));
+ }
+ EXPECT_FALSE(
+ actual_image->GetSectionByName("NoSuchSegment", test_section, NULL));
EXPECT_FALSE(
- actual_image->GetSectionByName("NoSuchSegment", SECT_TEXT, NULL));
- EXPECT_FALSE(actual_image->GetSectionByName(SEG_DATA, SECT_TEXT, NULL));
+ actual_image->GetSectionByName(test_segment, test_section, NULL));
// The __LINKEDIT segment normally does exist but doesn’t have any sections.
EXPECT_FALSE(
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698