diff --git a/frankenphp.go b/frankenphp.go index a0fda8fa3..f4f716c1b 100644 --- a/frankenphp.go +++ b/frankenphp.go @@ -10,6 +10,7 @@ package frankenphp //go:generate rm -Rf C-Thread-Pool/.git C-Thread-Pool/.circleci C-Thread-Pool/docs C-Thread-Pool/tests // #cgo CFLAGS: -Wall -Werror +// #cgo CFLAGS: -fsplit-stack // #cgo CFLAGS: -I/usr/local/include/php -I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM -I/usr/local/include/php/main // #cgo linux CFLAGS: -D_GNU_SOURCE // #cgo LDFLAGS: -L/usr/local/lib -L/opt/homebrew/opt/libiconv/lib -L/usr/lib -lphp -lxml2 -lresolv -lsqlite3 -ldl -lm -lutil diff --git a/frankenphp_test.go b/frankenphp_test.go index ed389b43b..4346f64b4 100644 --- a/frankenphp_test.go +++ b/frankenphp_test.go @@ -487,6 +487,23 @@ func testEarlyHints(t *testing.T, opts *testOptions) { }, opts) } +func TestFiberBasic_module(t *testing.T) { testFiberBasic(t, &testOptions{}) } +func TestFiberBasic_worker(t *testing.T) { + testFiberBasic(t, &testOptions{workerScript: "fiber-basic.php"}) +} +func testFiberBasic(t *testing.T, opts *testOptions) { + runTest(t, func(handler func(http.ResponseWriter, *http.Request), _ *httptest.Server, i int) { + req := httptest.NewRequest("GET", fmt.Sprintf("http://example.com/fiber-basic.php?i=%d", i), nil) + w := httptest.NewRecorder() + handler(w, req) + + resp := w.Result() + body, _ := io.ReadAll(resp.Body) + + assert.Contains(t, string(body), "OK") + }, opts) +} + type streamResponseRecorder struct { *httptest.ResponseRecorder writeCallback func(buf []byte) diff --git a/testdata/fiber-basic.php b/testdata/fiber-basic.php new file mode 100644 index 000000000..eef6a1b74 --- /dev/null +++ b/testdata/fiber-basic.php @@ -0,0 +1,10 @@ +start(); +}; +