1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package bsdp
import (
"testing"
"github.com/insomniacslk/dhcp/dhcpv4"
"github.com/stretchr/testify/require"
)
func TestParseBootImageListFromAck(t *testing.T) {
expectedBootImages := []BootImage{
BootImage{
ID: BootImageID{
IsInstall: true,
ImageType: BootImageTypeMacOSX,
Index: 0x1010,
},
Name: "bsdp-1",
},
BootImage{
ID: BootImageID{
IsInstall: false,
ImageType: BootImageTypeMacOS9,
Index: 0x1111,
},
Name: "bsdp-2",
},
}
ack, _ := dhcpv4.New()
ack.AddOption(&OptVendorSpecificInformation{
[]dhcpv4.Option{&OptBootImageList{expectedBootImages}},
})
images, err := ParseBootImageListFromAck(*ack)
require.NoError(t, err)
require.NotEmpty(t, images, "should get BootImages")
require.Equal(t, expectedBootImages, images, "should get same BootImages")
}
func TestParseBootImageListFromAckNoVendorOption(t *testing.T) {
ack, _ := dhcpv4.New()
images, err := ParseBootImageListFromAck(*ack)
require.Error(t, err)
require.Empty(t, images, "no BootImages")
}
func TestNeedsReplyPort(t *testing.T) {
require.True(t, needsReplyPort(123))
require.False(t, needsReplyPort(0))
require.False(t, needsReplyPort(dhcpv4.ClientPort))
}
|