X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f4ca9ad94a6bb006d1f3c7ba207837f1736d1247..02adf6134d262d17066dbc48d3fb85c8861c8349:/sdk/go/arvadostest/run_servers.go diff --git a/sdk/go/arvadostest/run_servers.go b/sdk/go/arvadostest/run_servers.go index c61b68b319..c567560bc1 100644 --- a/sdk/go/arvadostest/run_servers.go +++ b/sdk/go/arvadostest/run_servers.go @@ -1,23 +1,41 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + package arvadostest import ( "bufio" "bytes" + "fmt" + "io/ioutil" "log" "os" "os/exec" + "path" "strconv" "strings" ) var authSettings = make(map[string]string) +// ResetEnv resets test env func ResetEnv() { for k, v := range authSettings { os.Setenv(k, v) } } +// APIHost returns the address:port of the current test server. +func APIHost() string { + h := authSettings["ARVADOS_API_HOST"] + if h == "" { + log.Fatal("arvadostest.APIHost() was called but authSettings is not populated") + } + return h +} + +// ParseAuthSettings parses auth settings from given input func ParseAuthSettings(authScript []byte) { scanner := bufio.NewScanner(bytes.NewReader(authScript)) for scanner.Scan() { @@ -36,7 +54,7 @@ func ParseAuthSettings(authScript []byte) { log.Printf("authSettings: %v", authSettings) } -var pythonTestDir string = "" +var pythonTestDir string func chdirToPythonTests() { if pythonTestDir != "" { @@ -59,6 +77,7 @@ func chdirToPythonTests() { } } +// StartAPI starts test API server func StartAPI() { cwd, _ := os.Getwd() defer os.Chdir(cwd) @@ -76,6 +95,7 @@ func StartAPI() { ResetEnv() } +// StopAPI stops test API server func StopAPI() { cwd, _ := os.Getwd() defer os.Chdir(cwd) @@ -132,3 +152,24 @@ func bgRun(cmd *exec.Cmd) { log.Fatalf("%+v: %s", cmd.Args, err) } } + +// CreateBadPath creates a tmp dir, appends given string and returns that path +// This will guarantee that the path being returned does not exist +func CreateBadPath() (badpath string, err error) { + tempdir, err := ioutil.TempDir("", "bad") + if err != nil { + return "", fmt.Errorf("Could not create temporary directory for bad path: %v", err) + } + badpath = path.Join(tempdir, "bad") + return badpath, nil +} + +// DestroyBadPath deletes the tmp dir created by the previous CreateBadPath call +func DestroyBadPath(badpath string) error { + tempdir := path.Join(badpath, "..") + err := os.Remove(tempdir) + if err != nil { + return fmt.Errorf("Could not remove bad path temporary directory %v: %v", tempdir, err) + } + return nil +}