mirror of https://github.com/docker/docs.git
Don't rely on empty lines
It could lead to creating multiple host only interfaces Signed-off-by: David Gageot <david@gageot.net>
This commit is contained in:
parent
e812df723c
commit
bbe59b8020
|
@ -82,8 +82,6 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
|
|||
for s.Scan() {
|
||||
line := s.Text()
|
||||
if line == "" {
|
||||
m[n.NetworkName] = n
|
||||
n = &hostOnlyNetwork{}
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -123,6 +121,8 @@ func listHostOnlyNetworks(vbox VBoxManager) (map[string]*hostOnlyNetwork, error)
|
|||
n.Status = val
|
||||
case "VBoxNetworkName":
|
||||
n.NetworkName = val
|
||||
m[val] = n
|
||||
n = &hostOnlyNetwork{}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -172,3 +172,26 @@ VBoxNetworkName: HostInterfaceNetworking-vboxnet1
|
|||
assert.Equal(t, "Up", net.Status)
|
||||
assert.Equal(t, "HostInterfaceNetworking-vboxnet1", net.NetworkName)
|
||||
}
|
||||
|
||||
func TestListHostOnlyNetworksDontRelyOnEmptyLinesForParsing(t *testing.T) {
|
||||
vbox := &VBoxManagerMock{
|
||||
args: "list hostonlyifs",
|
||||
stdOut: `Name: vboxnet0
|
||||
VBoxNetworkName: HostInterfaceNetworking-vboxnet0
|
||||
Name: vboxnet1
|
||||
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)
|
||||
|
||||
net, present = nets["HostInterfaceNetworking-vboxnet0"]
|
||||
assert.True(t, present)
|
||||
assert.Equal(t, "vboxnet0", net.Name)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue