[GIT-PULLS] [php-src] PR #22799: Test hardening

[email protected] (NickSdot) Sat, 18 Jul 2026 19:35:56 +0000
Newsgroups php.git-pulls
Message-ID <[email protected]>
Pull Request: https://github.com/php/php-src/pull/22799
Author: NickSdot

Test files sweep to make exception assertions more robust, and slightly unify style. 

**Specifically:**
- adds thrown class to all exception assertions to protected against regressions
- further established the already recommended single exception formatting
- adds missing last line whitespaces were missing

**Target format:**

```php
echo $e::class, ': ', $e->getMessage(), \PHP_EOL; // + variations like line(), code(), etc.
```

**Approach:**
Rewrites are handled by [this](https://github.com/NickSdot/php__internals-cs) deterministic helper for conservative and safe, automated replacements. All exception assertion "flavours" from `php-src` were extracted, and the tests where they were found promoted to source fixtures. Rules were then ran against the fixtures, the results manually reviewed, and promoted to target [fixtures](https://github.com/NickSdot/php__internals-cs/tree/main/tests/Fixtures/exception_output_styles). All replacement rules are tested against the source and target fixtures. The actual "fixing" works as follows:

1. Scan PHPT files for exception-message output inside `catch` blocks.
2. Run the original PHPT through `run-tests.php`; skipped or already failing tests are not rewritten.
3. Rewrite the PHPT to the normalised exception-output shape.
4. Run the rewritten PHPT through `run-tests.php`.
5. If output changed as expected, update the expected section from the actual run output.
6. Run the updated PHPT once more.
7. Keep only rewrites that pass verification.

## Modules & Commits

### Extensions

| Module     | Commit                                                                         |
|------------|--------------------------------------------------------------------------------|
| ext/random | https://github.com/php/php-src/commit/9dc4e194eddbe543f098c61bde8917a37c232bde |
| ext/uri    | https://github.com/php/php-src/commit/179f176cdcac47fa8c631e6afd46ca708a28e14c |

### Zend

| Module | Commit |
|--------|--------|
| Zend   | tbd    |

---

PoC, marked as draft for now, and in coordination with Tim for now only applied to `ext/random` and `ext/uri`.