Skip to content
This repository has been archived by the owner on Sep 26, 2021. It is now read-only.

Commit

Permalink
add TestHostConfig; refactor host tests for easier testing
Browse files Browse the repository at this point in the history
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
  • Loading branch information
ehazlett committed Feb 2, 2015
1 parent 2eb7bb4 commit 6810f67
Showing 1 changed file with 75 additions and 28 deletions.
103 changes: 75 additions & 28 deletions host_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,35 @@ const (
hostTestPrivateKey = "test-key"
)

var (
tmpDir string
)

func init() {
tmpDir, err := ioutil.TempDir("", "machine-test-")
if err != nil {
fmt.Println(err)
os.Exit(1)
}

os.Setenv("MACHINE_DIR", tmpDir)
}

func getTestStore() (*Store, error) {
return NewStore(tmpDir, hostTestCaCert, hostTestPrivateKey), nil
}

func getTestDriverFlags() *DriverOptionsMock {
name := hostTestName
flags := &DriverOptionsMock{
Data: map[string]interface{}{
"name": name,
"url": "unix:///var/run/docker.sock",
},
}
return flags
}

func getDefaultTestHost() (*Host, error) {
host, err := NewHost(hostTestName, hostTestDriverName, hostTestStorePath, hostTestCaCert, hostTestPrivateKey)
if err != nil {
Expand Down Expand Up @@ -94,13 +123,6 @@ func TestValidateHostnameInvalid(t *testing.T) {
}

func TestGenerateClientCertificate(t *testing.T) {
tmpDir, err := ioutil.TempDir("", "machine-test-")
if err != nil {
t.Fatal(err)
}

os.Setenv("MACHINE_DIR", tmpDir)

caCertPath := filepath.Join(tmpDir, "ca.pem")
caKeyPath := filepath.Join(tmpDir, "key.pem")
testOrg := "test-org"
Expand All @@ -121,9 +143,6 @@ func TestGenerateClientCertificate(t *testing.T) {
if _, err := os.Stat(clientKeyPath); err != nil {
t.Fatal(err)
}

// cleanup
_ = os.RemoveAll(tmpDir)
}

func TestGenerateDockerConfigNonLocal(t *testing.T) {
Expand Down Expand Up @@ -164,20 +183,21 @@ func TestGenerateDockerConfigNonLocal(t *testing.T) {
func TestMachinePort(t *testing.T) {
dockerPort := 2376
bindUrl := fmt.Sprintf("tcp://0.0.0.0:%d", dockerPort)
flags := &DriverOptionsMock{
Data: map[string]interface{}{
"url": bindUrl,
},
store, err := getTestStore()
if err != nil {
t.Fatal(err)
}
flags := getTestDriverFlags()

store := NewStore("", "", "")

_, err := store.Create("test", "none", flags)
_, err = store.Create(hostTestName, hostTestDriverName, flags)
if err != nil {
t.Fatal(err)
}

host, err := store.Load("test")
host, err := store.Load(hostTestName)
if err != nil {
t.Fatal(err)
}
cfg := host.generateDockerConfig(dockerPort, "", "", "")

re := regexp.MustCompile("--host=tcp://.*:(.+)")
Expand All @@ -194,28 +214,29 @@ func TestMachinePort(t *testing.T) {
t.Errorf("expected url %s; received %s", bindUrl, url)
}

if err := store.Remove("test", true); err != nil {
if err := store.Remove(hostTestName, true); err != nil {
t.Fatal(err)
}
}

func TestMachineCustomPort(t *testing.T) {
dockerPort := 3376
bindUrl := fmt.Sprintf("tcp://0.0.0.0:%d", dockerPort)
flags := &DriverOptionsMock{
Data: map[string]interface{}{
"url": bindUrl,
},
store, err := getTestStore()
if err != nil {
t.Fatal(err)
}
flags := getTestDriverFlags()

store := NewStore("", "", "")

_, err := store.Create("test", "none", flags)
_, err = store.Create(hostTestName, hostTestDriverName, flags)
if err != nil {
t.Fatal(err)
}

host, err := store.Load("test")
host, err := store.Load(hostTestName)
if err != nil {
t.Fatal(err)
}
cfg := host.generateDockerConfig(dockerPort, "", "", "")

re := regexp.MustCompile("--host=tcp://.*:(.+)")
Expand All @@ -232,7 +253,33 @@ func TestMachineCustomPort(t *testing.T) {
t.Errorf("expected url %s; received %s", bindUrl, url)
}

if err := store.Remove("test", true); err != nil {
if err := store.Remove(hostTestName, true); err != nil {
t.Fatal(err)
}
}

func TestHostConfig(t *testing.T) {
store, err := getTestStore()
if err != nil {
t.Fatal(err)
}

flags := getTestDriverFlags()
host, err := store.Create(hostTestName, hostTestDriverName, flags)
if err != nil {
t.Fatal(err)
}

if err := host.SaveConfig(); err != nil {
t.Fatal(err)
}

if err := host.LoadConfig(); err != nil {
t.Fatal(err)
}

// cleanup
if err := store.Remove(hostTestName, true); err != nil {
t.Fatal(err)
}
}

0 comments on commit 6810f67

Please sign in to comment.