From ac0b2f95a5f25e9e331352c93e38f9b29bee9ccc Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Sun, 17 Mar 2024 01:02:16 +1100 Subject: syscall: export Tc{get,set}pgrp for testing Provide appropriate implementations of Tc{get,set}pgrp and export these for use in the TestForeground* tests in exec_unix_test.go. This avoids calling ioctl via syscall.Syscall on BSDs. Fixes #59667 Updates #63900 Change-Id: Ice4dcedae1f0931c026bddf33043d3864a52d44e Reviewed-on: https://go-review.googlesource.com/c/go/+/572155 LUCI-TryBot-Result: Go LUCI Reviewed-by: David Chase TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Run-TryBot: Joel Sing --- src/syscall/export_linux_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/syscall/export_linux_test.go') diff --git a/src/syscall/export_linux_test.go b/src/syscall/export_linux_test.go index 3aa877cfe3..9bcf73e771 100644 --- a/src/syscall/export_linux_test.go +++ b/src/syscall/export_linux_test.go @@ -4,6 +4,10 @@ package syscall +import ( + "unsafe" +) + var ( RawSyscallNoError = rawSyscallNoError ForceClone3 = &forceClone3 @@ -12,3 +16,19 @@ var ( const ( Sys_GETEUID = sys_GETEUID ) + +func Tcgetpgrp(fd int) (pgid int32, err error) { + _, _, errno := Syscall6(SYS_IOCTL, uintptr(fd), uintptr(TIOCGPGRP), uintptr(unsafe.Pointer(&pgid)), 0, 0, 0) + if errno != 0 { + return -1, errno + } + return pgid, nil +} + +func Tcsetpgrp(fd int, pgid int32) (err error) { + _, _, errno := Syscall6(SYS_IOCTL, uintptr(fd), uintptr(TIOCSPGRP), uintptr(unsafe.Pointer(&pgid)), 0, 0, 0) + if errno != 0 { + return errno + } + return nil +} -- cgit v1.3-5-g9baa