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  }