github.com/tcnksm/go@v0.0.0-20141208075154-439b32936367/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  type portTest struct {
    13  	netw string
    14  	name string
    15  	port int
    16  	ok   bool
    17  }
    18  
    19  var porttests = []portTest{
    20  	{"tcp", "echo", 7, true},
    21  	{"tcp", "discard", 9, true},
    22  	{"tcp", "systat", 11, true},
    23  	{"tcp", "daytime", 13, true},
    24  	{"tcp", "chargen", 19, true},
    25  	{"tcp", "ftp-data", 20, true},
    26  	{"tcp", "ftp", 21, true},
    27  	{"tcp", "telnet", 23, true},
    28  	{"tcp", "smtp", 25, true},
    29  	{"tcp", "time", 37, true},
    30  	{"tcp", "domain", 53, true},
    31  	{"tcp", "finger", 79, true},
    32  
    33  	{"udp", "echo", 7, true},
    34  	{"udp", "tftp", 69, true},
    35  	{"udp", "bootpc", 68, true},
    36  	{"udp", "bootps", 67, true},
    37  	{"udp", "domain", 53, true},
    38  	{"udp", "ntp", 123, true},
    39  	{"udp", "snmp", 161, true},
    40  	{"udp", "syslog", 514, true},
    41  
    42  	{"--badnet--", "zzz", 0, false},
    43  	{"tcp", "--badport--", 0, false},
    44  }
    45  
    46  func TestLookupPort(t *testing.T) {
    47  	switch runtime.GOOS {
    48  	case "nacl":
    49  		t.Skipf("skipping test on %q", runtime.GOOS)
    50  	}
    51  
    52  	for i := 0; i < len(porttests); i++ {
    53  		tt := porttests[i]
    54  		if port, err := LookupPort(tt.netw, tt.name); port != tt.port || (err == nil) != tt.ok {
    55  			t.Errorf("LookupPort(%q, %q) = %v, %v; want %v",
    56  				tt.netw, tt.name, port, err, tt.port)
    57  		}
    58  	}
    59  }