@@ -2259,19 +2259,34 @@ func testGoLookupIPCNAMEOrderHostsAliases(t *testing.T, mode hostLookupOrder, lo
2259
2259
// This isn't a great test as it just tests the dnsmessage package
2260
2260
// against itself.
2261
2261
func TestDNSPacketSize (t * testing.T ) {
2262
+ t .Run ("enabled" , func (t * testing.T ) {
2263
+ testDNSPacketSize (t , false )
2264
+ })
2265
+ t .Run ("disabled" , func (t * testing.T ) {
2266
+ testDNSPacketSize (t , true )
2267
+ })
2268
+ }
2269
+
2270
+ func testDNSPacketSize (t * testing.T , disable bool ) {
2262
2271
fake := fakeDNSServer {
2263
2272
rh : func (_ , _ string , q dnsmessage.Message , _ time.Time ) (dnsmessage.Message , error ) {
2264
- if len (q .Additionals ) == 0 {
2265
- t .Error ("missing EDNS record" )
2266
- } else if opt , ok := q .Additionals [0 ].Body .(* dnsmessage.OPTResource ); ! ok {
2267
- t .Errorf ("additional record type %T, expected OPTResource" , q .Additionals [0 ])
2268
- } else if len (opt .Options ) != 0 {
2269
- t .Errorf ("found %d Options, expected none" , len (opt .Options ))
2273
+ if disable {
2274
+ if len (q .Additionals ) > 0 {
2275
+ t .Error ("unexpected additional record" )
2276
+ }
2270
2277
} else {
2271
- got := int (q .Additionals [0 ].Header .Class )
2272
- t .Logf ("EDNS packet size == %d" , got )
2273
- if got != maxDNSPacketSize {
2274
- t .Errorf ("EDNS packet size == %d, want %d" , got , maxDNSPacketSize )
2278
+ if len (q .Additionals ) == 0 {
2279
+ t .Error ("missing EDNS record" )
2280
+ } else if opt , ok := q .Additionals [0 ].Body .(* dnsmessage.OPTResource ); ! ok {
2281
+ t .Errorf ("additional record type %T, expected OPTResource" , q .Additionals [0 ])
2282
+ } else if len (opt .Options ) != 0 {
2283
+ t .Errorf ("found %d Options, expected none" , len (opt .Options ))
2284
+ } else {
2285
+ got := int (q .Additionals [0 ].Header .Class )
2286
+ t .Logf ("EDNS packet size == %d" , got )
2287
+ if got != maxDNSPacketSize {
2288
+ t .Errorf ("EDNS packet size == %d, want %d" , got , maxDNSPacketSize )
2289
+ }
2275
2290
}
2276
2291
}
2277
2292
@@ -2304,6 +2319,10 @@ func TestDNSPacketSize(t *testing.T) {
2304
2319
},
2305
2320
}
2306
2321
2322
+ if disable {
2323
+ t .Setenv ("GODEBUG" , "netedns0=0" )
2324
+ }
2325
+
2307
2326
r := & Resolver {PreferGo : true , Dial : fake .DialContext }
2308
2327
if _ , err := r .LookupIPAddr (context .Background (), "go.dev" ); err != nil {
2309
2328
t .Errorf ("lookup failed: %v" , err )
0 commit comments