github.com/Cloud-Foundations/Dominator@v0.3.4/lib/srpc/client_test.go (about)

     1  package srpc
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  	"time"
     7  )
     8  
     9  func TestDialCloseClose(t *testing.T) {
    10  	addr, err := makeListener(true, false)
    11  	if err != nil {
    12  		t.Fatal(err)
    13  	}
    14  	origNumOpenClients := numOpenClientConnections
    15  	client, err := DialHTTP("tcp", addr.String(), 100*time.Millisecond)
    16  	if err != nil {
    17  		t.Fatal(err)
    18  	}
    19  	if client.IsFromClientResource() {
    20  		t.Fatal("IsFromClientResource() returned true, should be false")
    21  	}
    22  	if numOpenClientConnections != origNumOpenClients+1 {
    23  		t.Fatalf("numOpenClientConnections: %d != %d",
    24  			numOpenClientConnections, origNumOpenClients+1)
    25  	}
    26  	if err := client.Close(); err != nil {
    27  		t.Fatal(err)
    28  	}
    29  	if numOpenClientConnections != origNumOpenClients {
    30  		t.Fatalf("numOpenClientConnections: %d != %d",
    31  			numOpenClientConnections, origNumOpenClients)
    32  	}
    33  	if err := client.Close(); err != nil && err != os.ErrClosed {
    34  		t.Fatal(err)
    35  	}
    36  	if numOpenClientConnections != origNumOpenClients {
    37  		t.Fatalf("numOpenClientConnections: %d != %d",
    38  			numOpenClientConnections, origNumOpenClients)
    39  	}
    40  }