Use the host target in the multi-module launcher
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -81,6 +82,11 @@ func TestMultiModuleLauncherUsesSelectedModuleAndProfile(t *testing.T) {
|
||||
shim := `#!/bin/sh
|
||||
set -eu
|
||||
printf 'cwd=%s args=%s\n' "$PWD" "$*" >> "$RELEASEKIT_TEST_GO_LOG"
|
||||
if [ "$1" = env ]; then
|
||||
case "$2" in GOHOSTOS) printf '%s\n' "$RELEASEKIT_TEST_HOST_OS" ;; GOHOSTARCH) printf '%s\n' "$RELEASEKIT_TEST_HOST_ARCH" ;; esac
|
||||
exit 0
|
||||
fi
|
||||
case " $* " in *" -deps "*) printf 'target=%s/%s\n' "$GOOS" "$GOARCH" >> "$RELEASEKIT_TEST_GO_LOG" ;; esac
|
||||
modfile=
|
||||
for argument in "$@"; do
|
||||
case "$argument" in -modfile=*) modfile=${argument#-modfile=} ;; esac
|
||||
@@ -98,6 +104,11 @@ fi
|
||||
t.Setenv("RELEASEKIT_MODULE_MAP", mapPath)
|
||||
t.Setenv("RELEASEKIT_TEST_GO_LOG", goLog)
|
||||
t.Setenv("RELEASEKIT_TEST_TOOL_ARGS", argsLog)
|
||||
t.Setenv("RELEASEKIT_TEST_HOST_OS", runtime.GOOS)
|
||||
t.Setenv("RELEASEKIT_TEST_HOST_ARCH", runtime.GOARCH)
|
||||
foreignOS, foreignArch := foreignTarget()
|
||||
t.Setenv("GOOS", foreignOS)
|
||||
t.Setenv("GOARCH", foreignArch)
|
||||
launcher := filepath.Join(repository, "release.sh")
|
||||
command := exec.Command(launcher, "with space", "v1.2.4")
|
||||
var stdout, stderr bytes.Buffer
|
||||
@@ -115,6 +126,9 @@ fi
|
||||
if !strings.Contains(string(goCommands), "cwd="+wantModule) || !strings.Contains(string(goCommands), "v0.2.299") || strings.Contains(string(goCommands), "v0.2.197") {
|
||||
t.Fatalf("tool bootstrap did not use selected module metadata: %s", goCommands)
|
||||
}
|
||||
if !strings.Contains(string(goCommands), "target="+runtime.GOOS+"/"+runtime.GOARCH) {
|
||||
t.Fatalf("dependency inspection did not use host target: %s", goCommands)
|
||||
}
|
||||
toolArgs, err := os.ReadFile(argsLog)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -152,6 +166,9 @@ func TestMultiModuleLauncherRunsToolFromSelectedDependency(t *testing.T) {
|
||||
t.Setenv("GOPROXY", "file://"+filepath.ToSlash(proxy))
|
||||
t.Setenv("GOSUMDB", "off")
|
||||
t.Setenv("GOTOOLCHAIN", "local")
|
||||
foreignOS, foreignArch := foreignTarget()
|
||||
t.Setenv("GOOS", foreignOS)
|
||||
t.Setenv("GOARCH", foreignArch)
|
||||
moduleBefore, err := os.ReadFile(filepath.Join(repository, "integrations", "ckconfig", "go.mod"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -203,6 +220,17 @@ func TestMultiModuleLauncherRunsToolFromSelectedDependency(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func foreignTarget() (string, string) {
|
||||
osName, arch := "windows", "arm64"
|
||||
if runtime.GOOS == osName {
|
||||
osName = "linux"
|
||||
}
|
||||
if runtime.GOARCH == arch {
|
||||
arch = "amd64"
|
||||
}
|
||||
return osName, arch
|
||||
}
|
||||
|
||||
func runModuleSelector(t *testing.T, helper, mode, value, mapPath string) string {
|
||||
t.Helper()
|
||||
command := exec.Command("sh", helper, mode, value)
|
||||
|
||||
Reference in New Issue
Block a user