1// Copyright 2018 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <fuchsia/io/c/fidl.h> 6#include <lib/fdio/util.h> 7#include <unittest/unittest.h> 8#include <zircon/syscalls.h> 9 10namespace { 11 12bool test_fidl_basic() { 13 BEGIN_TEST; 14 15 zx_handle_t h = ZX_HANDLE_INVALID; 16 zx_handle_t request = ZX_HANDLE_INVALID; 17 fuchsia_io_NodeInfo info = {}; 18 19 ASSERT_EQ(zx_channel_create(0, &h, &request), ZX_OK); 20 ASSERT_EQ(fdio_service_connect("/dev/class", request), ZX_OK); 21 memset(&info, 0, sizeof(info)); 22 ASSERT_EQ(fuchsia_io_FileDescribe(h, &info), ZX_OK); 23 ASSERT_EQ(info.tag, fuchsia_io_NodeInfoTag_directory); 24 zx_handle_close(h); 25 26 ASSERT_EQ(zx_channel_create(0, &h, &request), ZX_OK); 27 ASSERT_EQ(fdio_service_connect("/dev/zero", request), ZX_OK); 28 memset(&info, 0, sizeof(info)); 29 ASSERT_EQ(fuchsia_io_FileDescribe(h, &info), ZX_OK); 30 ASSERT_EQ(info.tag, fuchsia_io_NodeInfoTag_device); 31 ASSERT_NE(info.device.event, ZX_HANDLE_INVALID); 32 zx_handle_close(info.device.event); 33 zx_handle_close(h); 34 35 END_TEST; 36} 37 38} // namespace 39 40BEGIN_TEST_CASE(fidl_tests) 41RUN_TEST(test_fidl_basic) 42END_TEST_CASE(fidl_tests) 43