mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
syscall: add aix to syscall_unix_test.go
This file was forgotten during the port of aix/ppc64. In order to make its tests passed, a few things were added: - Add termios.h to zerrors - Add AF_LOCAL = AF_UNIX as this constant doesn't exits natively on AIX - Fix the alignment in cmsghdr structure. TestPassFD doesn't work on AIX TL<2 because getsockname isn't working as expected with unix socket. Change-Id: I928705bfc78ada29e66df61fe97d8f379f8c739b Reviewed-on: https://go-review.googlesource.com/c/go/+/171339 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
77fa11dffb
commit
63cad96a9b
6 changed files with 129 additions and 1 deletions
|
|
@ -2,7 +2,7 @@
|
|||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
|
||||
// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
|
||||
|
||||
package syscall_test
|
||||
|
||||
|
|
@ -17,6 +17,7 @@ import (
|
|||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -131,6 +132,26 @@ func TestFcntlFlock(t *testing.T) {
|
|||
func TestPassFD(t *testing.T) {
|
||||
testenv.MustHaveExec(t)
|
||||
|
||||
if runtime.GOOS == "aix" {
|
||||
// Unix network isn't properly working on AIX 7.2 with Technical Level < 2
|
||||
out, err := exec.Command("oslevel", "-s").Output()
|
||||
if err != nil {
|
||||
t.Skipf("skipping on AIX because oslevel -s failed: %v", err)
|
||||
}
|
||||
if len(out) < len("7200-XX-ZZ-YYMM") { // AIX 7.2, Tech Level XX, Service Pack ZZ, date YYMM
|
||||
t.Skip("skipping on AIX because oslevel -s hasn't the right length")
|
||||
}
|
||||
aixVer := string(out[:4])
|
||||
tl, err := strconv.Atoi(string(out[5:7]))
|
||||
if err != nil {
|
||||
t.Skipf("skipping on AIX because oslevel -s output cannot be parsed: %v", err)
|
||||
}
|
||||
if aixVer < "7200" || (aixVer == "7200" && tl < 2) {
|
||||
t.Skip("skipped on AIX versions previous to 7.2 TL 2")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" {
|
||||
passFDChild()
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue