mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-05-10 19:26:46 +00:00
copy config.yaml to docker image enable external usage of dashboard package gofmt fix comment use packr for assets add gobuffalo/packr dependency add dependencies fix pointer issues add output-file option
96 lines
2.2 KiB
Go
96 lines
2.2 KiB
Go
// Copyright 2018 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 main
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"runtime"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/rogpeppe/go-internal/gotooltest"
|
|
"github.com/rogpeppe/go-internal/internal/os/execpath"
|
|
"github.com/rogpeppe/go-internal/testscript"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
os.Exit(testscript.RunMain(m, map[string]func() int{
|
|
"testscript": main1,
|
|
}))
|
|
}
|
|
|
|
func TestScripts(t *testing.T) {
|
|
if _, err := exec.LookPath("go"); err != nil {
|
|
t.Fatalf("need go in PATH for these tests")
|
|
}
|
|
|
|
var stderr bytes.Buffer
|
|
cmd := exec.Command("go", "env", "GOMOD")
|
|
cmd.Stderr = &stderr
|
|
out, err := cmd.Output()
|
|
if err != nil {
|
|
t.Fatalf("failed to run %v: %v\n%s", strings.Join(cmd.Args, " "), err, stderr.String())
|
|
}
|
|
gomod := string(out)
|
|
|
|
if gomod == "" {
|
|
t.Fatalf("apparently we are not running in module mode?")
|
|
}
|
|
|
|
p := testscript.Params{
|
|
Dir: "testdata",
|
|
Setup: func(env *testscript.Env) error {
|
|
env.Vars = append(env.Vars,
|
|
"GOINTERNALMODPATH="+filepath.Dir(gomod),
|
|
)
|
|
return nil
|
|
},
|
|
Cmds: map[string]func(ts *testscript.TestScript, neg bool, args []string){
|
|
"dropgofrompath": dropgofrompath,
|
|
"setfilegoproxy": setfilegoproxy,
|
|
},
|
|
}
|
|
if err := gotooltest.Setup(&p); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
testscript.Run(t, p)
|
|
}
|
|
|
|
func dropgofrompath(ts *testscript.TestScript, neg bool, args []string) {
|
|
if neg {
|
|
ts.Fatalf("unsupported: ! dropgofrompath")
|
|
}
|
|
var newPath []string
|
|
for _, d := range filepath.SplitList(ts.Getenv("PATH")) {
|
|
getenv := func(k string) string {
|
|
if k == "PATH" {
|
|
return d
|
|
}
|
|
return ts.Getenv(k)
|
|
}
|
|
if _, err := execpath.Look("go", getenv); err != nil {
|
|
newPath = append(newPath, d)
|
|
}
|
|
}
|
|
ts.Setenv("PATH", strings.Join(newPath, string(filepath.ListSeparator)))
|
|
}
|
|
|
|
func setfilegoproxy(ts *testscript.TestScript, neg bool, args []string) {
|
|
if neg {
|
|
ts.Fatalf("unsupported: ! setfilegoproxy")
|
|
}
|
|
path := args[0]
|
|
path = filepath.ToSlash(path)
|
|
// probably sufficient to just handle spaces
|
|
path = strings.Replace(path, " ", "%20", -1)
|
|
if runtime.GOOS == "windows" {
|
|
path = "/" + path
|
|
}
|
|
ts.Setenv("GOPROXY", "file://"+path)
|
|
}
|