1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-10 03:47:03 +02:00
goreleaser/internal/builders/golang/targets_test.go

141 lines
2.8 KiB
Go
Raw Normal View History

package golang
2017-04-27 01:08:25 +02:00
import (
"fmt"
"testing"
"github.com/goreleaser/goreleaser/pkg/config"
"github.com/stretchr/testify/require"
2017-04-27 01:08:25 +02:00
)
func TestAllBuildTargets(t *testing.T) {
2017-07-01 18:21:07 +02:00
var build = config.Build{
Goos: []string{
"linux",
"darwin",
"freebsd",
"openbsd",
"js",
2017-07-01 18:21:07 +02:00
},
Goarch: []string{
"386",
"amd64",
"arm",
"arm64",
"wasm",
"mips",
"mips64",
"mipsle",
"mips64le",
"riscv64",
2017-07-01 18:21:07 +02:00
},
Goarm: []string{
"6",
"7",
},
Gomips: []string{
"hardfloat",
"softfloat",
},
2017-07-01 18:21:07 +02:00
Ignore: []config.IgnoredBuild{
{
Goos: "linux",
Goarch: "arm",
Goarm: "7",
}, {
Goos: "openbsd",
Goarch: "arm",
}, {
Goarch: "mips64",
Gomips: "hardfloat",
}, {
Goarch: "mips64le",
Gomips: "softfloat",
2017-04-27 01:08:25 +02:00
},
},
}
result, err := matrix(build)
require.NoError(t, err)
require.Equal(t, []string{
2018-01-22 02:44:06 +02:00
"linux_386",
"linux_amd64",
"linux_arm_6",
"linux_arm64",
"linux_mips_hardfloat",
"linux_mips_softfloat",
"linux_mips64_softfloat",
"linux_mipsle_hardfloat",
"linux_mipsle_softfloat",
"linux_mips64le_hardfloat",
"linux_riscv64",
2018-01-22 02:44:06 +02:00
"darwin_amd64",
"freebsd_386",
"freebsd_amd64",
"freebsd_arm_6",
"freebsd_arm_7",
"freebsd_arm64",
2018-01-22 02:44:06 +02:00
"openbsd_386",
"openbsd_amd64",
"openbsd_arm64",
"js_wasm",
}, result)
2017-04-27 01:08:25 +02:00
}
2017-07-07 01:13:02 +02:00
func TestGoosGoarchCombos(t *testing.T) {
2017-04-27 01:08:25 +02:00
var platforms = []struct {
2017-07-07 01:13:02 +02:00
os string
arch string
valid bool
2017-04-27 01:08:25 +02:00
}{
2017-07-07 01:13:02 +02:00
// valid targets:
{"aix", "ppc64", true},
{"android", "386", true},
{"android", "amd64", true},
2017-07-07 01:13:02 +02:00
{"android", "arm", true},
{"android", "arm64", true},
2017-07-07 01:13:02 +02:00
{"darwin", "amd64", true},
{"dragonfly", "amd64", true},
{"freebsd", "386", true},
{"freebsd", "amd64", true},
{"freebsd", "arm", true},
{"illumos", "amd64", true},
2017-07-07 01:13:02 +02:00
{"linux", "386", true},
{"linux", "amd64", true},
{"linux", "arm", true},
{"linux", "arm64", true},
{"linux", "mips", true},
{"linux", "mipsle", true},
{"linux", "mips64", true},
{"linux", "mips64le", true},
{"linux", "ppc64", true},
{"linux", "ppc64le", true},
2017-07-26 09:04:03 +02:00
{"linux", "s390x", true},
{"linux", "riscv64", true},
2017-07-07 01:13:02 +02:00
{"netbsd", "386", true},
{"netbsd", "amd64", true},
{"netbsd", "arm", true},
{"openbsd", "386", true},
{"openbsd", "amd64", true},
{"openbsd", "arm", true},
{"plan9", "386", true},
{"plan9", "amd64", true},
{"plan9", "arm", true},
2017-07-07 01:13:02 +02:00
{"solaris", "amd64", true},
{"windows", "386", true},
{"windows", "amd64", true},
{"js", "wasm", true},
2017-07-07 01:13:02 +02:00
// invalid targets
{"darwin", "386", false},
2017-07-07 01:13:02 +02:00
{"darwin", "arm", false},
{"darwin", "arm64", false},
{"windows", "arm", false},
{"windows", "arm64", false},
{"windows", "riscv64", false},
2017-04-27 01:08:25 +02:00
}
for _, p := range platforms {
2017-07-07 01:13:02 +02:00
t.Run(fmt.Sprintf("%v %v valid=%v", p.os, p.arch, p.valid), func(t *testing.T) {
require.Equal(t, p.valid, valid(target{p.os, p.arch, "", ""}))
2017-04-27 01:08:25 +02:00
})
}
}