Add somes tests to virtualbox driver

Signed-off-by: David Gageot <david@gageot.net>
This commit is contained in:
David Gageot 2015-11-20 13:38:35 +01:00
parent 53c5198a5a
commit e812df723c
3 changed files with 98 additions and 4 deletions

View File

@ -7,8 +7,8 @@ import (
"github.com/stretchr/testify/assert"
)
var (
testDiskInfoText = `
const (
validDiskInfoText = `
storagecontrollerbootable0="on"
"SATA-0-0"="/home/ehazlett/.boot2docker/boot2docker.iso"
"SATA-IsEjected"="off"
@ -22,7 +22,7 @@ nic1="nat"
func TestVMDiskInfo(t *testing.T) {
vbox := &VBoxManagerMock{
args: "showvminfo default --machinereadable",
stdOut: testDiskInfoText,
stdOut: validDiskInfoText,
}
disk, err := getVMDiskInfo("default", vbox)

View File

@ -75,9 +75,10 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
return nil, err
}
s := bufio.NewScanner(strings.NewReader(out))
m := map[string]*hostOnlyNetwork{}
n := &hostOnlyNetwork{}
s := bufio.NewScanner(strings.NewReader(out))
for s.Scan() {
line := s.Text()
if line == "" {
@ -85,10 +86,12 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
n = &hostOnlyNetwork{}
continue
}
res := reColonLine.FindStringSubmatch(line)
if res == nil {
continue
}
switch key, val := res[1], res[2]; key {
case "Name":
n.Name = val
@ -122,6 +125,7 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
n.NetworkName = val
}
}
if err := s.Err(); err != nil {
return nil, err
}

View File

@ -4,6 +4,8 @@ import (
"net"
"reflect"
"testing"
"github.com/stretchr/testify/assert"
)
// 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)
}
}
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)
}