go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/discovery/docker_engine/client_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package docker_engine_test
     5  
     6  import (
     7  	"os"
     8  	"strings"
     9  	"testing"
    10  
    11  	"github.com/docker/docker/client"
    12  	"github.com/stretchr/testify/assert"
    13  	"go.mondoo.com/cnquery/providers/os/resources/discovery/docker_engine"
    14  )
    15  
    16  func resetEnv(env []string) {
    17  }
    18  
    19  func TestDockerEnvParsing(t *testing.T) {
    20  	// reset env from https://golang.org/src/os/env_test.go
    21  	defer func(origEnv []string) {
    22  		for _, pair := range origEnv {
    23  			i := strings.Index(pair[1:], "=") + 1
    24  			if err := os.Setenv(pair[:i], pair[i+1:]); err != nil {
    25  				t.Errorf("Setenv(%q, %q) failed during reset: %v", pair[:i], pair[i+1:], err)
    26  			}
    27  		}
    28  	}(os.Environ())
    29  
    30  	cli, err := client.NewClientWithOpts(docker_engine.FromDockerEnv)
    31  	assert.Nil(t, err)
    32  	assert.Equal(t, "unix:///var/run/docker.sock", cli.DaemonHost())
    33  
    34  	os.Setenv("DOCKER_HOST", "tcp://0.0.0.0:2375")
    35  	cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    36  	assert.Nil(t, err)
    37  	assert.Equal(t, "tcp://0.0.0.0:2375", cli.DaemonHost())
    38  
    39  	os.Setenv("DOCKER_HOST", "unix:///var/run/docker.sock")
    40  	cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    41  	assert.Nil(t, err)
    42  	assert.Equal(t, "unix:///var/run/docker.sock", cli.DaemonHost())
    43  
    44  	os.Setenv("DOCKER_HOST", "192.186.1.1")
    45  	cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    46  	assert.Nil(t, err)
    47  	assert.Equal(t, "tcp://192.186.1.1:2375", cli.DaemonHost())
    48  
    49  	os.Setenv("DOCKER_HOST", "http://192.186.1.1")
    50  	_, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    51  	assert.NotNil(t, err)
    52  
    53  	os.Setenv("DOCKER_HOST", "tcp://192.186.1.1")
    54  	cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    55  	assert.Nil(t, err)
    56  	assert.Equal(t, "tcp://192.186.1.1:2375", cli.DaemonHost())
    57  
    58  	os.Setenv("DOCKER_HOST", "tcp://192.168.59.103:2377")
    59  	cli, err = client.NewClientWithOpts(docker_engine.FromDockerEnv)
    60  	assert.Nil(t, err)
    61  	assert.Equal(t, "tcp://192.168.59.103:2377", cli.DaemonHost())
    62  }