github.com/q45/go@v0.0.0-20151101211701-a4fb8c13db3f/src/net/port_test.go (about)

     1  // Copyright 2009 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 net
     6  
     7  import (
     8  	"runtime"
     9  	"testing"
    10  )
    11  
    12  var lookupPortTests = []struct {
    13  	network string
    14  	name    string
    15  	port    int
    16  	ok      bool
    17  }{
    18  	{"tcp", "0", 0, true},
    19  	{"tcp", "echo", 7, true},
    20  	{"tcp", "discard", 9, true},
    21  	{"tcp", "systat", 11, true},
    22  	{"tcp", "daytime", 13, true},
    23  	{"tcp", "chargen", 19, true},
    24  	{"tcp", "ftp-data", 20, true},
    25  	{"tcp", "ftp", 21, true},
    26  	{"tcp", "telnet", 23, true},
    27  	{"tcp", "smtp", 25, true},
    28  	{"tcp", "time", 37, true},
    29  	{"tcp", "domain", 53, true},
    30  	{"tcp", "finger", 79, true},
    31  	{"tcp", "42", 42, true},
    32  
    33  	{"udp", "0", 0, true},
    34  	{"udp", "echo", 7, true},
    35  	{"udp", "tftp", 69, true},
    36  	{"udp", "bootpc", 68, true},
    37  	{"udp", "bootps", 67, true},
    38  	{"udp", "domain", 53, true},
    39  	{"udp", "ntp", 123, true},
    40  	{"udp", "snmp", 161, true},
    41  	{"udp", "syslog", 514, true},
    42  	{"udp", "42", 42, true},
    43  
    44  	{"--badnet--", "zzz", 0, false},
    45  	{"tcp", "--badport--", 0, false},
    46  	{"tcp", "-1", 0, false},
    47  	{"tcp", "65536", 0, false},
    48  	{"udp", "-1", 0, false},
    49  	{"udp", "65536", 0, false},
    50  }
    51  
    52  func TestLookupPort(t *testing.T) {
    53  	switch runtime.GOOS {
    54  	case "nacl":
    55  		t.Skipf("not supported on %s", runtime.GOOS)
    56  	}
    57  
    58  	for _, tt := range lookupPortTests {
    59  		if port, err := LookupPort(tt.network, tt.name); port != tt.port || (err == nil) != tt.ok {
    60  			t.Errorf("LookupPort(%q, %q) = %d, %v; want %d", tt.network, tt.name, port, err, tt.port)
    61  		}
    62  	}
    63  }