Merge pull request #11223 from ahmetalpbalkan/win-cli/preserve-SYSTEMROOT

integ-cli: also preserve SystemRoot env var
This commit is contained in:
Doug Davis 2015-03-07 14:07:44 -05:00
Родитель faa6fd40f4 d18689dff7
Коммит 7967fc8119
3 изменённых файлов: 20 добавлений и 9 удалений

Просмотреть файл

@ -9,7 +9,7 @@ import (
func TestCliProxyDisableProxyUnixSock(t *testing.T) {
cmd := exec.Command(dockerBinary, "info")
cmd.Env = appendDockerHostEnv([]string{"HTTP_PROXY=http://127.0.0.1:9999"})
cmd.Env = appendBaseEnv([]string{"HTTP_PROXY=http://127.0.0.1:9999"})
if out, _, err := runCommandWithOutput(cmd); err != nil {
t.Fatal(err, out)

Просмотреть файл

@ -869,7 +869,7 @@ func TestRunEnvironmentErase(t *testing.T) {
defer deleteAllContainers()
cmd := exec.Command(dockerBinary, "run", "-e", "FOO", "-e", "HOSTNAME", "busybox", "env")
cmd.Env = appendDockerHostEnv([]string{})
cmd.Env = appendBaseEnv([]string{})
out, _, err := runCommandWithOutput(cmd)
if err != nil {
@ -908,7 +908,7 @@ func TestRunEnvironmentOverride(t *testing.T) {
defer deleteAllContainers()
cmd := exec.Command(dockerBinary, "run", "-e", "HOSTNAME", "-e", "HOME=/root2", "busybox", "env")
cmd.Env = appendDockerHostEnv([]string{"HOSTNAME=bar"})
cmd.Env = appendBaseEnv([]string{"HOSTNAME=bar"})
out, _, err := runCommandWithOutput(cmd)
if err != nil {

Просмотреть файл

@ -919,12 +919,23 @@ func setupRegistry(t *testing.T) func() {
return func() { reg.Close() }
}
// appendDockerHostEnv adds given env slice DOCKER_HOST value if set in the
// environment. Useful when environment is cleared but we want to preserve DOCKER_HOST
// to execute tests against a remote daemon.
func appendDockerHostEnv(env []string) []string {
if dockerHost := os.Getenv("DOCKER_HOST"); dockerHost != "" {
env = append(env, fmt.Sprintf("DOCKER_HOST=%s", dockerHost))
// appendBaseEnv appends the minimum set of environment variables to exec the
// docker cli binary for testing with correct configuration to the given env
// list.
func appendBaseEnv(env []string) []string {
preserveList := []string{
// preserve remote test host
"DOCKER_HOST",
// windows: requires preserving SystemRoot, otherwise dial tcp fails
// with "GetAddrInfoW: A non-recoverable error occurred during a database lookup."
"SystemRoot",
}
for _, key := range preserveList {
if val := os.Getenv(key); val != "" {
env = append(env, fmt.Sprintf("%s=%s", key, val))
}
}
return env
}