mirror of https://github.com/docker/docs.git
Add somes tests to virtualbox driver
Signed-off-by: David Gageot <david@gageot.net>
This commit is contained in:
parent
53c5198a5a
commit
e812df723c
|
@ -7,8 +7,8 @@ import (
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
const (
|
||||||
testDiskInfoText = `
|
validDiskInfoText = `
|
||||||
storagecontrollerbootable0="on"
|
storagecontrollerbootable0="on"
|
||||||
"SATA-0-0"="/home/ehazlett/.boot2docker/boot2docker.iso"
|
"SATA-0-0"="/home/ehazlett/.boot2docker/boot2docker.iso"
|
||||||
"SATA-IsEjected"="off"
|
"SATA-IsEjected"="off"
|
||||||
|
@ -22,7 +22,7 @@ nic1="nat"
|
||||||
func TestVMDiskInfo(t *testing.T) {
|
func TestVMDiskInfo(t *testing.T) {
|
||||||
vbox := &VBoxManagerMock{
|
vbox := &VBoxManagerMock{
|
||||||
args: "showvminfo default --machinereadable",
|
args: "showvminfo default --machinereadable",
|
||||||
stdOut: testDiskInfoText,
|
stdOut: validDiskInfoText,
|
||||||
}
|
}
|
||||||
|
|
||||||
disk, err := getVMDiskInfo("default", vbox)
|
disk, err := getVMDiskInfo("default", vbox)
|
||||||
|
|
|
@ -75,9 +75,10 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
s := bufio.NewScanner(strings.NewReader(out))
|
|
||||||
m := map[string]*hostOnlyNetwork{}
|
m := map[string]*hostOnlyNetwork{}
|
||||||
n := &hostOnlyNetwork{}
|
n := &hostOnlyNetwork{}
|
||||||
|
|
||||||
|
s := bufio.NewScanner(strings.NewReader(out))
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
line := s.Text()
|
line := s.Text()
|
||||||
if line == "" {
|
if line == "" {
|
||||||
|
@ -85,10 +86,12 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
|
||||||
n = &hostOnlyNetwork{}
|
n = &hostOnlyNetwork{}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
res := reColonLine.FindStringSubmatch(line)
|
res := reColonLine.FindStringSubmatch(line)
|
||||||
if res == nil {
|
if res == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
switch key, val := res[1], res[2]; key {
|
switch key, val := res[1], res[2]; key {
|
||||||
case "Name":
|
case "Name":
|
||||||
n.Name = val
|
n.Name = val
|
||||||
|
@ -122,6 +125,7 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
|
||||||
n.NetworkName = val
|
n.NetworkName = val
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := s.Err(); err != nil {
|
if err := s.Err(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Tests that when we have a host only network which matches our expectations,
|
// Tests that when we have a host only network which matches our expectations,
|
||||||
|
@ -82,3 +84,91 @@ func TestGetHostOnlyNetworkWindows10Bug(t *testing.T) {
|
||||||
t.Fatalf("Expected result of calling getHostOnlyNetwork to be the same as expected but it was not:\nexpected: %+v\nactual: %+v\n", expectedHostOnlyNetwork, n)
|
t.Fatalf("Expected result of calling getHostOnlyNetwork to be the same as expected but it was not:\nexpected: %+v\nactual: %+v\n", expectedHostOnlyNetwork, n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestListHostOnlyNetworks(t *testing.T) {
|
||||||
|
vbox := &VBoxManagerMock{
|
||||||
|
args: "list hostonlyifs",
|
||||||
|
stdOut: `Name: vboxnet0
|
||||||
|
GUID: 786f6276-656e-4074-8000-0a0027000000
|
||||||
|
DHCP: Disabled
|
||||||
|
IPAddress: 192.168.99.1
|
||||||
|
NetworkMask: 255.255.255.0
|
||||||
|
IPV6Address:
|
||||||
|
IPV6NetworkMaskPrefixLength: 0
|
||||||
|
HardwareAddress: 0a:00:27:00:00:00
|
||||||
|
MediumType: Ethernet
|
||||||
|
Status: Up
|
||||||
|
VBoxNetworkName: HostInterfaceNetworking-vboxnet0
|
||||||
|
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
|
||||||
|
nets, err := listHostOnlyNetworks(vbox)
|
||||||
|
|
||||||
|
assert.Equal(t, 1, len(nets))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
net, present := nets["HostInterfaceNetworking-vboxnet0"]
|
||||||
|
|
||||||
|
assert.True(t, present)
|
||||||
|
assert.Equal(t, "vboxnet0", net.Name)
|
||||||
|
assert.Equal(t, "786f6276-656e-4074-8000-0a0027000000", net.GUID)
|
||||||
|
assert.False(t, net.DHCP)
|
||||||
|
assert.Equal(t, "192.168.99.1", net.IPv4.IP.String())
|
||||||
|
assert.Equal(t, "ffffff00", net.IPv4.Mask.String())
|
||||||
|
assert.Empty(t, net.IPv6.IP)
|
||||||
|
assert.Equal(t, "0a:00:27:00:00:00", net.HwAddr.String())
|
||||||
|
assert.Equal(t, "Ethernet", net.Medium)
|
||||||
|
assert.Equal(t, "Up", net.Status)
|
||||||
|
assert.Equal(t, "HostInterfaceNetworking-vboxnet0", net.NetworkName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestListTwoHostOnlyNetworks(t *testing.T) {
|
||||||
|
vbox := &VBoxManagerMock{
|
||||||
|
args: "list hostonlyifs",
|
||||||
|
stdOut: `Name: vboxnet0
|
||||||
|
GUID: 786f6276-656e-4074-8000-0a0027000000
|
||||||
|
DHCP: Disabled
|
||||||
|
IPAddress: 192.168.99.1
|
||||||
|
NetworkMask: 255.255.255.0
|
||||||
|
IPV6Address:
|
||||||
|
IPV6NetworkMaskPrefixLength: 0
|
||||||
|
HardwareAddress: 0a:00:27:00:00:00
|
||||||
|
MediumType: Ethernet
|
||||||
|
Status: Up
|
||||||
|
VBoxNetworkName: HostInterfaceNetworking-vboxnet0
|
||||||
|
|
||||||
|
Name: vboxnet1
|
||||||
|
GUID: 786f6276-656e-4174-8000-0a0027000001
|
||||||
|
DHCP: Disabled
|
||||||
|
IPAddress: 192.168.99.1
|
||||||
|
NetworkMask: 255.255.255.0
|
||||||
|
IPV6Address:
|
||||||
|
IPV6NetworkMaskPrefixLength: 0
|
||||||
|
HardwareAddress: 0a:00:27:00:00:01
|
||||||
|
MediumType: Ethernet
|
||||||
|
Status: Up
|
||||||
|
VBoxNetworkName: HostInterfaceNetworking-vboxnet1
|
||||||
|
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
|
||||||
|
nets, err := listHostOnlyNetworks(vbox)
|
||||||
|
|
||||||
|
assert.Equal(t, 2, len(nets))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
net, present := nets["HostInterfaceNetworking-vboxnet1"]
|
||||||
|
|
||||||
|
assert.True(t, present)
|
||||||
|
assert.Equal(t, "vboxnet1", net.Name)
|
||||||
|
assert.Equal(t, "786f6276-656e-4174-8000-0a0027000001", net.GUID)
|
||||||
|
assert.False(t, net.DHCP)
|
||||||
|
assert.Equal(t, "192.168.99.1", net.IPv4.IP.String())
|
||||||
|
assert.Equal(t, "ffffff00", net.IPv4.Mask.String())
|
||||||
|
assert.Empty(t, net.IPv6.IP)
|
||||||
|
assert.Equal(t, "0a:00:27:00:00:01", net.HwAddr.String())
|
||||||
|
assert.Equal(t, "Ethernet", net.Medium)
|
||||||
|
assert.Equal(t, "Up", net.Status)
|
||||||
|
assert.Equal(t, "HostInterfaceNetworking-vboxnet1", net.NetworkName)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue