| // Copyright 2021 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 <fidl/fuchsia.driver.test/cpp/wire.h> |
| #include <lib/service/llcpp/service.h> |
| #include <lib/syslog/global.h> |
| |
| #include <sdk/lib/device-watcher/cpp/device-watcher.h> |
| |
| int main() { |
| auto client_end = service::Connect<fuchsia_driver_test::Realm>(); |
| if (!client_end.is_ok()) { |
| FX_LOGF(ERROR, "platform_driver_test_realm", "Failed to connect to Realm FIDL: %d", |
| client_end.error_value()); |
| return 1; |
| } |
| auto client = fidl::BindSyncClient(std::move(*client_end)); |
| |
| fidl::Arena arena; |
| fuchsia_driver_test::wire::RealmArgs args(arena); |
| args.set_root_driver(arena, fidl::StringView("fuchsia-boot:///#driver/platform-bus.so")); |
| auto wire_result = client->Start(std::move(args)); |
| if (wire_result.status() != ZX_OK) { |
| FX_LOGF(ERROR, "platform_driver_test_realm", "Failed to call to Realm:Start: %d", |
| wire_result.status()); |
| return 1; |
| } |
| if (wire_result->is_error()) { |
| FX_LOGF(ERROR, "platform_driver_test_realm", "Realm:Start failed: %d", |
| wire_result->error_value()); |
| return 1; |
| } |
| |
| fbl::unique_fd out; |
| zx_status_t status = |
| device_watcher::RecursiveWaitForFile("/dev/sys/platform/00:00:2d/ramctl", &out); |
| if (status != ZX_OK) { |
| FX_LOGF(ERROR, "platform_driver_test_realm", "Failed to wait for ramctl: %d", status); |
| } |
| return 0; |
| } |