From ce1812cfaf13d24063a5c390e130a617a0855b26 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Mon, 20 Jul 2015 13:21:13 -0700 Subject: [PATCH] Add byte packing/unpacking test --- parse_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/parse_test.go b/parse_test.go index 1c2ef865..1f251727 100644 --- a/parse_test.go +++ b/parse_test.go @@ -1477,3 +1477,32 @@ func TestParseCAA(t *testing.T) { } } } + +func TestPackCAA(t *testing.T) { + m := new(Msg) + record := new(CAA) + record.Hdr = RR_Header{Name: "example.com.", Rrtype: TypeCAA, Class: ClassINET, Ttl: 0} + record.Tag = "issue" + record.Value = "symantec.com" + record.Flag = 1 + + m.Answer = append(m.Answer, record) + bytes, err := m.Pack() + if err != nil { + t.Fatalf("failed to pack msg: %v", err) + } + if err := m.Unpack(bytes); err != nil { + t.Fatalf("failed to unpack msg: %v", err) + } + if len(m.Answer) != 1 { + t.Fatalf("incorrect number of answers unpacked") + } + rr := m.Answer[0].(*CAA) + if rr.Tag != "issue" { + t.Fatalf("invalid tag for unpacked answer") + } else if rr.Value != "symantec.com" { + t.Fatalf("invalid value for unpacked answer") + } else if rr.Flag != 1 { + t.Fatalf("invalid flag for unpacked answer") + } +}