MCPcopy
hub / github.com/osrg/gobgp / Test_interfaceUpdateBody

Function Test_interfaceUpdateBody

pkg/zebra/zapi_test.go:84–143  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

82}
83
84func Test_interfaceUpdateBody(t *testing.T) {
85 assert := assert.New(t)
86
87 addSize := map[uint8]uint8{2: 39, 3: 44, 4: 50, 5: 50, 6: 54}
88 for v := MinZapiVer; v <= MaxZapiVer; v++ {
89 // decodeFromBytes
90 buf := make([]byte, interfaceNameSize+addSize[v])
91 pos := interfaceNameSize
92 binary.BigEndian.PutUint32(buf[pos:], 1) // Index
93 pos += 4
94 buf[pos] = byte(interfaceActive) // Status
95 pos++
96 binary.BigEndian.PutUint64(buf[pos:], 1)
97 pos += 8 // flags
98 if v > 3 {
99 buf[pos] = byte(ptmEnableOff) // ptm enable
100 pos++
101 buf[pos] = byte(ptmStatusUnknown) // ptm status
102 pos++
103 }
104 binary.BigEndian.PutUint32(buf[pos:], 1)
105 pos += 4 // metric
106 if v > 3 {
107 binary.BigEndian.PutUint32(buf[pos:], 10000)
108 pos += 4 // speed
109 }
110 binary.BigEndian.PutUint32(buf[pos:], 1500)
111 pos += 4 // MTU
112 binary.BigEndian.PutUint32(buf[pos:], 1500)
113 pos += 4 // MTU6
114 binary.BigEndian.PutUint32(buf[pos:], 200)
115 pos += 4 // bandwidth
116 if v == 6 { // "frr7.2", ""
117 binary.BigEndian.PutUint32(buf[pos:], 1)
118 pos += 4 // link Ifindex
119 }
120 if v > 2 {
121 binary.BigEndian.PutUint32(buf[pos:], uint32(linkTypeEther))
122 pos += 4 // Linktype
123 }
124 binary.BigEndian.PutUint32(buf[pos:], 6)
125 pos += 4 // hwaddr_len
126 mac, _ := net.ParseMAC("01:23:45:67:89:ab")
127 copy(buf[pos:pos+6], []byte(mac))
128 pos += 6
129 if v > 2 {
130 buf[pos] = byte(0) // link param
131 // pos++
132 }
133 b := &interfaceUpdateBody{}
134 software := NewSoftware(v, "")
135 err := b.decodeFromBytes(buf, v, software)
136 assert.NoError(err)
137 assert.Equal("01:23:45:67:89:ab", b.hardwareAddr.String())
138 buf = make([]byte, interfaceNameSize+32) // size mismatch
139 b = &interfaceUpdateBody{}
140 err = b.decodeFromBytes(buf, v, software)
141 assert.NotNil(err)

Callers

nothing calls this directly

Calls 4

decodeFromBytesMethod · 0.95
NewSoftwareFunction · 0.85
StringMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…