blob: 3959ee5f0917df19294dff0905136e1d1400e5f2 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package connectivity
import (
"net"
"testing"
netfidl "fidl/fuchsia/net"
"fidl/fuchsia/netstack"
"netstack/fidlconv"
"github.com/google/netstack/tcpip"
)
func newV4Address(a, b, c, d uint8) netfidl.IpAddress {
return fidlconv.ToNetIpAddress(tcpip.Address(net.IPv4(a, b, c, d).To4()))
}
func TestHasDHCPAddress(t *testing.T) {
for _, tc := range []struct {
name string
iface netstack.NetInterface
want bool
}{
{
name: "DHCPEnabledNoAddress",
iface: netstack.NetInterface{
Flags: netstack.NetInterfaceFlagDhcp | netstack.NetInterfaceFlagUp,
Addr: newV4Address(0, 0, 0, 0),
Netmask: newV4Address(0, 0, 0, 0),
Broadaddr: newV4Address(0, 0, 0, 0),
Hwaddr: []uint8{0, 1, 2, 3, 4, 5},
},
want: false,
},
{
name: "StaticAddress",
iface: netstack.NetInterface{
Flags: netstack.NetInterfaceFlagUp,
Addr: newV4Address(192, 168, 42, 10),
Netmask: newV4Address(255, 255, 255, 0),
Broadaddr: newV4Address(255, 255, 255, 0),
Hwaddr: []uint8{1, 2, 3, 4, 5, 6},
},
want: false,
},
{
name: "DHCPEnabledWithAddress",
iface: netstack.NetInterface{
Flags: netstack.NetInterfaceFlagDhcp | netstack.NetInterfaceFlagUp,
Addr: newV4Address(10, 0, 0, 1),
Netmask: newV4Address(255, 255, 255, 0),
Broadaddr: newV4Address(255, 255, 255, 0),
Hwaddr: []uint8{1, 2, 3, 4, 5, 6},
},
want: true,
},
} {
t.Run(tc.name, func(t *testing.T) {
if got := hasDHCPAddress(tc.iface); got != tc.want {
t.Fatalf("got %t, want %t; input: %#v", got, tc.want, tc.iface)
}
})
}
}