mirror of https://github.com/knative/func.git
48 lines
940 B
Go
48 lines
940 B
Go
package docker_test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
winio "github.com/Microsoft/go-winio"
|
|
"github.com/docker/docker/client"
|
|
|
|
"knative.dev/func/pkg/docker"
|
|
)
|
|
|
|
func TestNewClientWinPipe(t *testing.T) {
|
|
|
|
const testNPipe = "test-npipe"
|
|
|
|
startMockDaemonWinPipe(t, testNPipe)
|
|
t.Setenv("DOCKER_HOST", fmt.Sprintf("npipe:////./pipe/%s", testNPipe))
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*1)
|
|
defer cancel()
|
|
|
|
dockerClient, dockerHostToMount, err := docker.NewClient(client.DefaultDockerHost)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
defer dockerClient.Close()
|
|
|
|
if dockerHostToMount != "" {
|
|
t.Error("dockerHostToMount should be empty for npipe")
|
|
}
|
|
|
|
_, err = dockerClient.Ping(ctx)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|
|
|
|
func startMockDaemonWinPipe(t *testing.T, pipeName string) {
|
|
p, err := winio.ListenPipe(`\\.\pipe\`+pipeName, nil)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
startMockDaemon(t, p)
|
|
}
|