| // 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. |
| |
| #ifndef LIB_SYS_COMPONENT_CPP_TESTS_UTILS_H_ |
| #define LIB_SYS_COMPONENT_CPP_TESTS_UTILS_H_ |
| |
| #include <fuchsia/component/decl/cpp/fidl.h> |
| #include <fuchsia/component/test/cpp/fidl.h> |
| |
| #include <memory> |
| #include <optional> |
| #include <string> |
| #include <string_view> |
| #include <utility> |
| #include <vector> |
| |
| namespace component { |
| namespace tests { |
| |
| namespace fctest = fuchsia::component::test; |
| namespace fcdecl = fuchsia::component::decl; |
| namespace fio = fuchsia::io; |
| |
| // Conversion functions for |fuchsia.component.decl| types. |
| std::shared_ptr<fcdecl::Ref> CreateFidlChildRef(std::string_view name); |
| std::shared_ptr<fcdecl::Ref> CreateFidlParentRef(); |
| |
| std::shared_ptr<fcdecl::Offer> CreateFidlProtocolOfferDecl(std::string_view source_name, |
| std::shared_ptr<fcdecl::Ref> source, |
| std::string_view target_name, |
| std::shared_ptr<fcdecl::Ref> target); |
| std::shared_ptr<fcdecl::Offer> CreateFidlServiceOfferDecl(std::string_view source_name, |
| std::shared_ptr<fcdecl::Ref> source, |
| std::string_view target_name, |
| std::shared_ptr<fcdecl::Ref> target); |
| std::shared_ptr<fcdecl::Offer> CreateFidlDirectoryOfferDecl( |
| std::string_view source_name, std::shared_ptr<fcdecl::Ref> source, std::string_view target_name, |
| std::shared_ptr<fcdecl::Ref> target, std::string_view subdir, fio::Operations rights); |
| |
| std::shared_ptr<fcdecl::Offer> CreateFidlStorageOfferDecl(std::string_view source_name, |
| std::shared_ptr<fcdecl::Ref> source, |
| std::string_view target_name, |
| std::shared_ptr<fcdecl::Ref> target); |
| |
| // Conversion functions for |fuchsia.component.test| types. |
| std::shared_ptr<fctest::ChildOptions> CreateFidlChildOptions( |
| fcdecl::StartupMode startup_mode, std::string_view environment, |
| std::vector<std::pair<std::string, fcdecl::ConfigValue>> config_overrides); |
| |
| std::shared_ptr<fctest::Capability> CreateFidlProtocolCapability( |
| std::string_view name, cpp17::optional<std::string_view> as = std::nullopt, |
| cpp17::optional<fcdecl::DependencyType> type = std::nullopt, |
| cpp17::optional<std::string_view> path = std::nullopt, |
| cpp17::optional<std::string_view> from_dictionary = std::nullopt); |
| |
| std::shared_ptr<fctest::Capability> CreateFidlServiceCapability( |
| std::string_view name, cpp17::optional<std::string_view> as = std::nullopt, |
| cpp17::optional<std::string_view> path = std::nullopt, |
| cpp17::optional<std::string_view> from_dictionary = std::nullopt); |
| |
| std::shared_ptr<fctest::Capability> CreateFidlDirectoryCapability( |
| std::string_view name, cpp17::optional<std::string_view> as = std::nullopt, |
| cpp17::optional<fcdecl::DependencyType> type = std::nullopt, |
| cpp17::optional<std::string_view> subdir = std::nullopt, |
| cpp17::optional<fio::Operations> rights = std::nullopt, |
| cpp17::optional<std::string_view> path = std::nullopt, |
| cpp17::optional<std::string_view> from_dictionary = std::nullopt); |
| |
| } // namespace tests |
| } // namespace component |
| |
| #endif // LIB_SYS_COMPONENT_CPP_TESTS_UTILS_H_ |