| // 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_INSPECT_COMPONENT_CPP_TESTING_H_ |
| #define LIB_INSPECT_COMPONENT_CPP_TESTING_H_ |
| |
| #include <fidl/fuchsia.inspect/cpp/wire.h> |
| #include <lib/fpromise/promise.h> |
| #include <lib/inspect/cpp/hierarchy.h> |
| |
| #include <vector> |
| |
| namespace inspect { |
| namespace testing { |
| |
| using TreeNameIteratorClient = fidl::WireClient<fuchsia_inspect::TreeNameIterator>; |
| using TreeClient = fidl::WireClient<fuchsia_inspect::Tree>; |
| |
| /// Collect all of the names of the children of the `Inspector` managed by the tree server |
| /// which started the TreeNameIterator server. Essentially, it drains the iterator. |
| fpromise::promise<std::vector<std::string>> ReadAllChildNames(TreeNameIteratorClient& iter); |
| |
| /// Turn a Tree handle into a complete hierarchy, including lazy children/values. |
| /// |
| /// This function uses `ZX_ASSERT` if it encounters FIDL errors. |
| fpromise::promise<Hierarchy> ReadFromTree(TreeClient& tree, async_dispatcher_t* dispatcher); |
| } // namespace testing |
| } // namespace inspect |
| |
| #endif // LIB_INSPECT_COMPONENT_CPP_TESTING_H_ |