Lines Matching +full:- +full:find
8 * http://www.apache.org/licenses/LICENSE-2.0
23 #include <android-base/file.h>
48 new BufferMaps("1000-2000 r-xs 00000000 00:00 0 elf_one.so\n" in SetUp()
49 "2000-3000 r-xs 00000000 00:00 0 elf_two.so\n" in SetUp()
50 "3000-4000 ---s 00000000 00:00 0\n" in SetUp()
51 "4000-5000 r--s 00000000 00:00 0 elf_three.so\n" in SetUp()
52 "5000-6000 r-xs 00001000 00:00 0 elf_three.so\n" in SetUp()
53 "6000-7000 ---s 00000000 00:00 0\n" in SetUp()
54 "7000-8000 r--s 00001000 00:00 0 app_one.apk\n" in SetUp()
55 "8000-9000 r-xs 00005000 00:00 0 app_one.apk\n" in SetUp()
56 "9000-a000 r--s 00004000 00:00 0 app_two.apk\n" in SetUp()
57 "a000-b000 r-xs 00005000 00:00 0 app_two.apk\n" in SetUp()
58 "b000-c000 r--s 00008000 00:00 0 app_two.apk\n" in SetUp()
59 "c000-d000 r-xs 00009000 00:00 0 app_two.apk\n" in SetUp()
60 "d000-e000 ---s 00000000 00:00 0\n" in SetUp()
61 "e000-f000 r-xs 00000000 00:00 0 invalid\n" in SetUp()
62 "f000-10000 r-xs 00000000 00:00 0 invalid\n" in SetUp()
63 "10000-11000 r-xs 00000000 00:00 0 elf_two.so\n" in SetUp()
64 "11000-12000 r-xs 00000000 00:00 0 elf_one.so\n" in SetUp()
65 "12000-13000 r--s 00000000 00:00 0 elf_three.so\n" in SetUp()
66 "13000-14000 r-xs 00001000 00:00 0 elf_three.so\n" in SetUp()
67 "14000-15000 ---s 00000000 00:00 0\n" in SetUp()
68 "15000-16000 r--s 00001000 00:00 0 app_one.apk\n" in SetUp()
69 "16000-17000 r-xs 00005000 00:00 0 app_one.apk\n" in SetUp()
70 "17000-18000 r--s 00004000 00:00 0 app_two.apk\n" in SetUp()
71 "18000-19000 r-xs 00005000 00:00 0 app_two.apk\n" in SetUp()
72 "19000-1a000 r--s 00008000 00:00 0 app_two.apk\n" in SetUp()
73 "1a000-1b000 r-xs 00009000 00:00 0 app_two.apk\n")); in SetUp()
74 ASSERT_TRUE(maps_->Parse()); in SetUp()
79 renames["elf_one.so"] = temps_.back()->path; in SetUp()
83 renames["elf_two.so"] = temps_.back()->path; in SetUp()
87 renames["elf_three.so"] = temps_.back()->path; in SetUp()
91 renames["app_one.apk"] = temps_.back()->path; in SetUp()
96 renames["app_two.apk"] = temps_.back()->path; in SetUp()
101 if (!map_info->name().empty()) { in SetUp()
102 if (renames.contains(map_info->name())) { in SetUp()
104 map_info->name() = renames.at(map_info->name()); in SetUp()
123 ASSERT_EQ(offset, static_cast<uint64_t>(lseek(tf->fd, offset, SEEK_SET))); in WriteElfFile()
124 ASSERT_TRUE(android::base::WriteFully(tf->fd, &ehdr, sizeof(ehdr))); in WriteElfFile()
125 ASSERT_EQ(offset + 0x2000, static_cast<uint64_t>(lseek(tf->fd, offset + 0x2000, SEEK_SET))); in WriteElfFile()
126 ASSERT_TRUE(android::base::WriteFully(tf->fd, &shdr, sizeof(shdr))); in WriteElfFile()
137 Elf* elf_one = maps_->Find(0x1000)->GetElf(memory_, ARCH_ARM); in TEST_F()
138 ASSERT_TRUE(elf_one->valid()); in TEST_F()
139 Elf* elf_two = maps_->Find(0x2000)->GetElf(memory_, ARCH_ARM); in TEST_F()
140 EXPECT_TRUE(elf_two->valid()); in TEST_F()
141 Elf* elf_three = maps_->Find(0x4000)->GetElf(memory_, ARCH_ARM); in TEST_F()
142 ASSERT_TRUE(elf_three->valid()); in TEST_F()
145 EXPECT_EQ(maps_->Find(0x5000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
146 EXPECT_EQ(0U, maps_->Find(0x5000)->elf_start_offset()); in TEST_F()
147 EXPECT_EQ(0x1000U, maps_->Find(0x5000)->elf_offset()); in TEST_F()
148 EXPECT_EQ(0x1000U, maps_->Find(0x5000)->offset()); in TEST_F()
150 EXPECT_EQ(maps_->Find(0x10000)->GetElf(memory_, ARCH_ARM), elf_two); in TEST_F()
151 EXPECT_EQ(0U, maps_->Find(0x10000)->elf_start_offset()); in TEST_F()
152 EXPECT_EQ(0U, maps_->Find(0x10000)->elf_offset()); in TEST_F()
153 EXPECT_EQ(0U, maps_->Find(0x10000)->offset()); in TEST_F()
155 EXPECT_EQ(maps_->Find(0x11000)->GetElf(memory_, ARCH_ARM), elf_one); in TEST_F()
156 EXPECT_EQ(0U, maps_->Find(0x11000)->elf_start_offset()); in TEST_F()
157 EXPECT_EQ(0U, maps_->Find(0x11000)->elf_offset()); in TEST_F()
158 EXPECT_EQ(0U, maps_->Find(0x11000)->offset()); in TEST_F()
160 EXPECT_EQ(maps_->Find(0x12000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
161 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_start_offset()); in TEST_F()
162 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_offset()); in TEST_F()
163 EXPECT_EQ(0U, maps_->Find(0x12000)->offset()); in TEST_F()
165 EXPECT_EQ(maps_->Find(0x13000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
166 EXPECT_EQ(0U, maps_->Find(0x13000)->elf_start_offset()); in TEST_F()
167 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->elf_offset()); in TEST_F()
168 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->offset()); in TEST_F()
172 Elf* elf_three = maps_->Find(0x4000)->GetElf(memory_, ARCH_ARM); in TEST_F()
173 ASSERT_TRUE(elf_three->valid()); in TEST_F()
175 EXPECT_EQ(maps_->Find(0x12000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
176 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_start_offset()); in TEST_F()
177 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_offset()); in TEST_F()
178 EXPECT_EQ(0U, maps_->Find(0x12000)->offset()); in TEST_F()
182 Elf* elf_three = maps_->Find(0x4000)->GetElf(memory_, ARCH_ARM); in TEST_F()
183 ASSERT_TRUE(elf_three->valid()); in TEST_F()
185 EXPECT_EQ(maps_->Find(0x13000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
186 EXPECT_EQ(0U, maps_->Find(0x13000)->elf_start_offset()); in TEST_F()
187 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->elf_offset()); in TEST_F()
188 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->offset()); in TEST_F()
192 Elf* elf_three = maps_->Find(0x5000)->GetElf(memory_, ARCH_ARM); in TEST_F()
193 ASSERT_TRUE(elf_three->valid()); in TEST_F()
195 EXPECT_EQ(maps_->Find(0x12000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
196 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_start_offset()); in TEST_F()
197 EXPECT_EQ(0U, maps_->Find(0x12000)->elf_offset()); in TEST_F()
198 EXPECT_EQ(0U, maps_->Find(0x12000)->offset()); in TEST_F()
202 Elf* elf_three = maps_->Find(0x5000)->GetElf(memory_, ARCH_ARM); in TEST_F()
203 ASSERT_TRUE(elf_three->valid()); in TEST_F()
205 EXPECT_EQ(maps_->Find(0x13000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
206 EXPECT_EQ(0U, maps_->Find(0x13000)->elf_start_offset()); in TEST_F()
207 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->elf_offset()); in TEST_F()
208 EXPECT_EQ(0x1000U, maps_->Find(0x13000)->offset()); in TEST_F()
212 Elf* app_one_elf1 = maps_->Find(0x7000)->GetElf(memory_, ARCH_ARM); in TEST_F()
213 ASSERT_TRUE(app_one_elf1->valid()); in TEST_F()
214 Elf* app_one_elf2 = maps_->Find(0x8000)->GetElf(memory_, ARCH_ARM); in TEST_F()
215 ASSERT_TRUE(app_one_elf2->valid()); in TEST_F()
216 Elf* app_two_elf1 = maps_->Find(0x9000)->GetElf(memory_, ARCH_ARM); in TEST_F()
217 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
218 Elf* app_two_elf2 = maps_->Find(0xb000)->GetElf(memory_, ARCH_ARM); in TEST_F()
219 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
222 EXPECT_EQ(maps_->Find(0xa000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
223 EXPECT_EQ(0x4000U, maps_->Find(0xa000)->elf_start_offset()); in TEST_F()
224 EXPECT_EQ(0x1000U, maps_->Find(0xa000)->elf_offset()); in TEST_F()
225 EXPECT_EQ(0x5000U, maps_->Find(0xa000)->offset()); in TEST_F()
227 EXPECT_EQ(maps_->Find(0xc000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
228 EXPECT_EQ(0x8000U, maps_->Find(0xc000)->elf_start_offset()); in TEST_F()
229 EXPECT_EQ(0x1000U, maps_->Find(0xc000)->elf_offset()); in TEST_F()
230 EXPECT_EQ(0x9000U, maps_->Find(0xc000)->offset()); in TEST_F()
232 EXPECT_EQ(maps_->Find(0x15000)->GetElf(memory_, ARCH_ARM), app_one_elf1); in TEST_F()
233 EXPECT_EQ(0x1000U, maps_->Find(0x15000)->elf_start_offset()); in TEST_F()
234 EXPECT_EQ(0U, maps_->Find(0x15000)->elf_offset()); in TEST_F()
235 EXPECT_EQ(0x1000U, maps_->Find(0x15000)->offset()); in TEST_F()
237 EXPECT_EQ(maps_->Find(0x16000)->GetElf(memory_, ARCH_ARM), app_one_elf2); in TEST_F()
238 EXPECT_EQ(0x1000U, maps_->Find(0x16000)->elf_start_offset()); in TEST_F()
239 EXPECT_EQ(0x4000U, maps_->Find(0x16000)->elf_offset()); in TEST_F()
240 EXPECT_EQ(0x5000U, maps_->Find(0x16000)->offset()); in TEST_F()
242 EXPECT_EQ(maps_->Find(0x17000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
243 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->elf_start_offset()); in TEST_F()
244 EXPECT_EQ(0U, maps_->Find(0x17000)->elf_offset()); in TEST_F()
245 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->offset()); in TEST_F()
247 EXPECT_EQ(maps_->Find(0x18000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
248 EXPECT_EQ(0x4000U, maps_->Find(0x18000)->elf_start_offset()); in TEST_F()
249 EXPECT_EQ(0x1000U, maps_->Find(0x18000)->elf_offset()); in TEST_F()
250 EXPECT_EQ(0x5000U, maps_->Find(0x18000)->offset()); in TEST_F()
252 EXPECT_EQ(maps_->Find(0x19000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
253 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->elf_start_offset()); in TEST_F()
254 EXPECT_EQ(0U, maps_->Find(0x19000)->elf_offset()); in TEST_F()
255 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->offset()); in TEST_F()
257 EXPECT_EQ(maps_->Find(0x1a000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
258 EXPECT_EQ(0x8000U, maps_->Find(0x1a000)->elf_start_offset()); in TEST_F()
259 EXPECT_EQ(0x1000U, maps_->Find(0x1a000)->elf_offset()); in TEST_F()
260 EXPECT_EQ(0x9000U, maps_->Find(0x1a000)->offset()); in TEST_F()
264 Elf* app_two_elf1 = maps_->Find(0x9000)->GetElf(memory_, ARCH_ARM); in TEST_F()
265 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
266 Elf* app_two_elf2 = maps_->Find(0xb000)->GetElf(memory_, ARCH_ARM); in TEST_F()
267 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
269 EXPECT_EQ(maps_->Find(0x17000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
270 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->elf_start_offset()); in TEST_F()
271 EXPECT_EQ(0U, maps_->Find(0x17000)->elf_offset()); in TEST_F()
272 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->offset()); in TEST_F()
274 EXPECT_EQ(maps_->Find(0x19000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
275 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->elf_start_offset()); in TEST_F()
276 EXPECT_EQ(0U, maps_->Find(0x19000)->elf_offset()); in TEST_F()
277 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->offset()); in TEST_F()
281 Elf* app_two_elf1 = maps_->Find(0x9000)->GetElf(memory_, ARCH_ARM); in TEST_F()
282 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
283 Elf* app_two_elf2 = maps_->Find(0xb000)->GetElf(memory_, ARCH_ARM); in TEST_F()
284 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
286 EXPECT_EQ(maps_->Find(0x18000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
287 EXPECT_EQ(0x4000U, maps_->Find(0x18000)->elf_start_offset()); in TEST_F()
288 EXPECT_EQ(0x1000U, maps_->Find(0x18000)->elf_offset()); in TEST_F()
289 EXPECT_EQ(0x5000U, maps_->Find(0x18000)->offset()); in TEST_F()
291 EXPECT_EQ(maps_->Find(0x1a000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
292 EXPECT_EQ(0x8000U, maps_->Find(0x1a000)->elf_start_offset()); in TEST_F()
293 EXPECT_EQ(0x1000U, maps_->Find(0x1a000)->elf_offset()); in TEST_F()
294 EXPECT_EQ(0x9000U, maps_->Find(0x1a000)->offset()); in TEST_F()
298 Elf* app_two_elf1 = maps_->Find(0xa000)->GetElf(memory_, ARCH_ARM); in TEST_F()
299 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
300 Elf* app_two_elf2 = maps_->Find(0xc000)->GetElf(memory_, ARCH_ARM); in TEST_F()
301 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
303 EXPECT_EQ(maps_->Find(0x17000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
304 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->elf_start_offset()); in TEST_F()
305 EXPECT_EQ(0U, maps_->Find(0x17000)->elf_offset()); in TEST_F()
306 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->offset()); in TEST_F()
308 EXPECT_EQ(maps_->Find(0x19000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
309 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->elf_start_offset()); in TEST_F()
310 EXPECT_EQ(0U, maps_->Find(0x19000)->elf_offset()); in TEST_F()
311 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->offset()); in TEST_F()
315 Elf* app_two_elf1 = maps_->Find(0x9000)->GetElf(memory_, ARCH_ARM); in TEST_F()
316 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
317 Elf* app_two_elf2 = maps_->Find(0xb000)->GetElf(memory_, ARCH_ARM); in TEST_F()
318 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
320 EXPECT_EQ(maps_->Find(0x17000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
321 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->elf_start_offset()); in TEST_F()
322 EXPECT_EQ(0U, maps_->Find(0x17000)->elf_offset()); in TEST_F()
323 EXPECT_EQ(0x4000U, maps_->Find(0x17000)->offset()); in TEST_F()
325 EXPECT_EQ(maps_->Find(0x19000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
326 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->elf_start_offset()); in TEST_F()
327 EXPECT_EQ(0U, maps_->Find(0x19000)->elf_offset()); in TEST_F()
328 EXPECT_EQ(0x8000U, maps_->Find(0x19000)->offset()); in TEST_F()
335 Elf* elf_one = maps_->Find(0x1000)->GetElf(memory_, ARCH_ARM); in TEST_F()
336 ASSERT_TRUE(elf_one->valid()); in TEST_F()
337 Elf* elf_two = maps_->Find(0x2000)->GetElf(memory_, ARCH_ARM); in TEST_F()
338 EXPECT_TRUE(elf_two->valid()); in TEST_F()
339 Elf* elf_three = maps_->Find(0x4000)->GetElf(memory_, ARCH_ARM); in TEST_F()
340 ASSERT_TRUE(elf_three->valid()); in TEST_F()
341 EXPECT_EQ(maps_->Find(0x5000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
343 EXPECT_NE(maps_->Find(0x10000)->GetElf(memory_, ARCH_ARM), elf_two); in TEST_F()
344 EXPECT_NE(maps_->Find(0x11000)->GetElf(memory_, ARCH_ARM), elf_one); in TEST_F()
345 EXPECT_NE(maps_->Find(0x12000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
346 EXPECT_NE(maps_->Find(0x13000)->GetElf(memory_, ARCH_ARM), elf_three); in TEST_F()
348 Elf* app_one_elf1 = maps_->Find(0x7000)->GetElf(memory_, ARCH_ARM); in TEST_F()
349 ASSERT_TRUE(app_one_elf1->valid()); in TEST_F()
350 Elf* app_one_elf2 = maps_->Find(0x8000)->GetElf(memory_, ARCH_ARM); in TEST_F()
351 ASSERT_TRUE(app_one_elf2->valid()); in TEST_F()
352 Elf* app_two_elf1 = maps_->Find(0x9000)->GetElf(memory_, ARCH_ARM); in TEST_F()
353 ASSERT_TRUE(app_two_elf1->valid()); in TEST_F()
354 EXPECT_EQ(maps_->Find(0xa000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
355 Elf* app_two_elf2 = maps_->Find(0xb000)->GetElf(memory_, ARCH_ARM); in TEST_F()
356 ASSERT_TRUE(app_two_elf2->valid()); in TEST_F()
357 EXPECT_EQ(maps_->Find(0xc000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
359 EXPECT_NE(maps_->Find(0x15000)->GetElf(memory_, ARCH_ARM), app_one_elf1); in TEST_F()
360 EXPECT_NE(maps_->Find(0x16000)->GetElf(memory_, ARCH_ARM), app_one_elf2); in TEST_F()
361 EXPECT_NE(maps_->Find(0x17000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
362 EXPECT_NE(maps_->Find(0x18000)->GetElf(memory_, ARCH_ARM), app_two_elf1); in TEST_F()
363 EXPECT_NE(maps_->Find(0x19000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
364 EXPECT_NE(maps_->Find(0x1a000)->GetElf(memory_, ARCH_ARM), app_two_elf2); in TEST_F()
369 Elf* invalid_elf1 = maps_->Find(0xe000)->GetElf(memory_, ARCH_ARM); in TEST_F()
370 ASSERT_FALSE(invalid_elf1->valid()); in TEST_F()
371 Elf* invalid_elf2 = maps_->Find(0xf000)->GetElf(memory_, ARCH_ARM); in TEST_F()
372 ASSERT_FALSE(invalid_elf2->valid()); in TEST_F()