mirror of https://github.com/golang/go.git
126 lines
3.3 KiB
Go
126 lines
3.3 KiB
Go
// Copyright 2021 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package buildcfg
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestConfigFlags(t *testing.T) {
|
|
os.Setenv("GOAMD64", "v1")
|
|
if goamd64() != 1 {
|
|
t.Errorf("Wrong parsing of GOAMD64=v1")
|
|
}
|
|
os.Setenv("GOAMD64", "v4")
|
|
if goamd64() != 4 {
|
|
t.Errorf("Wrong parsing of GOAMD64=v4")
|
|
}
|
|
Error = nil
|
|
os.Setenv("GOAMD64", "1")
|
|
if goamd64(); Error == nil {
|
|
t.Errorf("Wrong parsing of GOAMD64=1")
|
|
}
|
|
|
|
os.Setenv("GORISCV64", "rva20u64")
|
|
if goriscv64() != 20 {
|
|
t.Errorf("Wrong parsing of RISCV64=rva20u64")
|
|
}
|
|
os.Setenv("GORISCV64", "rva22u64")
|
|
if goriscv64() != 22 {
|
|
t.Errorf("Wrong parsing of RISCV64=rva22u64")
|
|
}
|
|
Error = nil
|
|
os.Setenv("GORISCV64", "rva22")
|
|
if _ = goriscv64(); Error == nil {
|
|
t.Errorf("Wrong parsing of RISCV64=rva22")
|
|
}
|
|
Error = nil
|
|
os.Setenv("GOARM64", "v7.0")
|
|
if _ = goarm64(); Error == nil {
|
|
t.Errorf("Wrong parsing of GOARM64=7.0")
|
|
}
|
|
Error = nil
|
|
os.Setenv("GOARM64", "8.0")
|
|
if _ = goarm64(); Error == nil {
|
|
t.Errorf("Wrong parsing of GOARM64=8.0")
|
|
}
|
|
Error = nil
|
|
os.Setenv("GOARM64", "v8.0,lsb")
|
|
if _ = goarm64(); Error == nil {
|
|
t.Errorf("Wrong parsing of GOARM64=v8.0,lsb")
|
|
}
|
|
os.Setenv("GOARM64", "v8.0,lse")
|
|
if goarm64().Version != "v8.0" || goarm64().LSE != true || goarm64().Crypto != false {
|
|
t.Errorf("Wrong parsing of GOARM64=v8.0,lse")
|
|
}
|
|
os.Setenv("GOARM64", "v8.0,crypto")
|
|
if goarm64().Version != "v8.0" || goarm64().LSE != false || goarm64().Crypto != true {
|
|
t.Errorf("Wrong parsing of GOARM64=v8.0,crypto")
|
|
}
|
|
os.Setenv("GOARM64", "v8.0,crypto,lse")
|
|
if goarm64().Version != "v8.0" || goarm64().LSE != true || goarm64().Crypto != true {
|
|
t.Errorf("Wrong parsing of GOARM64=v8.0,crypto,lse")
|
|
}
|
|
os.Setenv("GOARM64", "v8.0,lse,crypto")
|
|
if goarm64().Version != "v8.0" || goarm64().LSE != true || goarm64().Crypto != true {
|
|
t.Errorf("Wrong parsing of GOARM64=v8.0,lse,crypto")
|
|
}
|
|
os.Setenv("GOARM64", "v9.0")
|
|
if goarm64().Version != "v9.0" || goarm64().LSE != true || goarm64().Crypto != false {
|
|
t.Errorf("Wrong parsing of GOARM64=v9.0")
|
|
}
|
|
}
|
|
|
|
func TestGoarm64FeaturesSupports(t *testing.T) {
|
|
g, _ := ParseGoarm64("v9.3")
|
|
|
|
if !g.Supports("v9.3") {
|
|
t.Errorf("Wrong goarm64Features.Supports for v9.3, v9.3")
|
|
}
|
|
|
|
if g.Supports("v9.4") {
|
|
t.Errorf("Wrong goarm64Features.Supports for v9.3, v9.4")
|
|
}
|
|
|
|
if !g.Supports("v8.8") {
|
|
t.Errorf("Wrong goarm64Features.Supports for v9.3, v8.8")
|
|
}
|
|
|
|
if g.Supports("v8.9") {
|
|
t.Errorf("Wrong goarm64Features.Supports for v9.3, v8.9")
|
|
}
|
|
|
|
if g.Supports(",lse") {
|
|
t.Errorf("Wrong goarm64Features.Supports for v9.3, ,lse")
|
|
}
|
|
}
|
|
|
|
func TestGogoarchTags(t *testing.T) {
|
|
old_goarch := GOARCH
|
|
old_goarm64 := GOARM64
|
|
|
|
GOARCH = "arm64"
|
|
|
|
os.Setenv("GOARM64", "v9.5")
|
|
GOARM64 = goarm64()
|
|
tags := gogoarchTags()
|
|
want := []string{"arm64.v9.0", "arm64.v9.1", "arm64.v9.2", "arm64.v9.3", "arm64.v9.4", "arm64.v9.5",
|
|
"arm64.v8.0", "arm64.v8.1", "arm64.v8.2", "arm64.v8.3", "arm64.v8.4", "arm64.v8.5", "arm64.v8.6", "arm64.v8.7", "arm64.v8.8", "arm64.v8.9"}
|
|
if len(tags) != len(want) {
|
|
t.Errorf("Wrong number of tags for GOARM64=v9.5")
|
|
} else {
|
|
for i, v := range tags {
|
|
if v != want[i] {
|
|
t.Error("Wrong tags for GOARM64=v9.5")
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
GOARCH = old_goarch
|
|
GOARM64 = old_goarm64
|
|
}
|