diff options
author | Wolfy-J <[email protected]> | 2018-06-23 17:34:58 +0300 |
---|---|---|
committer | Wolfy-J <[email protected]> | 2018-06-23 17:34:58 +0300 |
commit | 2a5c85f115945ca343c3104f09bce2ff089b4fc0 (patch) | |
tree | b7707dd0d2f6349468612ddc4a91ce279f70d02f /service/http | |
parent | e170f8ab968db9746918c4abb731a7d9677e2ada (diff) |
properly close
Diffstat (limited to 'service/http')
-rw-r--r-- | service/http/rpc_test.go | 68 | ||||
-rw-r--r-- | service/http/service_test.go | 2 |
2 files changed, 68 insertions, 2 deletions
diff --git a/service/http/rpc_test.go b/service/http/rpc_test.go index de7ed0c3..491e863c 100644 --- a/service/http/rpc_test.go +++ b/service/http/rpc_test.go @@ -10,6 +10,8 @@ import ( "testing" "time" "runtime" + "os" + "encoding/json" ) func Test_RPC(t *testing.T) { @@ -78,8 +80,72 @@ func Test_RPC_Unix(t *testing.T) { c.Register(rpc.ID, &rpc.Service{}) c.Register(ID, &Service{}) + sock := `unix://` + os.TempDir() + `/rpc.unix` + j, _ := json.Marshal(sock) + + assert.NoError(t, c.Init(&testCfg{ + rpcCfg: `{"enable":true, "listen":` + string(j) + `}`, + httpCfg: `{ + "enable": true, + "address": ":6029", + "maxRequest": 1024, + "uploads": { + "dir": ` + tmpDir() + `, + "forbid": [] + }, + "workers":{ + "command": "php ../../php-src/tests/http/client.php pid pipes", + "relay": "pipes", + "pool": { + "numWorkers": 1, + "allocateTimeout": 10000000, + "destroyTimeout": 10000000 + } + } + }`})) + + s, _ := c.Get(ID) + ss := s.(*Service) + + s2, _ := c.Get(rpc.ID) + rs := s2.(*rpc.Service) + + go func() { c.Serve() }() + time.Sleep(time.Millisecond * 100) + defer c.Stop() + + res, _, _ := get("http://localhost:6029") + assert.Equal(t, strconv.Itoa(*ss.rr.Workers()[0].Pid), res) + + cl, err := rs.Client() + assert.NoError(t, err) + + r := "" + assert.NoError(t, cl.Call("http.Reset", true, &r)) + assert.Equal(t, "OK", r) + + res2, _, _ := get("http://localhost:6029") + assert.Equal(t, strconv.Itoa(*ss.rr.Workers()[0].Pid), res2) + assert.NotEqual(t, res, res2) +} + +func Test_RPC_Unix_Double(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("not supported on " + runtime.GOOS) + } + + logger, _ := test.NewNullLogger() + logger.SetLevel(logrus.DebugLevel) + + c := service.NewContainer(logger) + c.Register(rpc.ID, &rpc.Service{}) + c.Register(ID, &Service{}) + + sock := `unix://` + os.TempDir() + `/rpc.unix` + j, _ := json.Marshal(sock) + assert.NoError(t, c.Init(&testCfg{ - rpcCfg: `{"enable":true, "listen":"unix://` + tmpDir() + `/rpc.unix"}`, + rpcCfg: `{"enable":true, "listen":` + string(j) + `}`, httpCfg: `{ "enable": true, "address": ":6029", diff --git a/service/http/service_test.go b/service/http/service_test.go index 55fa660b..10a20662 100644 --- a/service/http/service_test.go +++ b/service/http/service_test.go @@ -397,4 +397,4 @@ func tmpDir() string { r, _ := json.Marshal(p) return string(r) -} +}
\ No newline at end of file |