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 }