1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2021 The Chromium 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 "base/fuchsia/test_component_controller.h"
- #include "base/fuchsia/fuchsia_logging.h"
- #include "base/run_loop.h"
- namespace base {
- TestComponentController::TestComponentController() = default;
- TestComponentController::TestComponentController(TestComponentController&&) =
- default;
- TestComponentController& TestComponentController::operator=(
- TestComponentController&&) = default;
- TestComponentController::~TestComponentController() {
- KillAndRunUntilDisconnect();
- }
- void TestComponentController::KillAndRunUntilDisconnect() {
- if (!ptr_)
- return;
- base::RunLoop loop;
- ptr_.set_error_handler([&loop](zx_status_t status) {
- loop.Quit();
- ZX_CHECK(status == ZX_ERR_PEER_CLOSED, status);
- });
- ptr_->Kill();
- loop.Run();
- CHECK(!ptr_);
- }
- } // namespace base
|