blob: 5a263af2fef2a731d69ea4c6b77e78e67792d6bf [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/developer/debug/zxdb/symbols/process_symbols_test_setup.h"
#include "src/developer/debug/zxdb/symbols/loaded_module_symbols.h"
#include "src/developer/debug/zxdb/symbols/mock_module_symbols.h"
namespace zxdb {
ProcessSymbolsTestSetup::ProcessSymbolsTestSetup()
: system_(nullptr),
target_(&system_),
process_notifications_(),
process_(&process_notifications_, &target_) {}
ProcessSymbolsTestSetup::~ProcessSymbolsTestSetup() = default;
void ProcessSymbolsTestSetup::InjectModule(const std::string& name, const std::string& build_id,
uint64_t base, fxl::RefPtr<ModuleSymbols> mod_sym) {
system_.InjectModuleForTesting(build_id, mod_sym.get());
process_.InjectModuleForTesting(
name, build_id, std::make_unique<LoadedModuleSymbols>(std::move(mod_sym), build_id, base, 0));
}
MockModuleSymbols* ProcessSymbolsTestSetup::InjectMockModule() {
const char kModuleName[] = "default_mock_module.so";
const char kDefaultBuildID[] = "default_build_id";
auto module_symbols = fxl::MakeRefCounted<MockModuleSymbols>(kModuleName);
MockModuleSymbols* module_symbols_ptr = module_symbols.get(); // Save raw ptr to return.
InjectModule(kModuleName, kDefaultBuildID, kDefaultLoadAddress, std::move(module_symbols));
return module_symbols_ptr;
}
} // namespace zxdb