mirror of https://github.com/docker/docs.git
tests for utils/utils.go
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
parent
6810f67463
commit
3e69997dcf
10
script/test
10
script/test
|
|
@ -1,4 +1,12 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
ARGS=$@
|
||||
if [ -z "$ARGS" ]; then
|
||||
ARGS="./..."
|
||||
fi
|
||||
|
||||
echo $ARGS
|
||||
|
||||
docker build -t docker-machine .
|
||||
exec docker run --rm docker-machine go test -v -short ./...
|
||||
exec docker run --rm docker-machine godep go test -v -short $ARGS
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
package utils
|
||||
|
|
@ -0,0 +1 @@
|
|||
package utils
|
||||
|
|
@ -7,14 +7,17 @@ import (
|
|||
"runtime"
|
||||
)
|
||||
|
||||
func GetHomeDir() string {
|
||||
if runtime.GOOS == "windows" {
|
||||
return os.Getenv("USERPROFILE")
|
||||
}
|
||||
return os.Getenv("HOME")
|
||||
}
|
||||
|
||||
func GetBaseDir() string {
|
||||
baseDir := os.Getenv("MACHINE_DIR")
|
||||
if baseDir == "" {
|
||||
if runtime.GOOS == "windows" {
|
||||
baseDir = os.Getenv("USERPROFILE")
|
||||
} else {
|
||||
baseDir = os.Getenv("HOME")
|
||||
}
|
||||
baseDir = GetHomeDir()
|
||||
}
|
||||
return baseDir
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,144 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGetBaseDir(t *testing.T) {
|
||||
homeDir := GetHomeDir()
|
||||
baseDir := GetBaseDir()
|
||||
|
||||
if strings.Index(homeDir, baseDir) != 0 {
|
||||
t.Fatalf("expected base dir with prefix %s; received %s", homeDir, baseDir)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetCustomBaseDir(t *testing.T) {
|
||||
root := "/tmp"
|
||||
os.Setenv("MACHINE_DIR", root)
|
||||
baseDir := GetBaseDir()
|
||||
|
||||
if strings.Index(root, baseDir) != 0 {
|
||||
t.Fatalf("expected base dir with prefix %s; received %s", root, baseDir)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetDockerDir(t *testing.T) {
|
||||
root := "/tmp"
|
||||
os.Setenv("MACHINE_DIR", root)
|
||||
dockerDir := GetDockerDir()
|
||||
|
||||
if strings.Index(dockerDir, root) != 0 {
|
||||
t.Fatalf("expected docker dir with prefix %s; received %s", root, dockerDir)
|
||||
}
|
||||
|
||||
path, filename := path.Split(dockerDir)
|
||||
if strings.Index(path, root) != 0 {
|
||||
t.Fatalf("expected base path of %s; received %s", root, path)
|
||||
}
|
||||
if filename != ".docker" {
|
||||
t.Fatalf("expected docker dir \".docker\"; received %s", filename)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetMachineDir(t *testing.T) {
|
||||
root := "/tmp"
|
||||
os.Setenv("MACHINE_DIR", root)
|
||||
machineDir := GetMachineDir()
|
||||
|
||||
if strings.Index(machineDir, root) != 0 {
|
||||
t.Fatalf("expected machine dir with prefix %s; received %s", root, machineDir)
|
||||
}
|
||||
|
||||
path, filename := path.Split(machineDir)
|
||||
if strings.Index(path, root) != 0 {
|
||||
t.Fatalf("expected base path of %s; received %s", root, path)
|
||||
}
|
||||
if filename != "machines" {
|
||||
t.Fatalf("expected machine dir \"machines\"; received %s", filename)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetMachineClientCertDir(t *testing.T) {
|
||||
root := "/tmp"
|
||||
os.Setenv("MACHINE_DIR", root)
|
||||
clientDir := GetMachineClientCertDir()
|
||||
|
||||
if strings.Index(clientDir, root) != 0 {
|
||||
t.Fatalf("expected machine client cert dir with prefix %s; received %s", root, clientDir)
|
||||
}
|
||||
|
||||
path, filename := path.Split(clientDir)
|
||||
if strings.Index(path, root) != 0 {
|
||||
t.Fatalf("expected base path of %s; received %s", root, path)
|
||||
}
|
||||
if filename != ".client" {
|
||||
t.Fatalf("expected machine client dir \".client\"; received %s", filename)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCopyFile(t *testing.T) {
|
||||
testStr := "test-machine"
|
||||
|
||||
srcFile, err := ioutil.TempFile("", "machine-test-")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
srcFi, err := srcFile.Stat()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
srcFile.Write([]byte(testStr))
|
||||
srcFile.Close()
|
||||
|
||||
srcFilePath := filepath.Join(os.TempDir(), srcFi.Name())
|
||||
|
||||
destFile, err := ioutil.TempFile("", "machine-copy-test-")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
destFi, err := destFile.Stat()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
destFile.Close()
|
||||
|
||||
destFilePath := filepath.Join(os.TempDir(), destFi.Name())
|
||||
|
||||
if err := CopyFile(srcFilePath, destFilePath); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadFile(destFilePath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if string(data) != testStr {
|
||||
t.Fatalf("expected data \"%s\"; received \"%\"", testStr, string(data))
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetUsername(t *testing.T) {
|
||||
currentUser := "unknown"
|
||||
switch runtime.GOOS {
|
||||
case "darwin,linux":
|
||||
currentUser = os.Getenv("USER")
|
||||
case "windows":
|
||||
currentUser = os.Getenv("USERNAME")
|
||||
}
|
||||
|
||||
username := GetUsername()
|
||||
if username != currentUser {
|
||||
t.Fatalf("expected username %s; received %s", currentUser, username)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue