# Copyright 2022 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.

import("//build/sdk/sdk_component_manifests.gni")

group("tests") {
  testonly = true
  deps = [
    "cpp/tests",
    "llcpp/tests",
  ]
}

# Since usage of the Realm Builder client libraries relies on adding a
# child, Realm Builder Server, with a relative URL, the shard is split out
# into two parts. This is necessary because OOT environments won't be able to
# include the Realm Builder Server in their test package.
#
# In order to remedy this problem, the shard is split into a base shard,
# an internal one and an SDK one. The base portion contains all the shared
# routing and capability declaration that is used by the test component's
# environment.
# The internal one inherits from the base shard, and extends it by declaring
# the necessary child based off a relative URL.
# The SDK one inherits from the base shard, and extends it by declaring
# the necessary child based off an absolute URL.
#
# TODO(https://fxbug.dev/89252): Remove this workaround once sub-packages
# support has landed.
sdk_component_manifests("realm_builder_shard_sdk") {
  name = "sys/component"
  manifests = [
    "realm_builder_absolute.shard.cml",
    "realm_builder_base.shard.cml",
  ]
  category = "partner"
}

sdk_component_manifests("realm_builder_shard") {
  name = "sys/component"
  manifests = [ "realm_builder.shard.cml" ]
  category = "internal"
}
