summaryrefslogtreecommitdiff
path: root/plugins/http/tests/rpc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/http/tests/rpc_test.go')
-rw-r--r--plugins/http/tests/rpc_test.go222
1 files changed, 222 insertions, 0 deletions
diff --git a/plugins/http/tests/rpc_test.go b/plugins/http/tests/rpc_test.go
new file mode 100644
index 00000000..925aa082
--- /dev/null
+++ b/plugins/http/tests/rpc_test.go
@@ -0,0 +1,222 @@
+package tests
+
+//
+//import (
+// json "github.com/json-iterator/go"
+// "github.com/sirupsen/logrus"
+// "github.com/sirupsen/logrus/hooks/test"
+// "github.com/spiral/roadrunner/service"
+// "github.com/spiral/roadrunner/service/rpc"
+// "github.com/stretchr/testify/assert"
+// "os"
+// "strconv"
+// "testing"
+// "time"
+//)
+//
+//func Test_RPC(t *testing.T) {
+// logger, _ := test.NewNullLogger()
+// logger.SetLevel(logrus.DebugLevel)
+//
+// c := service.NewContainer(logger)
+// c.Register(rpc.ID, &rpc.Service{})
+// c.Register(ID, &Service{})
+//
+// assert.NoError(t, c.Init(&testCfg{
+// rpcCfg: `{"enable":true, "listen":"tcp://:5004"}`,
+// httpCfg: `{
+// "enable": true,
+// "address": ":16031",
+// "maxRequestSize": 1024,
+// "uploads": {
+// "dir": ` + tmpDir() + `,
+// "forbid": []
+// },
+// "workers":{
+// "command": "php ../../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() {
+// err := c.Serve()
+// if err != nil {
+// t.Errorf("error during the Serve: error %v", err)
+// }
+// }()
+//
+// time.Sleep(time.Second)
+//
+// res, _, err := get("http://localhost:16031")
+// if err != nil {
+// t.Fatal(err)
+// }
+// assert.Equal(t, strconv.Itoa(*ss.pool.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, _, err := get("http://localhost:16031")
+// if err != nil {
+// t.Fatal(err)
+// }
+// assert.Equal(t, strconv.Itoa(*ss.pool.Workers()[0].Pid), res2)
+// assert.NotEqual(t, res, res2)
+// c.Stop()
+//}
+//
+//func Test_RPC_Unix(t *testing.T) {
+// 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.ConfigCompatibleWithStandardLibrary
+// data, _ := j.Marshal(sock)
+//
+// assert.NoError(t, c.Init(&testCfg{
+// rpcCfg: `{"enable":true, "listen":` + string(data) + `}`,
+// httpCfg: `{
+// "enable": true,
+// "address": ":6032",
+// "maxRequestSize": 1024,
+// "uploads": {
+// "dir": ` + tmpDir() + `,
+// "forbid": []
+// },
+// "workers":{
+// "command": "php ../../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() {
+// err := c.Serve()
+// if err != nil {
+// t.Errorf("error during the Serve: error %v", err)
+// }
+// }()
+//
+// time.Sleep(time.Millisecond * 500)
+//
+// res, _, err := get("http://localhost:6032")
+// if err != nil {
+// c.Stop()
+// t.Fatal(err)
+// }
+// if ss.pool.Workers() != nil && len(ss.pool.Workers()) > 0 {
+// assert.Equal(t, strconv.Itoa(*ss.pool.Workers()[0].Pid), res)
+// } else {
+// c.Stop()
+// t.Fatal("no workers initialized")
+// }
+//
+// cl, err := rs.Client()
+// if err != nil {
+// c.Stop()
+// t.Fatal(err)
+// }
+//
+// r := ""
+// assert.NoError(t, cl.Call("http.Reset", true, &r))
+// assert.Equal(t, "OK", r)
+//
+// res2, _, err := get("http://localhost:6032")
+// if err != nil {
+// c.Stop()
+// t.Fatal(err)
+// }
+// assert.Equal(t, strconv.Itoa(*ss.pool.Workers()[0].Pid), res2)
+// assert.NotEqual(t, res, res2)
+// c.Stop()
+//}
+//
+//func Test_Workers(t *testing.T) {
+// logger, _ := test.NewNullLogger()
+// logger.SetLevel(logrus.DebugLevel)
+//
+// c := service.NewContainer(logger)
+// c.Register(rpc.ID, &rpc.Service{})
+// c.Register(ID, &Service{})
+//
+// assert.NoError(t, c.Init(&testCfg{
+// rpcCfg: `{"enable":true, "listen":"tcp://:5005"}`,
+// httpCfg: `{
+// "enable": true,
+// "address": ":6033",
+// "maxRequestSize": 1024,
+// "uploads": {
+// "dir": ` + tmpDir() + `,
+// "forbid": []
+// },
+// "workers":{
+// "command": "php ../../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() {
+// err := c.Serve()
+// if err != nil {
+// t.Errorf("error during the Serve: error %v", err)
+// }
+// }()
+// time.Sleep(time.Millisecond * 500)
+//
+// cl, err := rs.Client()
+// assert.NoError(t, err)
+//
+// r := &WorkerList{}
+// assert.NoError(t, cl.Call("http.Workers", true, &r))
+// assert.Len(t, r.Workers, 1)
+//
+// assert.Equal(t, *ss.pool.Workers()[0].Pid, r.Workers[0].Pid)
+// c.Stop()
+//}
+//
+//func Test_Errors(t *testing.T) {
+// r := &rpcServer{nil}
+//
+// assert.Error(t, r.Reset(true, nil))
+// assert.Error(t, r.Workers(true, nil))
+//}