summaryrefslogtreecommitdiff
path: root/plugins/http/test
diff options
context:
space:
mode:
authorValery Piashchynski <[email protected]>2020-11-17 16:25:35 +0300
committerValery Piashchynski <[email protected]>2020-11-17 16:25:35 +0300
commit3cbdd3d3e44b3b4e72565d666391e3b732950774 (patch)
tree7c60fafe1c33076631e39fe26be187c9ca359a3e /plugins/http/test
parenta57d064407e2ed7f35dd591101b5d421c64605e1 (diff)
Get http working with new container
Diffstat (limited to 'plugins/http/test')
-rw-r--r--plugins/http/test/.rr-http.yaml37
-rw-r--r--plugins/http/test/http_test.go53
-rw-r--r--plugins/http/test/psr-worker.php23
-rw-r--r--plugins/http/test/rr-http.yaml34
4 files changed, 111 insertions, 36 deletions
diff --git a/plugins/http/test/.rr-http.yaml b/plugins/http/test/.rr-http.yaml
new file mode 100644
index 00000000..6fbfd378
--- /dev/null
+++ b/plugins/http/test/.rr-http.yaml
@@ -0,0 +1,37 @@
+server:
+ command: "php psr-worker.php"
+ user: ""
+ group: ""
+ env:
+ "RR_HTTP": "true"
+ relay: "pipes"
+ relayTimeout: "20s"
+
+http:
+ debug: true
+ address: 0.0.0.0:8080
+ maxRequestSize: 200
+ middleware: [ "" ]
+ uploads:
+ forbid: [ ".php", ".exe", ".bat" ]
+ trustedSubnets: [ "10.0.0.0/8", "127.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "::1/128", "fc00::/7", "fe80::/10" ]
+ pool:
+ numWorkers: 4
+ maxJobs: 0
+ allocateTimeout: 60s
+ destroyTimeout: 60s
+
+ # ssl:
+ # port: 443
+ # redirect: true
+ # cert: server.crt
+ # key: server.key
+ # rootCa: root.crt
+ fcgi:
+ address: tcp://0.0.0.0:6920
+ http2:
+ enabled: false
+ h2c: false
+ maxConcurrentStreams: 128
+
+
diff --git a/plugins/http/test/http_test.go b/plugins/http/test/http_test.go
index c109d930..07925d33 100644
--- a/plugins/http/test/http_test.go
+++ b/plugins/http/test/http_test.go
@@ -1,10 +1,18 @@
package test
import (
+ "os"
+ "os/signal"
+ "syscall"
"testing"
+ "time"
"github.com/spiral/endure"
"github.com/spiral/roadrunner/v2/plugins/config"
+ "github.com/spiral/roadrunner/v2/plugins/http"
+ "github.com/spiral/roadrunner/v2/plugins/logger"
+ //rpcPlugin "github.com/spiral/roadrunner/v2/plugins/rpc"
+ "github.com/spiral/roadrunner/v2/plugins/server"
"github.com/stretchr/testify/assert"
)
@@ -14,10 +22,51 @@ func TestHTTPInit(t *testing.T) {
cfg := &config.Viper{
Path: ".rr-http.yaml",
- Prefix: "",
+ Prefix: "rr",
}
+
err = cont.RegisterAll(
+ cfg,
+ //&rpcPlugin.Plugin{},
+ &logger.ZapLogger{},
+ &server.Plugin{},
+ &http.Plugin{},
+ )
+ assert.NoError(t, err)
+
+ err = cont.Init()
+ if err != nil {
+ t.Fatal(err)
+ }
- )
+ ch, err := cont.Serve()
assert.NoError(t, err)
+
+ sig := make(chan os.Signal, 1)
+ signal.Notify(sig, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
+
+ tt := time.NewTimer(time.Minute * 3)
+ for {
+ select {
+ case e := <-ch:
+ assert.Fail(t, "error", e.Error.Error())
+ err = cont.Stop()
+ if err != nil {
+ assert.FailNow(t, "error", err.Error())
+ }
+ case <-sig:
+ err = cont.Stop()
+ if err != nil {
+ assert.FailNow(t, "error", err.Error())
+ }
+ return
+ case <-tt.C:
+ // timeout
+ err = cont.Stop()
+ if err != nil {
+ assert.FailNow(t, "error", err.Error())
+ }
+ return
+ }
+ }
}
diff --git a/plugins/http/test/psr-worker.php b/plugins/http/test/psr-worker.php
new file mode 100644
index 00000000..65fc6bde
--- /dev/null
+++ b/plugins/http/test/psr-worker.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * @var Goridge\RelayInterface $relay
+ */
+use Spiral\Goridge;
+use Spiral\RoadRunner;
+
+ini_set('display_errors', 'stderr');
+require dirname(__DIR__) . "/../../vendor_php/autoload.php";
+
+$worker = new RoadRunner\Worker(new Goridge\StreamRelay(STDIN, STDOUT));
+$psr7 = new RoadRunner\PSR7Client($worker);
+
+while ($req = $psr7->acceptRequest()) {
+ try {
+ $resp = new \Zend\Diactoros\Response();
+ $resp->getBody()->write("hello world");
+
+ $psr7->respond($resp);
+ } catch (\Throwable $e) {
+ $psr7->getWorker()->error((string)$e);
+ }
+} \ No newline at end of file
diff --git a/plugins/http/test/rr-http.yaml b/plugins/http/test/rr-http.yaml
deleted file mode 100644
index 8a04a1f1..00000000
--- a/plugins/http/test/rr-http.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-http:
- address: 0.0.0.0:8080
- maxRequestSize: 200
- middlewares: [ "" ]
- uploads:
- forbid: [ ".php", ".exe", ".bat" ]
- trustedSubnets: [ "10.0.0.0/8", "127.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "::1/128", "fc00::/7", "fe80::/10" ]
- workers:
- command: "php psr-worker.php pipes"
- user: ""
-
- # connection method (pipes, tcp://:9000, unix://socket.unix). default "pipes"
- relay: "pipes"
-
- pool:
- numWorkers: 4
- maxJobs: 0
- allocateTimeout: 60
- destroyTimeout: 60
-
- ssl:
- port: 443
- redirect: true
- cert: server.crt
- key: server.key
- rootCa: root.crt
- fcgi:
- address: tcp://0.0.0.0:6920
- http2:
- enabled: true
- h2c: true
- maxConcurrentStreams: 128
-
-