mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-15 10:40:41 -07:00
I noticed that when running the test suite, there would be a file server/log1.txt left. This file is created by one of the config reload test. Running this test individually was doing the proper cleanup. I noticed that the Signal test that was checking that files could be rotated was causing this side effect. It turns out that none of the config reload tests were disabling the signal handler (NoSigs=true), and since the go routine would be left running, running the TestSignalToReOpenLogFile() test would interact with an already finished test. I put a thread dump in handleSignals() to track all tests that were causing this function to start the go routine because NoSigs was not set to true. I fixed all those tests. At this time, there are only 2 tests that need to start the signal handler. I have also fixed the code so that the signal handler routine select on a server quitCh that is closed on shutdown so that this go routine exit and is waiting on using the grWG wait group.
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
// Copyright 2014-2018 The NATS Authors
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package test
|
|
|
|
import (
|
|
"net"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/nats-io/gnatsd/server"
|
|
)
|
|
|
|
func TestResolveRandomPort(t *testing.T) {
|
|
opts := &server.Options{Host: "127.0.0.1", Port: server.RANDOM_PORT, NoSigs: true}
|
|
s := RunServer(opts)
|
|
defer s.Shutdown()
|
|
|
|
addr := s.Addr()
|
|
_, port, err := net.SplitHostPort(addr.String())
|
|
if err != nil {
|
|
t.Fatalf("Expected no error: Got %v\n", err)
|
|
}
|
|
|
|
portNum, err := strconv.Atoi(port)
|
|
if err != nil {
|
|
t.Fatalf("Expected no error: Got %v\n", err)
|
|
}
|
|
|
|
if portNum == server.DEFAULT_PORT {
|
|
t.Fatalf("Expected server to choose a random port\nGot: %d", server.DEFAULT_PORT)
|
|
}
|
|
|
|
if portNum == server.RANDOM_PORT {
|
|
t.Fatalf("Expected server to choose a random port\nGot: %d", server.RANDOM_PORT)
|
|
}
|
|
|
|
if opts.Port != portNum {
|
|
t.Fatalf("Options port (%d) should have been overridden by chosen random port (%d)",
|
|
opts.Port, portNum)
|
|
}
|
|
}
|