github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/net/icmp/ipv4_test.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package icmp 6 7 import ( 8 "net" 9 "reflect" 10 "runtime" 11 "testing" 12 13 "golang.org/x/net/ipv4" 14 ) 15 16 var ( 17 wireHeaderFromKernel = [ipv4.HeaderLen]byte{ 18 0x45, 0x01, 0xbe, 0xef, 19 0xca, 0xfe, 0x45, 0xdc, 20 0xff, 0x01, 0xde, 0xad, 21 172, 16, 254, 254, 22 192, 168, 0, 1, 23 } 24 wireHeaderFromTradBSDKernel = [ipv4.HeaderLen]byte{ 25 0x45, 0x01, 0xef, 0xbe, 26 0xca, 0xfe, 0x45, 0xdc, 27 0xff, 0x01, 0xde, 0xad, 28 172, 16, 254, 254, 29 192, 168, 0, 1, 30 } 31 // TODO(mikio): Add platform dependent wire header formats when 32 // we support new platforms. 33 34 testHeader = &ipv4.Header{ 35 Version: ipv4.Version, 36 Len: ipv4.HeaderLen, 37 TOS: 1, 38 TotalLen: 0xbeef, 39 ID: 0xcafe, 40 Flags: ipv4.DontFragment, 41 FragOff: 1500, 42 TTL: 255, 43 Protocol: 1, 44 Checksum: 0xdead, 45 Src: net.IPv4(172, 16, 254, 254), 46 Dst: net.IPv4(192, 168, 0, 1), 47 } 48 ) 49 50 func TestParseIPv4Header(t *testing.T) { 51 var wh []byte 52 switch runtime.GOOS { 53 case "darwin": 54 wh = wireHeaderFromTradBSDKernel[:] 55 case "freebsd": 56 if freebsdVersion >= 1000000 { 57 wh = wireHeaderFromKernel[:] 58 } else { 59 wh = wireHeaderFromTradBSDKernel[:] 60 } 61 default: 62 wh = wireHeaderFromKernel[:] 63 } 64 h, err := ParseIPv4Header(wh) 65 if err != nil { 66 t.Fatal(err) 67 } 68 if !reflect.DeepEqual(h, testHeader) { 69 t.Fatalf("got %#v; want %#v", h, testHeader) 70 } 71 }