(t *testing.T)
| 18 | ) |
| 19 | |
| 20 | func TestPersistentZvalRoundtrip(t *testing.T) { |
| 21 | cwd, _ := os.Getwd() |
| 22 | testDataDir := cwd + "/testdata/" |
| 23 | |
| 24 | require.NoError(t, frankenphp.Init()) |
| 25 | t.Cleanup(frankenphp.Shutdown) |
| 26 | |
| 27 | req := httptest.NewRequest("GET", "http://example.com/persist-roundtrip.php", nil) |
| 28 | fr, err := frankenphp.NewRequestWithContext(req, frankenphp.WithRequestDocumentRoot(testDataDir, false)) |
| 29 | require.NoError(t, err) |
| 30 | |
| 31 | w := httptest.NewRecorder() |
| 32 | err = frankenphp.ServeHTTP(w, fr) |
| 33 | if err != nil { |
| 34 | require.ErrorAs(t, err, &frankenphp.ErrRejected{}) |
| 35 | } |
| 36 | |
| 37 | body, _ := io.ReadAll(w.Result().Body) |
| 38 | out := string(body) |
| 39 | |
| 40 | if strings.Contains(out, "SKIP") { |
| 41 | t.Skip("FRANKENPHP_TEST not set; skipping persistent_zval roundtrip tests") |
| 42 | } |
| 43 | |
| 44 | require.NotContains(t, out, "FAIL", "persist-roundtrip.php reported a failure:\n"+out) |
| 45 | require.Contains(t, out, "OK null") |
| 46 | require.Contains(t, out, "OK enum active") |
| 47 | require.Contains(t, out, "OK stdClass rejected") |
| 48 | require.Contains(t, out, "OK resource rejected") |
| 49 | require.Contains(t, out, "OK nested stdClass rejected") |
| 50 | } |
nothing calls this directly
no test coverage detected