package host import ( "testing" "github.com/docker/machine/drivers/fakedriver" _ "github.com/docker/machine/drivers/none" "github.com/docker/machine/libmachine/provision" "github.com/docker/machine/libmachine/state" ) func TestValidateHostnameValid(t *testing.T) { hosts := []string{ "zomg", "test-ing", "some.h0st", } for _, v := range hosts { isValid := ValidateHostName(v) if !isValid { t.Fatalf("Thought a valid hostname was invalid: %s", v) } } } func TestValidateHostnameInvalid(t *testing.T) { hosts := []string{ "zom_g", "test$ing", "somešŸ˜„host", } for _, v := range hosts { isValid := ValidateHostName(v) if isValid { t.Fatalf("Thought an invalid hostname was valid: %s", v) } } } type NetstatProvisioner struct { *provision.FakeProvisioner } func (p *NetstatProvisioner) SSHCommand(args string) (string, error) { return `Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 72 192.168.25.141:ssh 192.168.25.1:63235 ESTABLISHED tcp 0 0 :::2376 :::* LISTEN tcp 0 0 :::ssh :::* LISTEN Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 17990 /var/run/acpid.socket unix 2 [ ACC ] SEQPACKET LISTENING 14233 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 19365 /var/run/docker.sock unix 3 [ ] STREAM CONNECTED 19774 unix 3 [ ] STREAM CONNECTED 19775 unix 3 [ ] DGRAM 14243 unix 3 [ ] DGRAM 14242`, nil } func NewNetstatProvisioner() provision.Provisioner { return &NetstatProvisioner{ &provision.FakeProvisioner{}, } } func TestStart(t *testing.T) { provision.SetDetector(&provision.FakeDetector{ NewNetstatProvisioner(), }) host := &Host{ Driver: &fakedriver.Driver{ MockState: state.Stopped, }, } if err := host.Start(); err != nil { t.Fatalf("Expected no error but got one: %s", err) } }