This commit fixes tests which fail on some versions of AIX 7.2 due
to internal bugs.
getsockname isn't working properly with unix networks.
Timezone files aren't returning a correct output.
Change-Id: I4ff15683912be62ab86dfbeeb63b73513404d086
Reviewed-on: https://go-review.googlesource.com/c/146940
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
import (
"internal/testenv"
"os"
+ "os/exec"
"runtime"
+ "strconv"
"strings"
"testing"
)
switch runtime.GOOS {
case "android", "nacl", "plan9", "windows":
return false
+ case "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 {
+ return false
+ }
+ if tl, err := strconv.Atoi(string(out[5:7])); err != nil || tl < 2 {
+ return false
+ }
+ return true
}
// iOS does not support unix, unixgram.
if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
import (
"errors"
+ "runtime"
"syscall"
)
return nil, badData
}
zone[i].name = byteString(abbrev[b:])
+ if runtime.GOOS == "aix" && len(name) > 8 && (name[:8] == "Etc/GMT+" || name[:8] == "Etc/GMT-") {
+ // There is a bug with AIX 7.2 TL 0 with files in Etc,
+ // GMT+1 will return GMT-1 instead of GMT+1 or -01.
+ if name != "Etc/GMT+0" {
+ // GMT+0 is OK
+ zone[i].name = name[4:]
+ }
+ }
}
// Now the transition time info.