(t *testing.T)
| 1093 | } |
| 1094 | |
| 1095 | func TestDNSPacketWriteAnswer(t *testing.T) { |
| 1096 | dns := &DNS{ID: 0x1234, QR: true, OpCode: DNSOpCodeQuery, ResponseCode: DNSResponseCodeNoErr, Answers: []DNSResourceRecord{ |
| 1097 | DNSResourceRecord{ |
| 1098 | Name: []byte("www.example.com"), |
| 1099 | Type: DNSTypeA, |
| 1100 | Class: DNSClassIN, |
| 1101 | IP: net.IPv4(127, 0, 0, 1), |
| 1102 | }, |
| 1103 | DNSResourceRecord{ |
| 1104 | Name: []byte("www.example.com"), |
| 1105 | Type: DNSTypeAAAA, |
| 1106 | Class: DNSClassIN, |
| 1107 | IP: net.IP{15: 1}, |
| 1108 | }, |
| 1109 | }} |
| 1110 | buf := gopacket.NewSerializeBuffer() |
| 1111 | opts := gopacket.SerializeOptions{ComputeChecksums: true, FixLengths: true} |
| 1112 | if err := gopacket.SerializeLayers(buf, opts, dns); err != nil { |
| 1113 | t.Fatal(err) |
| 1114 | } |
| 1115 | dns2 := &DNS{} |
| 1116 | if err := dns2.DecodeFromBytes(buf.Bytes(), gopacket.NilDecodeFeedback); err != nil { |
| 1117 | t.Fatalf("could not decode: %v", err) |
| 1118 | } |
| 1119 | if want, got := 2, len(dns2.Answers); want != got { |
| 1120 | t.Fatalf("num answers, want %d got %d", want, got) |
| 1121 | } else if got, want := string(dns2.Answers[0].Name), "www.example.com"; got != want { |
| 1122 | t.Fatalf("unexpected first answer name %q, want %q", got, want) |
| 1123 | } else if got, want := string(dns2.Answers[1].Name), "www.example.com"; got != want { |
| 1124 | t.Fatalf("unexpected second answer name %q, want %q", got, want) |
| 1125 | } |
| 1126 | t.Log(gopacket.LayerString(dns2)) |
| 1127 | if want, got := 86, len(buf.Bytes()); want != got { |
| 1128 | t.Fatalf("Encoded size, want %d got %d", want, got) |
| 1129 | } |
| 1130 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…