| // 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_go_reserved_words.test.h" | 
 | #include "tools/kazoo/test_ir_test_selection.test.h" | 
 |  | 
 | namespace { | 
 |  | 
 | TEST(GoSyscallsStubs, Selection) { | 
 |   SyscallLibrary library; | 
 |   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_selection, &library)); | 
 |  | 
 |   Writer writer; | 
 |   ASSERT_TRUE(GoSyscallsStubs(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. | 
 |  | 
 | package zx | 
 |  | 
 | import "unsafe" | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_selection_clock_get(clock_id uint32, out *Time) Status | 
 |  | 
 | )"); | 
 | } | 
 |  | 
 | TEST(GoSyscallsStubs, ReservedWords) { | 
 |   SyscallLibrary library; | 
 |   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_go_reserved_words, &library)); | 
 |  | 
 |   Writer writer; | 
 |   ASSERT_TRUE(GoSyscallsStubs(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. | 
 |  | 
 | package zx | 
 |  | 
 | import "unsafe" | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_reservedwords_my_func(typ uint32, funk uint32, g_ uint32) Status | 
 |  | 
 | //go:noescape | 
 | //go:nosplit | 
 | func Sys_reservedwords_pci_types(bar *uintptr, initarg *uintptr, device_info *uintptr) Status | 
 |  | 
 | )"); | 
 | } | 
 |  | 
 | TEST(GoSyscallsAsm, Selection) { | 
 |   SyscallLibrary library; | 
 |   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_selection, &library)); | 
 |  | 
 |   Writer writer; | 
 |   ASSERT_TRUE(GoSyscallsAsm(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. | 
 |  | 
 | #include "textflag.h" | 
 |  | 
 | // func Sys_selection_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status | 
 | TEXT ·Sys_selection_futex_requeue(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_futex_requeue(SB) | 
 |  | 
 | // func Sys_selection_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status | 
 | TEXT ·Sys_selection_object_wait_one(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_object_wait_one(SB) | 
 |  | 
 | // func Sys_selection_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status | 
 | TEXT ·Sys_selection_ktrace_read(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_ktrace_read(SB) | 
 |  | 
 | // func Sys_selection_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status | 
 | TEXT ·Sys_selection_pci_cfg_pio_rw(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_pci_cfg_pio_rw(SB) | 
 |  | 
 | // func Sys_selection_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status | 
 | TEXT ·Sys_selection_job_set_policy(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_job_set_policy(SB) | 
 |  | 
 | // func Sys_selection_clock_get(clock_id uint32, out *Time) Status | 
 | TEXT ·Sys_selection_clock_get(SB),NOSPLIT,$0 | 
 | 	JMP runtime·vdsoCall_zx_selection_clock_get(SB) | 
 |  | 
 | )"); | 
 | } | 
 |  | 
 | }  // namespace |