get.pme.sh/pnats@v0.0.0-20240304004023-26bb5a137ed0/test/port_test.go (about) 1 // Copyright 2014-2019 The NATS Authors 2 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // you may not use this file except in compliance with the License. 4 // You may obtain a copy of the License at 5 // 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package test 15 16 import ( 17 "net" 18 "strconv" 19 "testing" 20 21 "get.pme.sh/pnats/server" 22 ) 23 24 func TestResolveRandomPort(t *testing.T) { 25 opts := &server.Options{Host: "127.0.0.1", Port: server.RANDOM_PORT, NoSigs: true} 26 s := RunServer(opts) 27 defer s.Shutdown() 28 29 addr := s.Addr() 30 _, port, err := net.SplitHostPort(addr.String()) 31 if err != nil { 32 t.Fatalf("Expected no error: Got %v\n", err) 33 } 34 35 portNum, err := strconv.Atoi(port) 36 if err != nil { 37 t.Fatalf("Expected no error: Got %v\n", err) 38 } 39 40 if portNum == server.DEFAULT_PORT { 41 t.Fatalf("Expected server to choose a random port\nGot: %d", server.DEFAULT_PORT) 42 } 43 44 if portNum == server.RANDOM_PORT { 45 t.Fatalf("Expected server to choose a random port\nGot: %d", server.RANDOM_PORT) 46 } 47 48 if opts.Port != portNum { 49 t.Fatalf("Options port (%d) should have been overridden by chosen random port (%d)", 50 opts.Port, portNum) 51 } 52 }