docs/libmachine/host/host_test.go

85 lines
2.3 KiB
Go

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)
}
}