| // Copyright 2019 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 "tools/kazoo/outputs.h" |
| #include "tools/kazoo/syscall_library.h" |
| #include "tools/kazoo/test.h" |
| #include "tools/kazoo/test_ir_test_ownership_annotations.test.h" |
| |
| namespace { |
| |
| TEST(OwnershipAnnotationOutput, TrickyCases) { |
| SyscallLibrary library; |
| ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_ownership_annotations, &library)); |
| |
| Writer writer; |
| ASSERT_TRUE(UserHeaderOutput(library, &writer)); |
| |
| EXPECT_EQ(writer.Out(), |
| R"(// Copyright 2019 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. |
| |
| // WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT. |
| |
| __EXPORT extern void zx_handleownership_fun0( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void _zx_handleownership_fun0( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void zx_handleownership_fun1( |
| const zx_handle_t* in ZX_RELEASE_HANDLE, |
| size_t num_in) __LEAF_FN; |
| |
| __EXPORT extern void _zx_handleownership_fun1( |
| const zx_handle_t* in ZX_RELEASE_HANDLE, |
| size_t num_in) __LEAF_FN; |
| |
| __EXPORT extern void zx_handleownership_fun2( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_USE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void _zx_handleownership_fun2( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_USE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void zx_handleownership_fun3( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void _zx_handleownership_fun3( |
| const zx_handle_t* in ZX_USE_HANDLE, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern zx_status_t zx_handleownership_fun4( |
| zx_handle_t in ZX_USE_HANDLE, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE) __NONNULL((2)) __LEAF_FN; |
| |
| __EXPORT extern zx_status_t _zx_handleownership_fun4( |
| zx_handle_t in ZX_USE_HANDLE, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE) __NONNULL((2)) __LEAF_FN; |
| |
| __EXPORT extern zx_status_t zx_handleownership_fun5( |
| zx_handle_t in ZX_RELEASE_HANDLE, |
| zx_handle_t* out ZX_USE_HANDLE) __NONNULL((2)) __LEAF_FN; |
| |
| __EXPORT extern zx_status_t _zx_handleownership_fun5( |
| zx_handle_t in ZX_RELEASE_HANDLE, |
| zx_handle_t* out ZX_USE_HANDLE) __NONNULL((2)) __LEAF_FN; |
| |
| __EXPORT extern void zx_handleownership_fun6( |
| const zx_handle_t* in ZX_USE_HANDLE_UNCHECKED, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE_UNCHECKED, |
| size_t num_out) __LEAF_FN; |
| |
| __EXPORT extern void _zx_handleownership_fun6( |
| const zx_handle_t* in ZX_USE_HANDLE_UNCHECKED, |
| size_t num_in, |
| zx_handle_t* out ZX_ACQUIRE_HANDLE_UNCHECKED, |
| size_t num_out) __LEAF_FN; |
| |
| )"); |
| } |
| |
| } // namespace |