• Home
  • Raw
  • Download

Lines Matching +full:modules +full:- +full:2

2 // Use of this source code is governed by a BSD-style license that can be
25 // Note: The special-case IS_CHROMEOS code inside GetDebugBasenameForModule to
37 // Provides a module that is guaranteed to be isolated from (and non-contiguous
53 size_t GetSize() const override { return kRegionSize / 2; } in GetSize()
91 // Utility function to add a single non-native module during test setup. Returns
97 std::vector<std::unique_ptr<const ModuleCache::Module>> modules; in AddNonNativeModule() local
98 modules.push_back(std::move(module)); in AddNonNativeModule()
99 cache->UpdateNonNativeModules({}, std::move(modules)); in AddNonNativeModule()
119 module->GetDebugBasename() in MAYBE_TEST()
124 EXPECT_EQ("base_unittests", module->GetDebugBasename().value()); in MAYBE_TEST()
126 EXPECT_EQ(L"base_unittests.exe.pdb", module->GetDebugBasename().value()); in MAYBE_TEST()
140 EXPECT_GT(module1->GetSize(), 0u); in MAYBE_TEST()
141 EXPECT_LE(module1->GetBaseAddress(), ptr1); in MAYBE_TEST()
142 EXPECT_GT(module1->GetBaseAddress() + module1->GetSize(), ptr2); in MAYBE_TEST()
151 EXPECT_EQ(nullptr, cache.GetModuleForAddress(module->GetBaseAddress() - 1)); in MAYBE_TEST()
152 EXPECT_EQ(module, cache.GetModuleForAddress(module->GetBaseAddress())); in MAYBE_TEST()
153 EXPECT_EQ(module, cache.GetModuleForAddress(module->GetBaseAddress() + in MAYBE_TEST()
154 module->GetSize() - 1)); in MAYBE_TEST()
155 EXPECT_EQ(nullptr, cache.GetModuleForAddress(module->GetBaseAddress() + in MAYBE_TEST()
156 module->GetSize())); in MAYBE_TEST()
164 EXPECT_EQ(nullptr, cache.GetModuleForAddress(module->GetBaseAddress() - 1)); in MAYBE_TEST()
165 EXPECT_EQ(module, cache.GetModuleForAddress(module->GetBaseAddress())); in MAYBE_TEST()
166 EXPECT_EQ(module, cache.GetModuleForAddress(module->GetBaseAddress() + in MAYBE_TEST()
167 module->GetSize() - 1)); in MAYBE_TEST()
168 EXPECT_EQ(nullptr, cache.GetModuleForAddress(module->GetBaseAddress() + in MAYBE_TEST()
169 module->GetSize())); in MAYBE_TEST()
179 // Overlay the native module with the non-native module, starting 8 bytes into in MAYBE_TEST()
180 // the native modules and ending 8 bytes before the end of the module. in MAYBE_TEST()
183 std::make_unique<FakeModule>(native_module->GetBaseAddress() + 8, in MAYBE_TEST()
184 native_module->GetSize() - 16, false)); in MAYBE_TEST()
187 cache.GetModuleForAddress(non_native_module->GetBaseAddress() - 1)); in MAYBE_TEST()
189 cache.GetModuleForAddress(non_native_module->GetBaseAddress())); in MAYBE_TEST()
191 cache.GetModuleForAddress(non_native_module->GetBaseAddress() + in MAYBE_TEST()
192 non_native_module->GetSize() - 1)); in MAYBE_TEST()
194 cache.GetModuleForAddress(non_native_module->GetBaseAddress() + in MAYBE_TEST()
195 non_native_module->GetSize())); in MAYBE_TEST()
200 std::vector<std::unique_ptr<const ModuleCache::Module>> modules; in MAYBE_TEST() local
201 modules.push_back(std::make_unique<FakeModule>(1, 1, false)); in MAYBE_TEST()
202 const ModuleCache::Module* module = modules.back().get(); in MAYBE_TEST()
203 cache.UpdateNonNativeModules({}, std::move(modules)); in MAYBE_TEST()
210 std::vector<std::unique_ptr<const ModuleCache::Module>> modules; in MAYBE_TEST() local
211 modules.push_back(std::make_unique<FakeModule>(1, 1, false)); in MAYBE_TEST()
212 const ModuleCache::Module* module = modules.back().get(); in MAYBE_TEST()
213 cache.UpdateNonNativeModules({}, std::move(modules)); in MAYBE_TEST()
223 std::vector<std::unique_ptr<const ModuleCache::Module>> modules; in MAYBE_TEST() local
224 modules.push_back(std::make_unique<FakeModule>( in MAYBE_TEST()
227 const ModuleCache::Module* module = modules.back().get(); in MAYBE_TEST()
228 cache.UpdateNonNativeModules({}, std::move(modules)); in MAYBE_TEST()
236 // Regression test to validate that when modules are partitioned into modules to
237 // keep and modules to remove, the modules to remove are not destroyed.
238 // https://crbug.com/1127466 case 2.
244 std::vector<std::unique_ptr<const ModuleCache::Module>> modules; in MAYBE_TEST() local
245 modules.push_back(std::make_unique<FakeModule>( in MAYBE_TEST()
247 const ModuleCache::Module* module1 = modules.back().get(); in MAYBE_TEST()
248 modules.push_back(std::make_unique<FakeModule>( in MAYBE_TEST()
249 2, 1, false, BindLambdaForTesting(record_destroyed))); in MAYBE_TEST()
250 cache.UpdateNonNativeModules({}, std::move(modules)); in MAYBE_TEST()
255 EXPECT_EQ(2, destroyed_count); in MAYBE_TEST()
265 modules2.push_back(std::make_unique<FakeModule>(1, 2, false)); in MAYBE_TEST()
271 EXPECT_EQ(module2, cache.GetModuleForAddress(2)); in MAYBE_TEST()
280 // Checks that non-native modules can be repeatedly added and removed at the in MAYBE_TEST()
310 // Checks that the correct modules are removed when removing some but not all in MAYBE_TEST()
311 // modules. in MAYBE_TEST()
316 DCHECK_EQ(nullptr, cache.GetModuleForAddress(2)); in MAYBE_TEST()
327 AddNonNativeModule(&cache, std::make_unique<FakeModule>(1, 2, false)); in MAYBE_TEST()
330 std::vector<const ModuleCache::Module*> modules = cache.GetModules(); in MAYBE_TEST() local
331 ASSERT_EQ(2u, modules.size()); in MAYBE_TEST()
332 EXPECT_EQ(native_module, modules[0]); in MAYBE_TEST()
333 EXPECT_EQ(non_native_module, modules[1]); in MAYBE_TEST()
344 // Validates that, for the memory regions listed in /proc/self/maps, the modules
363 return static_cast<bool>(region->permissions & in TEST()
374 // part of modules. in TEST()
386 // modules created for addresses in each region have the expected extents. in TEST()
388 path_regions_pair.second.front()->start; in TEST()
392 cache.GetModuleForAddress(region->start); in TEST()
393 // Not all regions matching the prior conditions are necessarily modules; in TEST()
401 EXPECT_EQ(expected_base_address, module->GetBaseAddress()); in TEST()
405 EXPECT_LE(module->GetSize(), in TEST()
406 last_executable_region->end - expected_base_address) in TEST()
407 << "base address: " << std::hex << module->GetBaseAddress() in TEST()
409 << "region start: " << std::hex << region->start << std::endl in TEST()
410 << "region end: " << std::hex << region->end << std::endl; in TEST()
414 // Linux should have at least this module and ld-linux.so. Android should have in TEST()
416 EXPECT_GE(module_count, 2); in TEST()
436 // Check that auxiliary provider can inject new modules when registered.
445 EXPECT_EQ(1U, module->GetBaseAddress()); in TEST()
466 EXPECT_NE(100u, module->GetSize()); in MAYBE_TEST()