Initial commit
This commit is contained in:
131
vendor/github.com/hyperhq/hypercli/integration-cli/docker_test_vars.go
generated
vendored
Executable file
131
vendor/github.com/hyperhq/hypercli/integration-cli/docker_test_vars.go
generated
vendored
Executable file
@@ -0,0 +1,131 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"github.com/docker/docker/pkg/reexec"
|
||||
)
|
||||
|
||||
var (
|
||||
// the docker binary to use
|
||||
dockerBinary = "hyper"
|
||||
|
||||
//debugEndpoint = "/version"
|
||||
debugEndpoint = ""
|
||||
|
||||
// the private registry image to use for tests involving the registry
|
||||
registryImageName = "registry"
|
||||
|
||||
//image for testing port related test case
|
||||
singlePortImage = "hyperhq/test-port-single"
|
||||
multiPortImage = "hyperhq/test-port-list"
|
||||
rangePortImage = "hyperhq/test-port-range"
|
||||
mixPortocalPortImage = "hyperhq/test-port-mix"
|
||||
|
||||
// the private registry to use for tests
|
||||
privateRegistryURL = "127.0.0.1:5000"
|
||||
|
||||
// TODO Windows CI. These are incorrect and need fixing into
|
||||
// platform specific pieces.
|
||||
runtimePath = "/var/run/docker"
|
||||
execDriverPath = runtimePath + "/execdriver/native"
|
||||
|
||||
workingDirectory string
|
||||
|
||||
// isLocalDaemon is true if the daemon under test is on the same
|
||||
// host as the CLI.
|
||||
isLocalDaemon bool
|
||||
|
||||
// daemonPlatform is held globally so that tests can make intelligent
|
||||
// decisions on how to configure themselves according to the platform
|
||||
// of the daemon. This is initialized in docker_utils by sending
|
||||
// a version call to the daemon and examining the response header.
|
||||
daemonPlatform string
|
||||
|
||||
// windowsDaemonKV is used on Windows to distinguish between different
|
||||
// versions. This is necessary to enable certain tests based on whether
|
||||
// the platform supports it. For example, Windows Server 2016 TP3 does
|
||||
// not support volumes, but TP4 does.
|
||||
windowsDaemonKV int
|
||||
|
||||
// daemonDefaultImage is the name of the default image to use when running
|
||||
// tests. This is platform dependent.
|
||||
daemonDefaultImage string
|
||||
|
||||
// For a local daemon on Linux, these values will be used for testing
|
||||
// user namespace support as the standard graph path(s) will be
|
||||
// appended with the root remapped uid.gid prefix
|
||||
dockerBasePath string
|
||||
volumesConfigPath string
|
||||
containerStoragePath string
|
||||
)
|
||||
|
||||
const (
|
||||
// WindowsBaseImage is the name of the base image for Windows testing
|
||||
WindowsBaseImage = "windowsservercore"
|
||||
|
||||
// DefaultImage is the name of the base image for the majority of tests that
|
||||
// are run across suites
|
||||
DefaultImage = "busybox"
|
||||
)
|
||||
|
||||
func init() {
|
||||
reexec.Init()
|
||||
if dockerBin := os.Getenv("DOCKER_BINARY"); dockerBin != "" {
|
||||
dockerBinary = dockerBin
|
||||
}
|
||||
var err error
|
||||
dockerBinary, err = exec.LookPath(dockerBinary)
|
||||
if err != nil {
|
||||
fmt.Printf("ERROR: couldn't resolve full path to the Docker binary (%v)", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
if registryImage := os.Getenv("REGISTRY_IMAGE"); registryImage != "" {
|
||||
registryImageName = registryImage
|
||||
}
|
||||
if registry := os.Getenv("REGISTRY_URL"); registry != "" {
|
||||
privateRegistryURL = registry
|
||||
}
|
||||
workingDirectory, _ = os.Getwd()
|
||||
|
||||
// Deterministically working out the environment in which CI is running
|
||||
// to evaluate whether the daemon is local or remote is not possible through
|
||||
// a build tag.
|
||||
//
|
||||
// For example Windows to Linux CI under Jenkins tests the 64-bit
|
||||
// Windows binary build with the daemon build tag, but calls a remote
|
||||
// Linux daemon.
|
||||
//
|
||||
// We can't just say if Windows then assume the daemon is local as at
|
||||
// some point, we will be testing the Windows CLI against a Windows daemon.
|
||||
//
|
||||
// Similarly, it will be perfectly valid to also run CLI tests from
|
||||
// a Linux CLI (built with the daemon tag) against a Windows daemon.
|
||||
if len(os.Getenv("DOCKER_REMOTE_DAEMON")) > 0 {
|
||||
isLocalDaemon = false
|
||||
} else {
|
||||
isLocalDaemon = true
|
||||
}
|
||||
|
||||
// TODO Windows CI. This are incorrect and need fixing into
|
||||
// platform specific pieces.
|
||||
// This is only used for a tests with local daemon true (Linux-only today)
|
||||
// default is "/var/lib/docker", but we'll try and ask the
|
||||
// /info endpoint for the specific root dir
|
||||
dockerBasePath = "/var/lib/docker"
|
||||
type Info struct {
|
||||
DockerRootDir string
|
||||
}
|
||||
var i Info
|
||||
status, b, err := sockRequest("GET", "/info", nil)
|
||||
if err == nil && status == 200 {
|
||||
if err = json.Unmarshal(b, &i); err == nil {
|
||||
dockerBasePath = i.DockerRootDir
|
||||
}
|
||||
}
|
||||
volumesConfigPath = dockerBasePath + "/volumes"
|
||||
containerStoragePath = dockerBasePath + "/containers"
|
||||
}
|
||||
Reference in New Issue
Block a user