blob: a86e43b84f6ca170bd4aa6b7a1ceba07b370125b [file] [log] [blame]
// Copyright 2020 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/debug_agent/mock_job_handle.h"
#include "src/developer/debug/debug_agent/mock_process_handle.h"
namespace debug_agent {
zx::job MockJobHandle::null_handle_;
MockJobHandle::MockJobHandle(zx_koid_t koid, std::string name)
: job_koid_(koid), name_(std::move(name)) {
// Tests could accidentally write to this handle since it's returned as a mutable value in some
// cases. Catch accidents like that.
FX_DCHECK(!null_handle_);
}
std::unique_ptr<JobHandle> MockJobHandle::Duplicate() const {
return std::make_unique<MockJobHandle>(*this);
}
std::vector<std::unique_ptr<JobHandle>> MockJobHandle::GetChildJobs() const {
// Need to return a unique set of objects every time so make copies.
std::vector<std::unique_ptr<JobHandle>> result;
for (auto& job : child_jobs_)
result.push_back(std::make_unique<MockJobHandle>(job));
return result;
}
std::vector<std::unique_ptr<ProcessHandle>> MockJobHandle::GetChildProcesses() const {
// Need to return a unique set of objects every time so make copies.
std::vector<std::unique_ptr<ProcessHandle>> result;
for (auto& process : child_processes_)
result.push_back(std::make_unique<MockProcessHandle>(process));
return result;
}
} // namespace debug_agent