summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/ztp/ztp_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv4/ztp/ztp_test.go')
-rw-r--r--dhcpv4/ztp/ztp_test.go74
1 files changed, 14 insertions, 60 deletions
diff --git a/dhcpv4/ztp/ztp_test.go b/dhcpv4/ztp/ztp_test.go
index f46f9d8..ae715b2 100644
--- a/dhcpv4/ztp/ztp_test.go
+++ b/dhcpv4/ztp/ztp_test.go
@@ -3,15 +3,15 @@ package ztpv4
import (
"testing"
- "github.com/google/go-cmp/cmp"
"github.com/insomniacslk/dhcp/dhcpv4"
+ "github.com/stretchr/testify/require"
)
func TestParseV4VendorClass(t *testing.T) {
tt := []struct {
name string
vc, hostname string
- want VendorData
+ want *VendorData
fail bool
}{
{name: "empty", fail: true},
@@ -20,44 +20,44 @@ func TestParseV4VendorClass(t *testing.T) {
{
name: "arista",
vc: "Arista;DCS-7050S-64;01.23;JPE12345678",
- want: VendorData{
+ want: &VendorData{
VendorName: "Arista", Model: "DCS-7050S-64", Serial: "JPE12345678"},
},
{
name: "juniper",
vc: "Juniper-ptx1000-DD123",
- want: VendorData{VendorName: "Juniper", Model: "ptx1000", Serial: "DD123"},
+ want: &VendorData{VendorName: "Juniper", Model: "ptx1000", Serial: "DD123"},
},
{
name: "juniperModelDash",
vc: "Juniper-qfx10002-36q-DN817",
- want: VendorData{VendorName: "Juniper", Model: "qfx10002-36q", Serial: "DN817"},
+ want: &VendorData{VendorName: "Juniper", Model: "qfx10002-36q", Serial: "DN817"},
},
{
name: "juniperHostnameSerial",
vc: "Juniper-qfx10008",
hostname: "DE123",
- want: VendorData{VendorName: "Juniper", Model: "qfx10008", Serial: "DE123"},
+ want: &VendorData{VendorName: "Juniper", Model: "qfx10008", Serial: "DE123"},
},
{
name: "juniperNoSerial",
vc: "Juniper-qfx10008",
- want: VendorData{VendorName: "Juniper", Model: "qfx10008", Serial: ""},
+ want: &VendorData{VendorName: "Juniper", Model: "qfx10008", Serial: ""},
},
{
name: "juniperInvalid",
vc: "Juniper-",
- want: VendorData{VendorName: "Juniper", Model: "", Serial: ""},
+ want: &VendorData{VendorName: "Juniper", Model: "", Serial: ""},
},
{
name: "juniperInvalid2",
vc: "Juniper-qfx99999-",
- want: VendorData{VendorName: "Juniper", Model: "qfx99999", Serial: ""},
+ want: &VendorData{VendorName: "Juniper", Model: "qfx99999", Serial: ""},
},
{
name: "zpe",
vc: "ZPESystems:NSC:001234567",
- want: VendorData{VendorName: "ZPESystems", Model: "NSC", Serial: "001234567"},
+ want: &VendorData{VendorName: "ZPESystems", Model: "NSC", Serial: "001234567"},
},
}
@@ -78,56 +78,10 @@ func TestParseV4VendorClass(t *testing.T) {
})
}
- vd := VendorData{}
-
- if err := parseV4VendorClass(&vd, packet); err != nil && !tc.fail {
- t.Errorf("unexpected failure: %v", err)
- }
-
- if !cmp.Equal(tc.want, vd) {
- t.Errorf("unexpected VendorData:\n%s", cmp.Diff(tc.want, vd))
- }
- })
- }
-}
-
-func TestParseV4VIVC(t *testing.T) {
- tt := []struct {
- name string
- entID uint32
- input []byte
- want VendorData
- fail bool
- }{
- {name: "empty", fail: true},
- {
- name: "ciscoIOSXR",
- entID: 0x09,
- input: []byte("SN:0;PID:R-IOSXRV9000-CC"),
- want: VendorData{VendorName: "Cisco Systems", Model: "R-IOSXRV9000-CC", Serial: "0"},
- },
- }
-
- for _, tc := range tt {
- t.Run(tc.name, func(t *testing.T) {
- packet, err := dhcpv4.New()
- if err != nil {
- t.Fatalf("failed to creat dhcpv4 packet object: %v", err)
- }
- packet.AddOption(&dhcpv4.OptVIVC{
- Identifiers: []dhcpv4.VIVCIdentifier{
- {EntID: tc.entID, Data: tc.input},
- },
- })
-
- vd := VendorData{}
-
- if err := parseV4VIVC(&vd, packet); err != nil && !tc.fail {
- t.Errorf("unexpected failure: %v", err)
- }
-
- if !cmp.Equal(tc.want, vd) {
- t.Errorf("unexpected VendorData:\n%s", cmp.Diff(tc.want, vd))
+ vd, err := parseV4VendorClass(packet)
+ if !tc.fail {
+ require.NoError(t, err)
+ require.Equal(t, tc.want, vd)
}
})
}