Commit bd4b6ca7 authored by Clément Chigot's avatar Clément Chigot Committed by Ian Lance Taylor

all: fix tests for older versions of AIX 7.2

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: 's avatarIan Lance Taylor <iant@golang.org>
parent 5ee06f54
......@@ -7,7 +7,9 @@ package net
import (
"internal/testenv"
"os"
"os/exec"
"runtime"
"strconv"
"strings"
"testing"
)
......@@ -35,6 +37,16 @@ func testableNetwork(network string) bool {
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") {
......
......@@ -11,6 +11,7 @@ package time
import (
"errors"
"runtime"
"syscall"
)
......@@ -172,6 +173,14 @@ func LoadLocationFromTZData(name string, data []byte) (*Location, error) {
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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment