func TestStartHost(t *testing.T) { api := tests.NewMockAPI() md := &tests.MockDetector{Provisioner: &tests.MockProvisioner{}} provision.SetDetector(md) h, err := StartHost(api, defaultMachineConfig) if err != nil { t.Fatal("Error starting host.") } if h.Name != constants.MachineName { t.Fatalf("Machine created with incorrect name: %s", h.Name) } if exists, _ := api.Exists(h.Name); !exists { t.Fatal("Machine not saved.") } if s, _ := h.Driver.GetState(); s != state.Running { t.Fatalf("Machine not started.") } // Provision regenerates Docker certs. This happens automatically during create, // so we should only call it again if the host already exists. if md.Provisioner.Provisioned { t.Fatalf("Did not expect Provision to be called") } }
func TestCreateHost(t *testing.T) { api := tests.NewMockAPI() exists, _ := api.Exists(constants.MachineName) if exists { t.Fatal("Machine already exists.") } _, err := createHost(api, defaultMachineConfig) if err != nil { t.Fatalf("Error creating host: %v", err) } exists, _ = api.Exists(constants.MachineName) if !exists { t.Fatal("Machine does not exist, but should.") } h, err := api.Load(constants.MachineName) if err != nil { t.Fatalf("Error loading machine: %v", err) } if s, _ := h.Driver.GetState(); s != state.Running { t.Fatalf("Machine is not running. State is: %s", s) } found := false for _, driver := range constants.SupportedVMDrivers { if h.DriverName == driver { found = true break } } if !found { t.Fatalf("Wrong driver name: %v. Should be virtualbox, vmwarefusion, kvm or xhyve.", h.DriverName) } }