package dnsservertest_test import ( "fmt" "net/netip" "github.com/AdguardTeam/AdGuardDNS/internal/dnsserver/dnsservertest" "github.com/AdguardTeam/golibs/netutil" "github.com/miekg/dns" ) func ExampleNewReq() { const nonUniqueID = 1234 m := dnsservertest.NewReq("example.org.", dns.TypeA, dns.ClassINET, dnsservertest.SectionExtra{ dnsservertest.NewECSExtra(netutil.IPv4Zero(), uint16(netutil.AddrFamilyIPv4), 0, 0), }) m.Id = nonUniqueID fmt.Println(m) // Output: // // ;; opcode: QUERY, status: NOERROR, id: 1234 // ;; flags:; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 // // ;; OPT PSEUDOSECTION: // ; EDNS: version 0; flags:; udp: 0 // ; SUBNET: 0.0.0.0/0/0 // // ;; QUESTION SECTION: // ;example.org. IN A } func ExampleNewResp() { const ( nonUniqueID = 1234 testFQDN = "example.org." realTestFQDN = "real." + testFQDN ) m := dnsservertest.NewReq(testFQDN, dns.TypeA, dns.ClassINET, dnsservertest.SectionExtra{ dnsservertest.NewECSExtra(netutil.IPv4Zero(), uint16(netutil.AddrFamilyIPv4), 0, 0), }) m.Id = nonUniqueID m = dnsservertest.NewResp(dns.RcodeSuccess, m, dnsservertest.SectionAnswer{ dnsservertest.NewCNAME(testFQDN, 3600, realTestFQDN), dnsservertest.NewA(realTestFQDN, 3600, netip.MustParseAddr("1.2.3.4")), }, dnsservertest.SectionNs{ dnsservertest.NewSOA(realTestFQDN, 1000, "ns."+realTestFQDN, "mbox."+realTestFQDN), dnsservertest.NewNS(testFQDN, 1000, "ns."+testFQDN), }, dnsservertest.SectionExtra{ m.IsEdns0(), }) fmt.Println(m) // Output: // // ;; opcode: QUERY, status: NOERROR, id: 1234 // ;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1 // // ;; OPT PSEUDOSECTION: // ; EDNS: version 0; flags:; udp: 0 // ; SUBNET: 0.0.0.0/0/0 // // ;; QUESTION SECTION: // ;example.org. IN A // // ;; ANSWER SECTION: // example.org. 3600 IN CNAME real.example.org. // real.example.org. 3600 IN A 1.2.3.4 // // ;; AUTHORITY SECTION: // real.example.org. 1000 IN SOA ns.real.example.org. mbox.real.example.org. 0 0 0 0 0 // example.org. 1000 IN NS ns.example.org. }