summaryrefslogtreecommitdiff
path: root/socket_factory_test.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-05 22:48:27 +0300
committerWolfy-J <[email protected]>2018-06-05 22:48:27 +0300
commit6adaf713b47c9a3ab3a516e21d2d4ecf7f2075d6 (patch)
tree6bcf1bfea1e2f87a3ae7065612c0df43c90c1cdc /socket_factory_test.go
parent3112f9b58c73773cea972fd79f04d33f8f7d7edd (diff)
breaking the tests
Diffstat (limited to 'socket_factory_test.go')
-rw-r--r--socket_factory_test.go427
1 files changed, 0 insertions, 427 deletions
diff --git a/socket_factory_test.go b/socket_factory_test.go
deleted file mode 100644
index f6b1350c..00000000
--- a/socket_factory_test.go
+++ /dev/null
@@ -1,427 +0,0 @@
-package roadrunner
-
-import (
- "github.com/stretchr/testify/assert"
- "net"
- "os/exec"
- "runtime"
- "testing"
- "time"
-)
-
-func Test_Tcp_Start(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "tcp")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.NoError(t, err)
- assert.NotNil(t, w)
-
- go func() {
- assert.NoError(t, w.Wait())
- }()
-
- w.Stop()
-}
-
-func Test_Tcp_StartCloseFactory(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "tcp")
-
- f := NewSocketFactory(ls, time.Minute)
- defer f.Close()
-
- w, err := f.SpawnWorker(cmd)
- assert.NoError(t, err)
- assert.NotNil(t, w)
-
- go func() {
- assert.NoError(t, w.Wait())
- }()
-
- w.Stop()
-}
-
-func Test_Tcp_StartError(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "pipes")
- cmd.Start()
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.Error(t, err)
- assert.Nil(t, w)
-}
-
-func Test_Tcp_Failboot(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/failboot.php")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.Nil(t, w)
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "failboot")
-}
-
-func Test_Tcp_Timeout(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/slow-client.php", "echo", "tcp", "200", "0")
-
- w, err := NewSocketFactory(ls, time.Millisecond*100).SpawnWorker(cmd)
- assert.Nil(t, w)
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "relay timeout")
-}
-
-func Test_Tcp_Invalid(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/invalid.php")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.Error(t, err)
- assert.Nil(t, w)
-}
-
-func Test_Tcp_Broken(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "broken", "tcp")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- err := w.Wait()
-
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "undefined_function()")
- }()
- defer w.Stop()
-
- res, err := w.Exec(&Payload{Body: []byte("hello")})
-
- assert.Error(t, err)
- assert.Nil(t, res)
-}
-
-func Test_Tcp_Echo(t *testing.T) {
- time.Sleep(time.Millisecond * 10) // to ensure free socket
-
- ls, err := net.Listen("tcp", "localhost:9007")
- if assert.NoError(t, err) {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "tcp")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- assert.NoError(t, w.Wait())
- }()
- defer w.Stop()
-
- res, err := w.Exec(&Payload{Body: []byte("hello")})
-
- assert.NoError(t, err)
- assert.NotNil(t, res)
- assert.NotNil(t, res.Body)
- assert.Nil(t, res.Context)
-
- assert.Equal(t, "hello", res.String())
-}
-
-func Test_Unix_Start(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "unix")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.NoError(t, err)
- assert.NotNil(t, w)
-
- go func() {
- assert.NoError(t, w.Wait())
- }()
-
- w.Stop()
-}
-
-func Test_Unix_Failboot(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/failboot.php")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.Nil(t, w)
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "failboot")
-}
-
-func Test_Unix_Timeout(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/slow-client.php", "echo", "unix", "200", "0")
-
- w, err := NewSocketFactory(ls, time.Millisecond*100).SpawnWorker(cmd)
- assert.Nil(t, w)
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "relay timeout")
-}
-
-func Test_Unix_Invalid(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/invalid.php")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- assert.Error(t, err)
- assert.Nil(t, w)
-}
-
-func Test_Unix_Broken(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "broken", "unix")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- err := w.Wait()
-
- assert.Error(t, err)
- assert.Contains(t, err.Error(), "undefined_function()")
- }()
- defer w.Stop()
-
- res, err := w.Exec(&Payload{Body: []byte("hello")})
-
- assert.Error(t, err)
- assert.Nil(t, res)
-}
-
-func Test_Unix_Echo(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- t.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "unix")
-
- w, err := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- assert.NoError(t, w.Wait())
- }()
- defer w.Stop()
-
- res, err := w.Exec(&Payload{Body: []byte("hello")})
-
- assert.NoError(t, err)
- assert.NotNil(t, res)
- assert.NotNil(t, res.Body)
- assert.Nil(t, res.Context)
-
- assert.Equal(t, "hello", res.String())
-}
-
-func Benchmark_Tcp_SpawnWorker_Stop(b *testing.B) {
- ls, err := net.Listen("tcp", "localhost:9007")
- if err == nil {
- defer ls.Close()
- } else {
- b.Skip("socket is busy")
- }
-
- f := NewSocketFactory(ls, time.Minute)
- for n := 0; n < b.N; n++ {
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "tcp")
-
- w, _ := f.SpawnWorker(cmd)
- go func() {
- if w.Wait() != nil {
- b.Fail()
- }
- }()
-
- w.Stop()
- }
-}
-
-func Benchmark_Tcp_Worker_ExecEcho(b *testing.B) {
- ls, err := net.Listen("tcp", "localhost:9007")
- if err == nil {
- defer ls.Close()
- } else {
- b.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "tcp")
-
- w, _ := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- w.Wait()
- }()
- defer w.Stop()
-
- for n := 0; n < b.N; n++ {
- if _, err := w.Exec(&Payload{Body: []byte("hello")}); err != nil {
- b.Fail()
- }
- }
-}
-
-func Benchmark_Unix_SpawnWorker_Stop(b *testing.B) {
- if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
- b.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- b.Skip("socket is busy")
- }
-
- f := NewSocketFactory(ls, time.Minute)
- for n := 0; n < b.N; n++ {
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "unix")
-
- w, _ := f.SpawnWorker(cmd)
- go func() {
- if w.Wait() != nil {
- b.Fail()
- }
- }()
-
- w.Stop()
- }
-}
-
-func Benchmark_Unix_Worker_ExecEcho(b *testing.B) {
- if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
- b.Skip("not supported on " + runtime.GOOS)
- }
-
- ls, err := net.Listen("unix", "sock.unix")
- if err == nil {
- defer ls.Close()
- } else {
- b.Skip("socket is busy")
- }
-
- cmd := exec.Command("php", "php-src/tests/client.php", "echo", "unix")
-
- w, _ := NewSocketFactory(ls, time.Minute).SpawnWorker(cmd)
- go func() {
- w.Wait()
- }()
- defer w.Stop()
-
- for n := 0; n < b.N; n++ {
- if _, err := w.Exec(&Payload{Body: []byte("hello")}); err != nil {
- b.Fail()
- }
- }
-}