summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/option_iaprefix_test.go
diff options
context:
space:
mode:
authorPablo Mazzini <pmazzini@gmail.com>2018-04-08 23:46:07 +0100
committerinsomniac <insomniacslk@users.noreply.github.com>2018-04-09 00:46:07 +0200
commit05d4c67cbd22d98846d71524be2c9f9e18ea38fa (patch)
tree46cf88a4440d3be98d0803783f8dee5fa9779909 /dhcpv6/option_iaprefix_test.go
parentb3906a775aa5fe1fd026c9bfe8600f70a15f6877 (diff)
fix OptIAPrefix (#31)
Diffstat (limited to 'dhcpv6/option_iaprefix_test.go')
-rw-r--r--dhcpv6/option_iaprefix_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/dhcpv6/option_iaprefix_test.go b/dhcpv6/option_iaprefix_test.go
new file mode 100644
index 0000000..caabc75
--- /dev/null
+++ b/dhcpv6/option_iaprefix_test.go
@@ -0,0 +1,52 @@
+package dhcpv6
+
+import (
+ "bytes"
+ "net"
+ "testing"
+)
+
+func TestOptIAPrefix(t *testing.T) {
+ buf := []byte{
+ 0xaa, 0xbb, 0xcc, 0xdd, // preferredLifetime
+ 0xee, 0xff, 0x00, 0x11, // validLifetime
+ 36, // prefixLength
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, // ipv6Prefix
+ }
+ opt, err := ParseOptIAPrefix(buf)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if pl := opt.PreferredLifetime(); pl != 0xaabbccdd {
+ t.Fatalf("Invalid Preferred Lifetime. Expected 0xaabbccdd, got %v", pl)
+ }
+ if vl := opt.ValidLifetime(); vl != 0xeeff0011 {
+ t.Fatalf("Invalid Valid Lifetime. Expected 0xeeff0011, got %v", vl)
+ }
+ if pr := opt.PrefixLength(); pr != 36 {
+ t.Fatalf("Invalid Prefix Length. Expected 36, got %v", pr)
+ }
+ if ip := opt.IPv6Prefix(); !bytes.Equal(ip, net.IPv6loopback) {
+ t.Fatalf("Invalid Prefix Length. Expected %v, got %v", net.IPv6loopback, ip)
+ }
+}
+
+func TestOptIAPrefixToBytes(t *testing.T) {
+ buf := []byte{
+ 0xaa, 0xbb, 0xcc, 0xdd, // preferredLifetime
+ 0xee, 0xff, 0x00, 0x11, // validLifetime
+ 36, // prefixLength
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ipv6Prefix
+ }
+ expected := []byte{00, 26, 00, byte(len(buf))}
+ expected = append(expected, buf...)
+ opt := OptIAPrefix{
+ preferredLifetime: 0xaabbccdd,
+ validLifetime: 0xeeff0011,
+ prefixLength: 36,
+ }
+ toBytes := opt.ToBytes()
+ if !bytes.Equal(toBytes, expected) {
+ t.Fatalf("Invalid ToBytes result. Expected %v, got %v", expected, toBytes)
+ }
+}