diff --git a/frankenphp.go b/frankenphp.go index 902034f16..c565a44d4 100644 --- a/frankenphp.go +++ b/frankenphp.go @@ -9,6 +9,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 +// #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 LDFLAGS: -L/usr/local/lib -L/opt/homebrew/opt/libiconv/lib -L/usr/lib -lphp -lxml2 -lresolv -lsqlite3 -ldl -lm -lutil // #cgo darwin LDFLAGS: -liconv diff --git a/frankenphp_test.go b/frankenphp_test.go index 099d2f99f..69f76cdd3 100644 --- a/frankenphp_test.go +++ b/frankenphp_test.go @@ -438,6 +438,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)