blob: 4ed39fe2fbbdb5ba75ce0054966f886fdc23707e [file]
// Copyright 2026 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/launcher.h"
#include <fidl/fuchsia.component.decl/cpp/fidl.h>
#include <fidl/fuchsia.debugger/cpp/fidl.h>
#include <gtest/gtest.h>
namespace {
TEST(DebugAgentLauncherTest, CreateChildDecl) {
fuchsia_debugger::LaunchOptions options_false;
options_false.monitor_root_job(false);
auto decl_false = DebugAgentLauncher::CreateChildDecl("test_agent_false", options_false);
EXPECT_EQ(decl_false.name(), "test_agent_false");
ASSERT_TRUE(decl_false.config_overrides().has_value());
ASSERT_EQ(decl_false.config_overrides()->size(), 1u);
EXPECT_EQ(decl_false.config_overrides().value()[0].key(), "monitor_root_job");
ASSERT_TRUE(decl_false.config_overrides().value()[0].value().has_value());
ASSERT_TRUE(decl_false.config_overrides().value()[0].value()->single().has_value());
ASSERT_TRUE(decl_false.config_overrides().value()[0].value()->single()->bool_().has_value());
EXPECT_FALSE(decl_false.config_overrides().value()[0].value()->single()->bool_().value());
fuchsia_debugger::LaunchOptions options_true;
options_true.monitor_root_job(true);
auto decl_true = DebugAgentLauncher::CreateChildDecl("test_agent_true", options_true);
EXPECT_EQ(decl_true.name(), "test_agent_true");
ASSERT_TRUE(decl_true.config_overrides().has_value());
ASSERT_EQ(decl_true.config_overrides()->size(), 1u);
EXPECT_EQ(decl_true.config_overrides().value()[0].key(), "monitor_root_job");
ASSERT_TRUE(decl_true.config_overrides().value()[0].value().has_value());
ASSERT_TRUE(decl_true.config_overrides().value()[0].value()->single().has_value());
ASSERT_TRUE(decl_true.config_overrides().value()[0].value()->single()->bool_().has_value());
EXPECT_TRUE(decl_true.config_overrides().value()[0].value()->single()->bool_().value());
fuchsia_debugger::LaunchOptions options_empty;
auto decl_empty = DebugAgentLauncher::CreateChildDecl("test_agent_empty", options_empty);
EXPECT_EQ(decl_empty.name(), "test_agent_empty");
EXPECT_FALSE(decl_empty.config_overrides().has_value());
}
} // namespace