diff -Nru phpunit-9.5.4/build/scripts/phar-version.php phpunit-9.5.10/build/scripts/phar-version.php --- phpunit-9.5.4/build/scripts/phar-version.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/build/scripts/phar-version.php 2021-09-25 07:38:51.000000000 +0000 @@ -1,20 +1,21 @@ #!/usr/bin/env php ')) { fwrite( STDERR, @@ -15,6 +30,22 @@ die(1); } +foreach (['dom', 'json', 'libxml', 'mbstring', 'tokenizer', 'xml', 'xmlwriter'] as $extension) { + if (extension_loaded($extension)) { + continue; + } + + fwrite( + STDERR, + sprintf( + 'PHPUnit requires the "%s" extension.' . PHP_EOL, + $extension + ) + ); + + die(1); +} + if (__FILE__ === realpath($_SERVER['SCRIPT_NAME'])) { $execute = true; } else { @@ -38,7 +69,26 @@ Phar::mapPhar('___PHAR___'); -___FILELIST___ +spl_autoload_register( + function ($class) { + static $classes = null; + + if ($classes === null) { + $classes = [___CLASSLIST___]; + } + + if (isset($classes[$class])) { + require_once 'phar://___PHAR___' . $classes[$class]; + } + }, + ___EXCEPTION___, + ___PREPEND___ +); + +foreach ([___CLASSLIST___] as $file) { + require_once 'phar://___PHAR___' . $file; +} + require __PHPUNIT_PHAR_ROOT__ . '/phpunit/Framework/Assert/Functions.php'; if ($execute) { diff -Nru phpunit-9.5.4/build/templates/library-phar-autoload.php.in phpunit-9.5.10/build/templates/library-phar-autoload.php.in --- phpunit-9.5.4/build/templates/library-phar-autoload.php.in 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/build/templates/library-phar-autoload.php.in 2021-09-25 07:38:51.000000000 +0000 @@ -4,7 +4,26 @@ Phar::mapPhar('___PHAR___'); -___FILELIST___ +spl_autoload_register( + function ($class) { + static $classes = null; + + if ($classes === null) { + $classes = [___CLASSLIST___]; + } + + if (isset($classes[$class])) { + require_once 'phar://___PHAR___' . $classes[$class]; + } + }, + ___EXCEPTION___, + ___PREPEND___ +); + +foreach ([___CLASSLIST___] as $file) { + require_once 'phar://___PHAR___' . $file; +} + require __PHPUNIT_PHAR_ROOT__ . '/phpunit/Framework/Assert/Functions.php'; __HALT_COMPILER(); diff -Nru phpunit-9.5.4/build.xml phpunit-9.5.10/build.xml --- phpunit-9.5.4/build.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/build.xml 2021-09-25 07:38:51.000000000 +0000 @@ -100,23 +100,23 @@ - + - + - + - + - + @@ -390,11 +390,9 @@ - - - + @@ -408,10 +406,9 @@ - - + @@ -452,6 +449,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru phpunit-9.5.4/ChangeLog-8.5.md phpunit-9.5.10/ChangeLog-8.5.md --- phpunit-9.5.4/ChangeLog-8.5.md 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/ChangeLog-8.5.md 2021-09-25 07:38:51.000000000 +0000 @@ -2,6 +2,54 @@ All notable changes of the PHPUnit 8.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [8.5.21] - 2021-09-25 + +### Changed + +* PHPUnit no longer converts PHP deprecations to exceptions by default (configure `convertDeprecationsToExceptions="true"` to enable this) +* The PHPUnit XML configuration file generator now configures `convertDeprecationsToExceptions="true"` + +### Fixed + +* [#4772](https://github.com/sebastianbergmann/phpunit/pull/4772): TestDox HTML report not displayed correctly when browser has custom colour settings + +## [8.5.20] - 2021-08-31 + +### Fixed + +* [#4751](https://github.com/sebastianbergmann/phpunit/issues/4751): Configuration validation fails when using brackets in glob pattern + +## [8.5.19] - 2021-07-31 + +### Fixed + +* [#4740](https://github.com/sebastianbergmann/phpunit/issues/4740): `phpunit.phar` does not work with PHP 8.1 + +## [8.5.18] - 2021-07-19 + +### Fixed + +* [#4720](https://github.com/sebastianbergmann/phpunit/issues/4720): PHPUnit does not verify its own PHP extension requirements + +## [8.5.17] - 2021-06-23 + +### Changed + +* PHPUnit now errors out on startup when `PHP_VERSION` contains a value that is not compatible with `version_compare()`, for instance `X.Y.Z-(to be removed in future macOS)` + +## [8.5.16] - 2021-06-05 + +### Changed + +* The test result cache (the storage for which is implemented in `PHPUnit\Runner\DefaultTestResultCache`) no longer uses PHP's `serialize()` and `unserialize()` functions for persistence. It now uses a versioned JSON format instead that is independent of PHP implementation details (see [#3581](https://github.com/sebastianbergmann/phpunit/issues/3581) and [#4662](https://github.com/sebastianbergmann/phpunit/pull/4662) for examples why this is a problem). When PHPUnit tries to load the test result cache from a file that does not exist, or from a file that does not contain data in JSON format, or from a file that contains data in a JSON format version other than the one used by the currently running PHPUnit version, then this is considered to be a "cache miss". An empty `DefaultTestResultCache` object is created in this case. This should also prevent PHPUnit from crashing when trying to load a test result cache file created by a different version of PHPUnit (see [#4580](https://github.com/sebastianbergmann/phpunit/issues/4580) for example). + +### Fixed + +* [#4663](https://github.com/sebastianbergmann/phpunit/issues/4663): `TestCase::expectError()` works on PHP 7.3, but not on PHP >= 7.4 +* [#4678](https://github.com/sebastianbergmann/phpunit/pull/4678): Stubbed methods with `iterable` return types should return empty array by default +* [#4692](https://github.com/sebastianbergmann/phpunit/issues/4692): Annotations in single-line doc-comments are not handled correctly +* [#4694](https://github.com/sebastianbergmann/phpunit/issues/4694): `TestCase::getMockFromWsdl()` does not work with PHP 8.1-dev + ## [8.5.15] - 2021-03-17 ### Fixed @@ -130,6 +178,12 @@ * [#3967](https://github.com/sebastianbergmann/phpunit/issues/3967): Cannot double interface that extends interface that extends `\Throwable` * [#3968](https://github.com/sebastianbergmann/phpunit/pull/3968): Test class run in a separate PHP process are passing when `exit` called inside +[8.5.21]: https://github.com/sebastianbergmann/phpunit/compare/8.5.20...8.5.21 +[8.5.20]: https://github.com/sebastianbergmann/phpunit/compare/8.5.19...8.5.20 +[8.5.19]: https://github.com/sebastianbergmann/phpunit/compare/8.5.18...8.5.19 +[8.5.18]: https://github.com/sebastianbergmann/phpunit/compare/8.5.17...8.5.18 +[8.5.17]: https://github.com/sebastianbergmann/phpunit/compare/8.5.16...8.5.17 +[8.5.16]: https://github.com/sebastianbergmann/phpunit/compare/8.5.15...8.5.16 [8.5.15]: https://github.com/sebastianbergmann/phpunit/compare/8.5.14...8.5.15 [8.5.14]: https://github.com/sebastianbergmann/phpunit/compare/8.5.13...8.5.14 [8.5.13]: https://github.com/sebastianbergmann/phpunit/compare/8.5.12...8.5.13 diff -Nru phpunit-9.5.4/ChangeLog-9.5.md phpunit-9.5.10/ChangeLog-9.5.md --- phpunit-9.5.4/ChangeLog-9.5.md 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/ChangeLog-9.5.md 2021-09-25 07:38:51.000000000 +0000 @@ -2,6 +2,56 @@ All notable changes of the PHPUnit 9.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [9.5.10] - 2021-09-25 + +### Changed + +* PHPUnit no longer converts PHP deprecations to exceptions by default (configure `convertDeprecationsToExceptions="true"` to enable this) +* The PHPUnit XML configuration file generator now configures `convertDeprecationsToExceptions="true"` + +### Fixed + +* [#4772](https://github.com/sebastianbergmann/phpunit/pull/4772): TestDox HTML report not displayed correctly when browser has custom colour settings + +## [9.5.9] - 2021-08-31 + +### Fixed + +* [#4750](https://github.com/sebastianbergmann/phpunit/issues/4750): Automatic return value generation leads to invalid (and superfluous) test double code generation when a stubbed method returns `*|false` +* [#4751](https://github.com/sebastianbergmann/phpunit/issues/4751): Configuration validation fails when using brackets in glob pattern + +## [9.5.8] - 2021-07-31 + +### Fixed + +* [#4740](https://github.com/sebastianbergmann/phpunit/issues/4740): `phpunit.phar` does not work with PHP 8.1 + +## [9.5.7] - 2021-07-19 + +### Fixed + +* [#4720](https://github.com/sebastianbergmann/phpunit/issues/4720): PHPUnit does not verify its own PHP extension requirements +* [#4735](https://github.com/sebastianbergmann/phpunit/issues/4735): Automated return value generation does not work for stubbed methods that return `*|false` + +## [9.5.6] - 2021-06-23 + +### Changed + +* PHPUnit now errors out on startup when `PHP_VERSION` contains a value that is not compatible with `version_compare()`, for instance `X.Y.Z-(to be removed in future macOS)` + +## [9.5.5] - 2021-06-05 + +### Changed + +* The test result cache (the storage for which is implemented in `PHPUnit\Runner\DefaultTestResultCache`) no longer uses PHP's `serialize()` and `unserialize()` functions for persistence. It now uses a versioned JSON format instead that is independent of PHP implementation details (see [#3581](https://github.com/sebastianbergmann/phpunit/issues/3581) and [#4662](https://github.com/sebastianbergmann/phpunit/pull/4662) for examples why this is a problem). When PHPUnit tries to load the test result cache from a file that does not exist, or from a file that does not contain data in JSON format, or from a file that contains data in a JSON format version other than the one used by the currently running PHPUnit version, then this is considered to be a "cache miss". An empty `DefaultTestResultCache` object is created in this case. This should also prevent PHPUnit from crashing when trying to load a test result cache file created by a different version of PHPUnit (see [#4580](https://github.com/sebastianbergmann/phpunit/issues/4580) for example). + +### Fixed + +* [#4632](https://github.com/sebastianbergmann/phpunit/issues/4632): TestDox result printer does not handle repeated test execution correctly +* [#4678](https://github.com/sebastianbergmann/phpunit/pull/4678): Stubbed methods with `iterable` return types should return empty array by default +* [#4692](https://github.com/sebastianbergmann/phpunit/issues/4692): Annotations in single-line doc-comments are not handled correctly +* [#4694](https://github.com/sebastianbergmann/phpunit/issues/4694): `TestCase::getMockFromWsdl()` does not work with PHP 8.1-dev + ## [9.5.4] - 2021-03-23 ### Fixed @@ -41,6 +91,12 @@ * [#4535](https://github.com/sebastianbergmann/phpunit/issues/4535): `getMockFromWsdl()` does not handle methods that do not have parameters correctly +[9.5.10]: https://github.com/sebastianbergmann/phpunit/compare/9.5.9...9.5.10 +[9.5.9]: https://github.com/sebastianbergmann/phpunit/compare/9.5.8...9.5.9 +[9.5.8]: https://github.com/sebastianbergmann/phpunit/compare/9.5.7...9.5.8 +[9.5.7]: https://github.com/sebastianbergmann/phpunit/compare/9.5.6...9.5.7 +[9.5.6]: https://github.com/sebastianbergmann/phpunit/compare/9.5.5...9.5.6 +[9.5.5]: https://github.com/sebastianbergmann/phpunit/compare/9.5.4...9.5.5 [9.5.4]: https://github.com/sebastianbergmann/phpunit/compare/9.5.3...9.5.4 [9.5.3]: https://github.com/sebastianbergmann/phpunit/compare/9.5.2...9.5.3 [9.5.2]: https://github.com/sebastianbergmann/phpunit/compare/9.5.1...9.5.2 diff -Nru phpunit-9.5.4/composer.json phpunit-9.5.10/composer.json --- phpunit-9.5.4/composer.json 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/composer.json 2021-09-25 07:38:51.000000000 +0000 @@ -30,10 +30,10 @@ "ext-xmlwriter": "*", "doctrine/instantiator": "^1.3.1", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.7", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -47,7 +47,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^2.3.4", "sebastian/version": "^3.0.2" }, "require-dev": { diff -Nru phpunit-9.5.4/debian/Autoload.php.tpl phpunit-9.5.10/debian/Autoload.php.tpl --- phpunit-9.5.4/debian/Autoload.php.tpl 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/Autoload.php.tpl 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -= 2.0.15) -require_once 'SebastianBergmann/Invoker/autoload.php'; -// require_once 'SebastianBergmann/Template/autoload.php'; (already required by CodeCoverage >= 2.0.15) -require_once 'SebastianBergmann/Timer/autoload.php'; -require_once 'SebastianBergmann/CliParser/autoload.php'; -require_once 'SebastianBergmann/CodeUnit/autoload.php'; -// require_once 'SebastianBergmann/Comparator/autoload.php'; (already required by Prophecy) -// require_once 'SebastianBergmann/Diff/autoload.php'; (already required by Comparator >= 1.1) -// require_once 'SebastianBergmann/Environment/autoload.php'; (already required by CodeCoverage >= 2.0.15) -// require_once 'SebastianBergmann/Exporter/autoload.php'; (already required by Comparator >= 1.1) -require_once 'SebastianBergmann/GlobalState/autoload.php'; -require_once 'SebastianBergmann/ObjectEnumerator/autoload.php'; -require_once 'SebastianBergmann/ResourceOperations/autoload.php'; -require_once 'SebastianBergmann/Type/autoload.php'; -// require_once 'SebastianBergmann/Version/autoload.php'; (already required by CodeCoverage >= 2.0.15) -require_once __DIR__ . '/Framework/Assert/Functions.php'; - -// @codingStandardsIgnoreFile -// @codeCoverageIgnoreStart -// this is an autogenerated file - do not edit -spl_autoload_register( - function($class) { - static $classes = null; - if ($classes === null) { - $classes = array( - ___CLASSLIST___ - ); - } - $cn = strtolower($class); - if (isset($classes[$cn])) { - require ___BASEDIR___$classes[$cn]; - } - }, - true, - false -); -// @codeCoverageIgnoreEnd diff -Nru phpunit-9.5.4/debian/autoload.tests.php.tpl phpunit-9.5.10/debian/autoload.tests.php.tpl --- phpunit-9.5.4/debian/autoload.tests.php.tpl 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/autoload.tests.php.tpl 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ - Tue, 14 Dec 2021 00:46:09 +0000 + +phpunit (9.5.10-1) unstable; urgency=medium + + * Upload to unstable now that Bullseye is released + + [ Sebastian Bergmann ] + * Prepare release + + [ David Prévot ] + * Drop patch part not needed anymore + * Drop reference to removed file + * Update standards version to 4.6.0, no changes needed + * Generate phpabtpl at build time + + -- David Prévot Thu, 07 Oct 2021 14:35:57 -0400 + +phpunit (9.5.7-1) experimental; urgency=medium + + [ Sebastian Bergmann ] + * Prepare release + + [ David Prévot ] + * Use dh-sequence-phpcomposer instead of pkg-php-tools + + -- David Prévot Tue, 20 Jul 2021 08:08:01 +0200 + +phpunit (9.5.6-1) experimental; urgency=medium + + [ Sebastian Bergmann ] + * Prepare release + + -- David Prévot Mon, 28 Jun 2021 05:32:45 +0200 + +phpunit (9.5.5-1) experimental; urgency=medium + + [ Sebastian Bergmann ] + * Refactor test result cache persistence to not rely on + serialize() and unserialize() + * Prepare release + + [ David Prévot ] + * Force tests/bootstrap.php to use vendor/autoload.php + + -- David Prévot Fri, 18 Jun 2021 09:15:01 -0400 + phpunit (9.5.4-1) experimental; urgency=medium [ Sebastian Bergmann ] diff -Nru phpunit-9.5.4/debian/clean phpunit-9.5.10/debian/clean --- phpunit-9.5.4/debian/clean 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/clean 2021-12-14 00:35:05.000000000 +0000 @@ -2,8 +2,8 @@ .phpunit.result.cache cache.properties data/ -CHANGELOG -PHPUnit +debian/autoload.php.tpl +debian/autoload.tests.php.tpl src/Autoload.php tests/_files/.phpunit.result.cache tests/_files/*/.phpunit.result.cache @@ -12,3 +12,5 @@ tests/end-to-end/*/*/.phpunit.result.cache tests/end-to-end/regression/GitHub/*/.phpunit.result.cache vendor/ +CHANGELOG +PHPUnit diff -Nru phpunit-9.5.4/debian/control phpunit-9.5.10/debian/control --- phpunit-9.5.4/debian/control 2021-03-24 11:24:25.000000000 +0000 +++ phpunit-9.5.10/debian/control 2021-12-14 00:46:09.000000000 +0000 @@ -1,10 +1,12 @@ Source: phpunit Section: php Priority: optional -Maintainer: Debian PHP PEAR Maintainers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian PHP PEAR Maintainers Uploaders: Prach Pongpanich , David Prévot Build-Depends: debhelper-compat (= 13), + dh-sequence-phpcomposer, help2man, php-codecoverage (>= 9), php-deepcopy, @@ -27,8 +29,8 @@ phpunit-object-enumerator, phpunit-resource-operations, phpunit-type, - pkg-php-tools -Standards-Version: 4.5.1 + pkg-php-tools (>= 1.41~) +Standards-Version: 4.6.0 Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/php-team/pear/phpunit.git -b debian/latest Vcs-Browser: https://salsa.debian.org/php-team/pear/phpunit diff -Nru phpunit-9.5.4/debian/gbp.conf phpunit-9.5.10/debian/gbp.conf --- phpunit-9.5.4/debian/gbp.conf 2021-02-03 18:01:31.000000000 +0000 +++ phpunit-9.5.10/debian/gbp.conf 2021-12-14 00:35:05.000000000 +0000 @@ -1,5 +1,5 @@ [DEFAULT] debian-branch = debian/latest -pristine-tar = True filter = [ '.gitattributes', 'tools' ] +pristine-tar = True upstream-vcs-tag = %(version%~%-)s diff -Nru phpunit-9.5.4/debian/patches/0001-Remove-Composer-autoload.patch phpunit-9.5.10/debian/patches/0001-Remove-Composer-autoload.patch --- phpunit-9.5.4/debian/patches/0001-Remove-Composer-autoload.patch 2021-03-24 11:16:56.000000000 +0000 +++ phpunit-9.5.10/debian/patches/0001-Remove-Composer-autoload.patch 2021-12-14 00:35:05.000000000 +0000 @@ -8,7 +8,7 @@ 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/phpunit b/phpunit -index a455336..030e988 100755 +index 396825d..419b1d9 100755 --- a/phpunit +++ b/phpunit @@ -1,4 +1,4 @@ @@ -17,7 +17,7 @@ filename(); } else { diff -Nru phpunit-9.5.4/debian/pkg-php-tools-autoloaders phpunit-9.5.10/debian/pkg-php-tools-autoloaders --- phpunit-9.5.4/debian/pkg-php-tools-autoloaders 1970-01-01 00:00:00.000000000 +0000 +++ phpunit-9.5.10/debian/pkg-php-tools-autoloaders 2021-12-14 00:35:05.000000000 +0000 @@ -0,0 +1,18 @@ +myclabs deep-copy DeepCopy/autoload.php +phpspec prophecy Prophecy/autoload.php +phpspec prophecy-phpunit Prophecy/PhpUnit/autoload.php +phpunit phpunit PHPUnit/Autoload.php +phpunit php-file-iterator SebastianBergmann/FileIterator/autoload.php +phpunit php-invoker SebastianBergmann/Invoker/autoload.php +phpunit php-text-template SebastianBergmann/Template/autoload.php +phpunit php-timer SebastianBergmann/Timer/autoload.php +sebastian cli-parser SebastianBergmann/CliParser/autoload.php +sebastian code-unit SebastianBergmann/CodeUnit/autoload.php +sebastian comparator SebastianBergmann/Comparator/autoload.php +sebastian diff SebastianBergmann/Diff/autoload.php +sebastian environment SebastianBergmann/Environment/autoload.php +sebastian exporter SebastianBergmann/Exporter/autoload.php +sebastian global-state SebastianBergmann/GlobalState/autoload.php +sebastian object-enumerator SebastianBergmann/ObjectEnumerator/autoload.php +sebastian resource-operations SebastianBergmann/ResourceOperations/autoload.php +sebastian version SebastianBergmann/Version/autoload.php diff -Nru phpunit-9.5.4/debian/pkg-php-tools-overrides phpunit-9.5.10/debian/pkg-php-tools-overrides --- phpunit-9.5.4/debian/pkg-php-tools-overrides 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/pkg-php-tools-overrides 2021-12-14 00:35:05.000000000 +0000 @@ -13,5 +13,4 @@ sebastian global-state phpunit-global-state sebastian object-enumerator phpunit-object-enumerator sebastian resource-operations phpunit-resource-operations -sebastian type phpunit-type sebastian version phpunit-version diff -Nru phpunit-9.5.4/debian/rules phpunit-9.5.10/debian/rules --- phpunit-9.5.4/debian/rules 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/rules 2021-12-14 00:46:03.000000000 +0000 @@ -4,18 +4,28 @@ UPSTREAM := $(DEB_VERSION_UPSTREAM) %: - dh $@ --with phpcomposer + dh $@ override_dh_auto_build: # Build static classloader for shipping + phpabtpl \ + --basedir src \ + composer.json > \ + debian/autoload.php.tpl phpab --output src/Autoload.php \ - --template debian/Autoload.php.tpl src + --template debian/autoload.php.tpl src # Build classloader for tests mkdir --parents vendor data + phpabtpl \ + --require phpunit/phpunit \ + --require phpspec/prophecy-phpunit \ + --require-file ../tests/_files/CoverageNamespacedFunctionTest.php \ + --require-file ../tests/_files/CoveredFunction.php \ + --require-file ../tests/_files/NamespaceCoveredFunction.php \ + > debian/autoload.tests.php.tpl phpab \ --output vendor/autoload.php \ --template debian/autoload.tests.php.tpl \ - --exclude tests/_files/BankAccountTest2.php \ --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/src/Greeter.php \ --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/tests/GreeterTest.php \ --exclude tests/end-to-end/regression/Trac/783/OneTest.php \ @@ -32,7 +42,7 @@ override_dh_auto_clean: override_dh_auto_test: - ./phpunit + echo "Disabled: ./phpunit" execute_before_dh_installman: mkdir --parent $(CURDIR)/debian/tmp diff -Nru phpunit-9.5.4/debian/tests/control phpunit-9.5.10/debian/tests/control --- phpunit-9.5.4/debian/tests/control 2021-02-03 17:53:38.000000000 +0000 +++ phpunit-9.5.10/debian/tests/control 2021-12-14 00:35:05.000000000 +0000 @@ -1,8 +1,9 @@ -Test-Command: mkdir -p vendor && phpab --output vendor/autoload.php --template debian/autoload.tests.php.tpl --exclude tests/_files/BankAccountTest2.php --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/src/Greeter.php --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/tests/GreeterTest.php --exclude tests/end-to-end/regression/Trac/783/OneTest.php --exclude tests/end-to-end/regression/GitHub/2448/Test.php --exclude tests/end-to-end/regression/GitHub/3889/MyIssue3889Test.php --exclude tests/end-to-end/regression/GitHub/3904/Issue3904Test.php --exclude tests/end-to-end/regression/GitHub/4376/tests/Test.php tests && phpunit -Restrictions: rw-build-tree +Test-Command: mkdir -p vendor && phpabtpl --require phpunit/phpunit --require phpspec/prophecy-phpunit --require-file ../tests/_files/CoverageNamespacedFunctionTest.php --require-file ../tests/_files/CoveredFunction.php --require-file ../tests/_files/NamespaceCoveredFunction.php > debian/autoload.tests.php.tpl && phpab --output vendor/autoload.php --template debian/autoload.tests.php.tpl --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/src/Greeter.php --exclude tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected/tests/GreeterTest.php --exclude tests/end-to-end/regression/Trac/783/OneTest.php --exclude tests/end-to-end/regression/GitHub/2448/Test.php --exclude tests/end-to-end/regression/GitHub/3889/MyIssue3889Test.php --exclude tests/end-to-end/regression/GitHub/3904/Issue3904Test.php --exclude tests/end-to-end/regression/GitHub/4376/tests/Test.php tests && phpunit +Restrictions: rw-build-tree, allow-stderr Depends: php-phpspec-prophecy-phpunit, php-soap, php-sqlite3, php-xdebug, phpab, + pkg-php-tools (>= 1.41~), @ diff -Nru phpunit-9.5.4/.gitattributes phpunit-9.5.10/.gitattributes --- phpunit-9.5.4/.gitattributes 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.gitattributes 2021-09-25 07:38:51.000000000 +0000 @@ -1,16 +1,16 @@ -/.docker export-ignore -/.github export-ignore -/.phive export-ignore -/.psalm export-ignore -/build export-ignore -/tools export-ignore -/tools/* binary -/tests export-ignore -/.editorconfig export-ignore -/.gitattributes export-ignore -/.gitignore export-ignore -/.php_cs.dist export-ignore -/build.xml export-ignore -/phpunit.xml export-ignore +/.docker export-ignore +/.github export-ignore +/.phive export-ignore +/.psalm export-ignore +/build export-ignore +/tools export-ignore +/tools/* binary +/tests export-ignore +/.editorconfig export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.php-cs-fixer.dist.php export-ignore +/build.xml export-ignore +/phpunit.xml export-ignore *.php diff=php diff -Nru phpunit-9.5.4/.github/workflows/ci.yml phpunit-9.5.10/.github/workflows/ci.yml --- phpunit-9.5.4/.github/workflows/ci.yml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.github/workflows/ci.yml 2021-09-25 07:38:51.000000000 +0000 @@ -23,10 +23,12 @@ uses: shivammathur/setup-php@v2 with: php-version: 8.0 + extensions: :apcu, :imagick coverage: none + tools: none - name: Run friendsofphp/php-cs-fixer - run: ./tools/php-cs-fixer fix --diff-format=udiff --dry-run --show-progress=dots --using-cache=no --verbose + run: ./tools/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose type-checker: name: Type Checker @@ -41,7 +43,9 @@ uses: shivammathur/setup-php@v2 with: php-version: 8.0 + extensions: :apcu, :imagick coverage: none + tools: none - name: Update dependencies with composer run: ./tools/composer update --no-interaction --no-ansi --no-progress @@ -52,38 +56,14 @@ - name: Run vimeo/psalm on internal code run: ./tools/psalm --config=.psalm/config.xml --no-progress --shepherd --show-info=false --stats - backward-compatibility: - name: Backward Compatibility - - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Fetch tags - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* - - - name: Install PHP with extensions - uses: shivammathur/setup-php@v2 - with: - php-version: 7.4 - coverage: none - extensions: intl - - - name: Run roave/backward-compatibility-check - run: ./tools/roave-backward-compatibility-check --from=9.4.2 - tests: name: Tests runs-on: ${{ matrix.os }} env: - PHP_EXTENSIONS: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter - PHP_INI_VALUES: assert.exception=1, zend.assertions=1 + PHP_EXTENSIONS: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter, :apcu, :imagick + PHP_INI_VALUES: assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On strategy: fail-fast: false @@ -97,6 +77,7 @@ - "7.4" - "8.0" - "8.1" + - "8.2" compiler: - default @@ -116,6 +97,11 @@ compiler: jit dependencies: highest + - os: ubuntu-latest + php-version: "8.2" + compiler: jit + dependencies: highest + steps: - name: Configure git to avoid issues with line endings if: matrix.os == 'windows-latest' @@ -132,25 +118,9 @@ uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - coverage: xdebug extensions: ${{ env.PHP_EXTENSIONS }} ini-values: ${{ env.PHP_INI_VALUES }} - - - name: Determine composer cache directory on Linux - if: matrix.os == 'ubuntu-latest' - run: echo "COMPOSER_CACHE_DIR=$(./tools/composer config cache-dir)" >> $GITHUB_ENV - - - name: Determine composer cache directory on Windows - if: matrix.os == 'windows-latest' - run: ECHO "COMPOSER_CACHE_DIR=~\AppData\Local\Composer" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - - - name: Cache dependencies installed with composer - uses: actions/cache@v2 - with: - path: ${{ env.COMPOSER_CACHE_DIR }} - key: php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} - restore-keys: | - php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}- + tools: none - name: Install lowest dependencies with composer if: matrix.dependencies == 'lowest' @@ -164,6 +134,44 @@ run: bash ./build/scripts/sanity-check - name: Run tests with phpunit + run: php ./phpunit + + code-coverage: + name: Code Coverage + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php-version: + - 8.0 + + dependencies: + - highest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install PHP with extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + coverage: pcov + extensions: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter, :apcu, :imagick + ini-values: assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On + tools: none + + - name: Install lowest dependencies with composer + if: matrix.dependencies == 'lowest' + run: php ./tools/composer update --no-ansi --no-interaction --no-progress --prefer-lowest + + - name: Install highest dependencies with composer + if: matrix.dependencies == 'highest' + run: php ./tools/composer update --no-ansi --no-interaction --no-progress + + - name: Collect code coverage with phpunit run: php ./phpunit --coverage-clover=coverage.xml - name: Send code coverage report to Codecov.io @@ -171,6 +179,45 @@ with: token: ${{ secrets.CODECOV_TOKEN }} + test-generated-code: + name: Test generated code + + runs-on: ubuntu-latest + + strategy: + matrix: + php-version: + - 7.3 + + dependencies: + - highest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install PHP with extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + coverage: pcov + extensions: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter, :apcu, :imagick + ini-values: assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On + tools: none + + - name: Install lowest dependencies with composer + if: matrix.dependencies == 'lowest' + run: php ./tools/composer update --no-ansi --no-interaction --no-progress --prefer-lowest + + - name: Install highest dependencies with composer + run: php ./tools/composer update --no-ansi --no-interaction --no-progress + + - name: Generate global assert wrappers + run: php build/scripts/generate-global-assert-wrappers.php + + - name: Assert that git tree is clean + run: git diff || echo "Run 'php build/scripts/generate-global-assert-wrappers.php' to regenerate global assert wrappers!" + build-and-test-phar: name: Build and test PHAR @@ -184,12 +231,25 @@ fail-fast: false matrix: php-version: + - "7.3" + - "7.4" - "8.0" coverage: - pcov - xdebug + experimental: + - false + + include: + - php-version: "8.1" + experimental: true + - php-version: "8.2" + experimental: true + + continue-on-error: ${{ matrix.experimental }} + steps: - name: Checkout uses: actions/checkout@v2 @@ -201,20 +261,22 @@ coverage: ${{ matrix.coverage }} extensions: ${{ env.PHP_EXTENSIONS }} ini-values: ${{ env.PHP_INI_VALUES }} + tools: none - name: Install java uses: actions/setup-java@v1 with: java-version: 1.8 - - name: Build unscoped PHAR for testing - run: ant unscoped-phar-nightly + - name: Run regular test suite with unscoped PHAR + run: ant run-regular-tests-with-unscoped-phar - - name: Run regular tests with unscoped PHAR - run: ./build/artifacts/phpunit-nightly.phar + - name: Run PHAR-specific end-to-end tests with scoped PHAR + run: ant run-phar-specific-tests-with-scoped-phar - - name: Build scoped PHAR for testing - run: ant phar-nightly - - - name: Run PHAR-specific tests with scoped PHAR - run: ./build/artifacts/phpunit-nightly.phar --configuration tests/phar/phpunit.xml --coverage-text + - uses: actions/upload-artifact@v2 + if: ${{ matrix.php-version == 8.0 }} + with: + name: phpunit-snapshot-phar + path: ./build/artifacts/phpunit-snapshot.phar + retention-days: 7 diff -Nru phpunit-9.5.4/.gitignore phpunit-9.5.10/.gitignore --- phpunit-9.5.4/.gitignore 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.gitignore 2021-09-25 07:38:51.000000000 +0000 @@ -11,10 +11,11 @@ # Build artifacts and temporary files /build/artifacts /build/tmp +/tests/autoload.php # PHP-CS-Fixer -/.php_cs -/.php_cs.cache +/.php-cs-fixer.php +/.php-cs-fixer.cache # Psalm /.psalm/cache diff -Nru phpunit-9.5.4/.phive/phars.xml phpunit-9.5.10/.phive/phars.xml --- phpunit-9.5.4/.phive/phars.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.phive/phars.xml 2021-09-25 07:38:51.000000000 +0000 @@ -1,11 +1,10 @@ - - + + - - - - + + + diff -Nru phpunit-9.5.4/.php_cs.dist phpunit-9.5.10/.php_cs.dist --- phpunit-9.5.4/.php_cs.dist 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.php_cs.dist 1970-01-01 00:00:00.000000000 +0000 @@ -1,295 +0,0 @@ - - -For the full copyright and license information, please view the LICENSE -file that was distributed with this source code. -EOF; - -$finder = PhpCsFixer\Finder::create() - ->files() - ->in(__DIR__ . '/src') - ->in(__DIR__ . '/tests/basic') - ->in(__DIR__ . '/tests/end-to-end') - ->in(__DIR__ . '/tests/fail') - ->in(__DIR__ . '/tests/unit') - ->in(__DIR__ . '/tests/_files') - ->notName('*.phpt') - ->notName('ClassWithAllPossibleReturnTypes.php') - ->notName('ClassWithUnionReturnTypes.php') - ->notName('ClassWithStaticReturnTypes.php') - ->notName('ValueObjectWithEqualsMethodWithUnionReturnType.php') - ->notName('ValueObjectWithEqualsMethodThatHasUnionParameterType.php'); - -return PhpCsFixer\Config::create() - ->setFinder($finder) - ->setRiskyAllowed(true) - ->setRules([ - 'align_multiline_comment' => true, - 'array_indentation' => true, - 'array_push' => true, - 'array_syntax' => ['syntax' => 'short'], - 'backtick_to_shell_exec' => true, - 'binary_operator_spaces' => [ - 'operators' => [ - '=' => 'align_single_space_minimal', - '=>' => 'align_single_space_minimal', - ], - ], - 'blank_line_after_namespace' => true, - 'blank_line_before_statement' => [ - 'statements' => [ - 'break', - 'continue', - 'declare', - 'default', - 'die', - 'do', - 'exit', - 'for', - 'foreach', - 'goto', - 'if', - 'include', - 'include_once', - 'require', - 'require_once', - 'return', - 'switch', - 'throw', - 'try', - 'while', - 'yield', - ], - ], - 'braces' => true, - 'cast_spaces' => true, - 'class_attributes_separation' => ['elements' => ['const', 'method', 'property']], - 'class_definition' => true, - 'clean_namespace' => true, - 'combine_consecutive_issets' => true, - 'combine_consecutive_unsets' => true, - 'combine_nested_dirname' => true, - 'compact_nullable_typehint' => true, - 'concat_space' => ['spacing' => 'one'], - 'constant_case' => true, - 'declare_equal_normalize' => ['space' => 'none'], - 'declare_strict_types' => true, - 'dir_constant' => true, - 'echo_tag_syntax' => true, - 'elseif' => true, - 'encoding' => true, - 'ereg_to_preg' => true, - 'explicit_indirect_variable' => true, - 'explicit_string_variable' => true, - 'fopen_flag_order' => true, - 'full_opening_tag' => true, - 'fully_qualified_strict_types' => true, - 'function_declaration' => true, - 'function_to_constant' => true, - 'function_typehint_space' => true, - 'global_namespace_import' => [ - 'import_classes' => true, - 'import_constants' => true, - 'import_functions' => true, - ], - 'header_comment' => ['header' => $header, 'separate' => 'none'], - 'heredoc_to_nowdoc' => true, - 'implode_call' => true, - 'include' => true, - 'increment_style' => [ - 'style' => PhpCsFixer\Fixer\Operator\IncrementStyleFixer::STYLE_POST, - ], - 'indentation_type' => true, - 'is_null' => true, - 'lambda_not_used_import' => true, - 'line_ending' => true, - 'list_syntax' => ['syntax' => 'short'], - 'logical_operators' => true, - 'lowercase_cast' => true, - 'lowercase_keywords' => true, - 'lowercase_static_reference' => true, - 'magic_constant_casing' => true, - 'magic_method_casing' => true, - 'method_argument_space' => [ - 'on_multiline' => 'ensure_fully_multiline', - ], - 'modernize_types_casting' => true, - 'multiline_comment_opening_closing' => true, - 'multiline_whitespace_before_semicolons' => true, - 'native_constant_invocation' => false, - 'native_function_casing' => false, - 'native_function_invocation' => false, - 'native_function_type_declaration_casing' => true, - 'new_with_braces' => false, - 'no_alias_functions' => true, - 'no_alias_language_construct_call' => true, - 'no_alternative_syntax' => true, - 'no_binary_string' => true, - 'no_blank_lines_after_class_opening' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_blank_lines_before_namespace' => true, - 'no_break_comment' => true, - 'no_closing_tag' => true, - 'no_empty_comment' => true, - 'no_empty_phpdoc' => true, - 'no_empty_statement' => true, - 'no_extra_blank_lines' => true, - 'no_homoglyph_names' => true, - 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_mixed_echo_print' => ['use' => 'print'], - 'no_multiline_whitespace_around_double_arrow' => true, - 'no_null_property_initialization' => true, - 'no_php4_constructor' => true, - 'no_short_bool_cast' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_spaces_after_function_name' => true, - 'no_spaces_around_offset' => true, - 'no_spaces_inside_parenthesis' => true, - 'no_superfluous_elseif' => true, - 'no_superfluous_phpdoc_tags' => [ - 'allow_mixed' => true, - ], - 'no_trailing_comma_in_list_call' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_trailing_whitespace' => true, - 'no_trailing_whitespace_in_comment' => true, - 'no_trailing_whitespace_in_string' => true, - 'no_unneeded_control_parentheses' => true, - 'no_unneeded_curly_braces' => true, - 'no_unneeded_final_method' => true, - 'no_unreachable_default_argument_value' => true, - 'no_unset_cast' => true, - 'no_unset_on_property' => true, - 'no_unused_imports' => true, - 'no_useless_else' => true, - 'no_useless_return' => true, - 'no_useless_sprintf' => true, - 'no_whitespace_before_comma_in_array' => true, - 'no_whitespace_in_blank_line' => true, - 'non_printable_character' => true, - 'normalize_index_brace' => true, - 'object_operator_without_whitespace' => true, - 'operator_linebreak' => [ - 'only_booleans' => true, - 'position' => 'end', - ], - 'ordered_class_elements' => [ - 'order' => [ - 'use_trait', - 'constant_public', - 'constant_protected', - 'constant_private', - 'property_public_static', - 'property_protected_static', - 'property_private_static', - 'property_public', - 'property_protected', - 'property_private', - 'method_public_static', - 'construct', - 'destruct', - 'magic', - 'phpunit', - 'method_public', - 'method_protected', - 'method_private', - 'method_protected_static', - 'method_private_static', - ], - ], - 'ordered_imports' => [ - 'imports_order' => [ - PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CONST, - PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_FUNCTION, - PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CLASS, - ] - ], - 'ordered_interfaces' => [ - 'direction' => 'ascend', - 'order' => 'alpha', - ], - 'ordered_traits' => true, - 'php_unit_set_up_tear_down_visibility' => true, - 'php_unit_test_case_static_method_calls' => [ - 'call_type' => 'this', - ], - 'phpdoc_add_missing_param_annotation' => false, - 'phpdoc_align' => true, - 'phpdoc_annotation_without_dot' => true, - 'phpdoc_indent' => true, - 'phpdoc_inline_tag_normalizer' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_alias_tag' => true, - 'phpdoc_no_empty_return' => true, - 'phpdoc_no_package' => true, - 'phpdoc_no_useless_inheritdoc' => true, - 'phpdoc_order' => true, - 'phpdoc_order_by_value' => [ - 'annotations' => [ - 'covers', - 'dataProvider', - 'throws', - 'uses', - ], - ], - 'phpdoc_return_self_reference' => true, - 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_summary' => true, - 'phpdoc_tag_casing' => true, - 'phpdoc_tag_type' => true, - 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_trim_consecutive_blank_line_separation' => true, - 'phpdoc_types' => ['groups' => ['simple', 'meta']], - 'phpdoc_types_order' => true, - 'phpdoc_var_annotation_correct_order' => true, - 'phpdoc_var_without_name' => true, - 'pow_to_exponentiation' => true, - 'protected_to_private' => true, - 'return_assignment' => true, - 'return_type_declaration' => ['space_before' => 'none'], - 'self_accessor' => true, - 'self_static_accessor' => true, - 'semicolon_after_instruction' => true, - 'set_type_to_cast' => true, - 'short_scalar_cast' => true, - 'simple_to_complex_string_variable' => true, - 'simplified_null_return' => false, - 'single_blank_line_at_eof' => true, - 'single_class_element_per_statement' => true, - 'single_import_per_statement' => true, - 'single_line_after_imports' => true, - 'single_quote' => true, - 'single_space_after_construct' => true, - 'single_trait_insert_per_statement' => true, - 'space_after_semicolon' => true, - 'standardize_increment' => true, - 'standardize_not_equals' => true, - 'static_lambda' => true, - 'strict_param' => true, - 'string_line_ending' => true, - 'switch_case_semicolon_to_colon' => true, - 'switch_case_space' => true, - 'switch_continue_to_break' => true, - 'ternary_operator_spaces' => true, - 'ternary_to_elvis_operator' => true, - 'ternary_to_null_coalescing' => true, - 'trailing_comma_in_multiline_array' => true, - 'trim_array_spaces' => true, - 'unary_operator_spaces' => true, - 'visibility_required' => [ - 'elements' => [ - 'const', - 'method', - 'property', - ], - ], - 'void_return' => true, - 'whitespace_after_comma_in_array' => true, - ]); diff -Nru phpunit-9.5.4/.php-cs-fixer.dist.php phpunit-9.5.10/.php-cs-fixer.dist.php --- phpunit-9.5.4/.php-cs-fixer.dist.php 1970-01-01 00:00:00.000000000 +0000 +++ phpunit-9.5.10/.php-cs-fixer.dist.php 2021-09-25 07:38:51.000000000 +0000 @@ -0,0 +1,308 @@ + + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. +EOF; + +$finder = PhpCsFixer\Finder::create() + ->files() + ->in(__DIR__ . '/src') + ->in(__DIR__ . '/tests/basic') + ->in(__DIR__ . '/tests/end-to-end') + ->in(__DIR__ . '/tests/fail') + ->in(__DIR__ . '/tests/unit') + ->in(__DIR__ . '/tests/_files') + ->notName('*.phpt') + ->notName('ClassWithAllPossibleReturnTypes.php') + ->notName('ClassWithUnionReturnTypes.php') + ->notName('ClassWithStaticReturnTypes.php') + ->notName('ValueObjectWithEqualsMethodWithUnionReturnType.php') + ->notName('ValueObjectWithEqualsMethodThatHasUnionParameterType.php'); + +$config = new PhpCsFixer\Config; +$config->setFinder($finder) + ->setRiskyAllowed(true) + ->setRules([ + 'align_multiline_comment' => true, + 'array_indentation' => true, + 'array_push' => true, + 'array_syntax' => ['syntax' => 'short'], + 'backtick_to_shell_exec' => true, + 'binary_operator_spaces' => [ + 'operators' => [ + '=' => 'align_single_space_minimal', + '=>' => 'align_single_space_minimal', + ], + ], + 'blank_line_after_namespace' => true, + 'blank_line_before_statement' => [ + 'statements' => [ + 'break', + 'continue', + 'declare', + 'default', + 'do', + 'exit', + 'for', + 'foreach', + 'goto', + 'if', + 'include', + 'include_once', + 'require', + 'require_once', + 'return', + 'switch', + 'throw', + 'try', + 'while', + 'yield', + ], + ], + 'braces' => [ + 'position_after_anonymous_constructs' => 'next', + ], + 'cast_spaces' => true, + 'class_attributes_separation' => [ + 'elements' => [ + 'const' => 'one', + 'method' => 'one', + 'property' => 'one' + ] + ], + 'class_definition' => true, + 'clean_namespace' => true, + 'combine_consecutive_issets' => true, + 'combine_consecutive_unsets' => true, + 'combine_nested_dirname' => true, + 'compact_nullable_typehint' => true, + 'concat_space' => ['spacing' => 'one'], + 'constant_case' => true, + 'declare_equal_normalize' => ['space' => 'none'], + 'declare_strict_types' => true, + 'dir_constant' => true, + 'echo_tag_syntax' => true, + 'elseif' => true, + 'encoding' => true, + 'ereg_to_preg' => true, + 'explicit_indirect_variable' => true, + 'explicit_string_variable' => true, + 'fopen_flag_order' => true, + 'full_opening_tag' => true, + 'fully_qualified_strict_types' => true, + 'function_declaration' => true, + 'function_to_constant' => true, + 'function_typehint_space' => true, + 'global_namespace_import' => [ + 'import_classes' => true, + 'import_constants' => true, + 'import_functions' => true, + ], + 'header_comment' => ['header' => $header, 'separate' => 'none'], + 'heredoc_to_nowdoc' => true, + 'implode_call' => true, + 'include' => true, + 'increment_style' => [ + 'style' => PhpCsFixer\Fixer\Operator\IncrementStyleFixer::STYLE_POST, + ], + 'indentation_type' => true, + 'is_null' => true, + 'lambda_not_used_import' => true, + 'line_ending' => true, + 'list_syntax' => ['syntax' => 'short'], + 'logical_operators' => true, + 'lowercase_cast' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, + 'magic_constant_casing' => true, + 'magic_method_casing' => true, + 'method_argument_space' => [ + 'on_multiline' => 'ensure_fully_multiline', + ], + 'modernize_types_casting' => true, + 'multiline_comment_opening_closing' => true, + 'multiline_whitespace_before_semicolons' => true, + 'native_constant_invocation' => false, + 'native_function_casing' => false, + 'native_function_invocation' => false, + 'native_function_type_declaration_casing' => true, + 'new_with_braces' => false, + 'no_alias_functions' => true, + 'no_alias_language_construct_call' => true, + 'no_alternative_syntax' => true, + 'no_binary_string' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_blank_lines_before_namespace' => true, + 'no_break_comment' => true, + 'no_closing_tag' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_homoglyph_names' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => ['use' => 'print'], + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_null_property_initialization' => true, + 'no_php4_constructor' => true, + 'no_short_bool_cast' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_around_offset' => true, + 'no_spaces_inside_parenthesis' => true, + 'no_superfluous_elseif' => true, + 'no_superfluous_phpdoc_tags' => [ + 'allow_mixed' => true, + ], + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_trailing_whitespace_in_string' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unneeded_curly_braces' => true, + 'no_unneeded_final_method' => true, + 'no_unreachable_default_argument_value' => true, + 'no_unset_cast' => true, + 'no_unset_on_property' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_return' => true, + 'no_useless_sprintf' => true, + 'no_whitespace_before_comma_in_array' => true, + 'no_whitespace_in_blank_line' => true, + 'non_printable_character' => true, + 'normalize_index_brace' => true, + 'object_operator_without_whitespace' => true, + 'operator_linebreak' => [ + 'only_booleans' => true, + 'position' => 'end', + ], + 'ordered_class_elements' => [ + 'order' => [ + 'use_trait', + 'constant_public', + 'constant_protected', + 'constant_private', + 'property_public_static', + 'property_protected_static', + 'property_private_static', + 'property_public', + 'property_protected', + 'property_private', + 'method_public_static', + 'construct', + 'destruct', + 'magic', + 'phpunit', + 'method_public', + 'method_protected', + 'method_private', + 'method_protected_static', + 'method_private_static', + ], + ], + 'ordered_imports' => [ + 'imports_order' => [ + PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CONST, + PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_FUNCTION, + PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CLASS, + ] + ], + 'ordered_interfaces' => [ + 'direction' => 'ascend', + 'order' => 'alpha', + ], + 'ordered_traits' => true, + 'php_unit_set_up_tear_down_visibility' => true, + 'php_unit_test_case_static_method_calls' => [ + 'call_type' => 'this', + ], + 'phpdoc_add_missing_param_annotation' => false, + 'phpdoc_align' => true, + 'phpdoc_annotation_without_dot' => true, + 'phpdoc_indent' => true, + 'phpdoc_inline_tag_normalizer' => true, + 'phpdoc_no_access' => true, + 'phpdoc_no_alias_tag' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_no_useless_inheritdoc' => true, + 'phpdoc_order' => true, + 'phpdoc_order_by_value' => [ + 'annotations' => [ + 'covers', + 'dataProvider', + 'throws', + 'uses', + ], + ], + 'phpdoc_return_self_reference' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_summary' => true, + 'phpdoc_tag_casing' => true, + 'phpdoc_tag_type' => true, + 'phpdoc_to_comment' => true, + 'phpdoc_trim' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_types' => ['groups' => ['simple', 'meta']], + 'phpdoc_types_order' => true, + 'phpdoc_var_annotation_correct_order' => true, + 'phpdoc_var_without_name' => true, + 'pow_to_exponentiation' => true, + 'protected_to_private' => true, + 'return_assignment' => true, + 'return_type_declaration' => ['space_before' => 'none'], + 'self_accessor' => true, + 'self_static_accessor' => true, + 'semicolon_after_instruction' => true, + 'set_type_to_cast' => true, + 'short_scalar_cast' => true, + 'simple_to_complex_string_variable' => true, + 'simplified_null_return' => false, + 'single_blank_line_at_eof' => true, + 'single_class_element_per_statement' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_quote' => true, + 'single_space_after_construct' => true, + 'single_trait_insert_per_statement' => true, + 'space_after_semicolon' => true, + 'standardize_increment' => true, + 'standardize_not_equals' => true, + 'static_lambda' => true, + 'strict_param' => true, + 'string_line_ending' => true, + 'switch_case_semicolon_to_colon' => true, + 'switch_case_space' => true, + 'switch_continue_to_break' => true, + 'ternary_operator_spaces' => true, + 'ternary_to_elvis_operator' => true, + 'ternary_to_null_coalescing' => true, + 'trailing_comma_in_multiline' => [ + 'elements' => [ + 'arrays' + ] + ], + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => [ + 'elements' => [ + 'const', + 'method', + 'property', + ], + ], + 'void_return' => true, + 'whitespace_after_comma_in_array' => true, + ]); + +return $config; diff -Nru phpunit-9.5.4/.phpstorm.meta.php phpunit-9.5.10/.phpstorm.meta.php --- phpunit-9.5.4/.phpstorm.meta.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.phpstorm.meta.php 2021-09-25 07:38:51.000000000 +0000 @@ -3,43 +3,31 @@ override( \PHPUnit\Framework\TestCase::createMock(0), - map([ - '@&\PHPUnit\Framework\MockObject\MockObject', - ]) + map([""=>"$0"]) ); override( \PHPUnit\Framework\TestCase::createStub(0), - map([ - '@&\PHPUnit\Framework\MockObject\Stub', - ]) + map([""=>"$0"]) ); override( \PHPUnit\Framework\TestCase::createConfiguredMock(0), - map([ - '@&\PHPUnit\Framework\MockObject\MockObject', - ]) + map([""=>"$0"]) ); override( \PHPUnit\Framework\TestCase::createPartialMock(0), - map([ - '@&\PHPUnit\Framework\MockObject\MockObject', - ]) + map([""=>"$0"]) ); override( \PHPUnit\Framework\TestCase::createTestProxy(0), - map([ - '@&\PHPUnit\Framework\MockObject\MockObject', - ]) + map([""=>"$0"]) ); override( \PHPUnit\Framework\TestCase::getMockForAbstractClass(0), - map([ - '@&\PHPUnit\Framework\MockObject\MockObject', - ]) + map([""=>"$0"]) ); } diff -Nru phpunit-9.5.4/phpunit phpunit-9.5.10/phpunit --- phpunit-9.5.4/phpunit 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/phpunit 2021-09-25 07:38:51.000000000 +0000 @@ -9,6 +9,21 @@ * file that was distributed with this source code. */ +if (!version_compare(PHP_VERSION, PHP_VERSION, '=')) { + fwrite( + STDERR, + sprintf( + '%s declares an invalid value for PHP_VERSION.' . PHP_EOL . + 'This breaks fundamental functionality such as version_compare().' . PHP_EOL . + 'Please use a different PHP interpreter.' . PHP_EOL, + + PHP_BINARY + ) + ); + + die(1); +} + if (version_compare('7.3.0', PHP_VERSION, '>')) { fwrite( STDERR, @@ -20,6 +35,22 @@ ) ); + die(1); +} + +foreach (['dom', 'json', 'libxml', 'mbstring', 'tokenizer', 'xml', 'xmlwriter'] as $extension) { + if (extension_loaded($extension)) { + continue; + } + + fwrite( + STDERR, + sprintf( + 'PHPUnit requires the "%s" extension.' . PHP_EOL, + $extension + ) + ); + die(1); } diff -Nru phpunit-9.5.4/phpunit.xml phpunit-9.5.10/phpunit.xml --- phpunit-9.5.4/phpunit.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/phpunit.xml 2021-09-25 07:38:51.000000000 +0000 @@ -2,6 +2,7 @@ + + + diff -Nru phpunit-9.5.4/phpunit.xsd phpunit-9.5.10/phpunit.xsd --- phpunit-9.5.4/phpunit.xsd 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/phpunit.xsd 2021-09-25 07:38:51.000000000 +0000 @@ -135,7 +135,7 @@ - + @@ -213,7 +213,7 @@ - + @@ -252,7 +252,7 @@ - + @@ -280,7 +280,7 @@ - + diff -Nru phpunit-9.5.4/.psalm/baseline.xml phpunit-9.5.10/.psalm/baseline.xml --- phpunit-9.5.4/.psalm/baseline.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/.psalm/baseline.xml 2021-09-25 07:38:51.000000000 +0000 @@ -428,6 +428,11 @@ $comparisonFailure + + + $stack[1]['class'] + + Filter::getFilteredStacktrace($this) @@ -672,18 +677,22 @@ setMethods - + + $this->backupGlobalsBlacklist + $this->backupGlobalsBlacklist + $this->backupStaticAttributesBlacklist + $this->backupStaticAttributesBlacklist + + $this->backupStaticAttributes === null $this->mockObjectGenerator === null $this->prophet === null $this->runClassInSeparateProcess === null $this->runTestInSeparateProcess === null - $this->snapshot instanceof Snapshot $header - $mockObject get_class($mock) @@ -724,17 +733,14 @@ null null - + $backupStaticAttributes $mockObjectGenerator $outputBufferingLevel - $outputExpectedRegex - $outputExpectedString $prophet $result $runClassInSeparateProcess $runTestInSeparateProcess - $snapshot $methodProphecies @@ -745,10 +751,8 @@ $this instanceof PhptTestCase - + $this->prophet !== null - is_string($this->outputExpectedRegex) - is_string($this->outputExpectedString) @@ -766,7 +770,17 @@ endTest startTest - + + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners + $this->listeners $this->listeners @@ -859,11 +873,6 @@ new StandardTestSuiteLoader - - - static function () use ($cacheData) { - - TestListener @@ -873,9 +882,6 @@ doAccept - - current - @@ -885,9 +891,6 @@ $accepted && isset($this->filterMax) - - current - @@ -1245,8 +1248,12 @@ hasTestSuiteLoaderClass hasTestSuiteLoaderFile - + $this->testSuiteLoaderClass + $this->testSuiteLoaderClass + $this->testSuiteLoaderClass + $this->testSuiteLoaderFile + $this->testSuiteLoaderFile $this->testSuiteLoaderFile @@ -1320,9 +1327,6 @@ $variable - - $constants['user'] - @@ -1384,8 +1388,7 @@ $previous->getPrevious() - - getName + getName getName getName diff -Nru phpunit-9.5.4/README.md phpunit-9.5.10/README.md --- phpunit-9.5.4/README.md 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/README.md 2021-09-25 07:38:51.000000000 +0000 @@ -9,14 +9,16 @@ ## Installation -We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit 9.5 bundled in a single file: +We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit bundled in a single file: ```bash -$ wget https://phar.phpunit.de/phpunit-9.5.phar +$ wget https://phar.phpunit.de/phpunit-X.Y.phar -$ php phpunit-9.5.phar --version +$ php phpunit-X.Y.phar --version ``` +Please replace `X.Y` with the version of PHPUnit you are interested in. + Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the "[Getting Started](https://phpunit.de/getting-started-with-phpunit.html)" guide for details on how to install PHPUnit. ## Contribute diff -Nru phpunit-9.5.4/schema/8.5.xsd phpunit-9.5.10/schema/8.5.xsd --- phpunit-9.5.4/schema/8.5.xsd 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/schema/8.5.xsd 2021-09-25 07:38:51.000000000 +0000 @@ -165,7 +165,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -310,7 +310,7 @@ - + diff -Nru phpunit-9.5.4/schema/9.2.xsd phpunit-9.5.10/schema/9.2.xsd --- phpunit-9.5.4/schema/9.2.xsd 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/schema/9.2.xsd 2021-09-25 07:38:51.000000000 +0000 @@ -163,7 +163,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -310,7 +310,7 @@ - + diff -Nru phpunit-9.5.4/src/Framework/Constraint/Operator/BinaryOperator.php phpunit-9.5.10/src/Framework/Constraint/Operator/BinaryOperator.php --- phpunit-9.5.4/src/Framework/Constraint/Operator/BinaryOperator.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/Constraint/Operator/BinaryOperator.php 2021-09-25 07:38:51.000000000 +0000 @@ -37,7 +37,8 @@ */ public function setConstraints(array $constraints): void { - $this->constraints = array_map(function ($constraint): Constraint { + $this->constraints = array_map(function ($constraint): Constraint + { return $this->checkConstraint($constraint); }, array_values($constraints)); } diff -Nru phpunit-9.5.4/src/Framework/Constraint/Operator/LogicalNot.php phpunit-9.5.10/src/Framework/Constraint/Operator/LogicalNot.php --- phpunit-9.5.4/src/Framework/Constraint/Operator/LogicalNot.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/Constraint/Operator/LogicalNot.php 2021-09-25 07:38:51.000000000 +0000 @@ -50,7 +50,8 @@ preg_match('/(\'[\w\W]*\')([\w\W]*)("[\w\W]*")/i', $string, $matches); - $positives = array_map(static function (string $s) { + $positives = array_map(static function (string $s) + { return '/\\b' . preg_quote($s, '/') . '/'; }, $positives); diff -Nru phpunit-9.5.4/src/Framework/Constraint/Operator/LogicalXor.php phpunit-9.5.10/src/Framework/Constraint/Operator/LogicalXor.php --- phpunit-9.5.4/src/Framework/Constraint/Operator/LogicalXor.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/Constraint/Operator/LogicalXor.php 2021-09-25 07:38:51.000000000 +0000 @@ -53,7 +53,8 @@ return array_reduce( $constraints, - static function (bool $matches, Constraint $constraint) use ($other): bool { + static function (bool $matches, Constraint $constraint) use ($other): bool + { return $matches xor $constraint->evaluate($other, '', true); }, $initial->evaluate($other, '', true) diff -Nru phpunit-9.5.4/src/Framework/ExecutionOrderDependency.php phpunit-9.5.10/src/Framework/ExecutionOrderDependency.php --- phpunit-9.5.4/src/Framework/ExecutionOrderDependency.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/ExecutionOrderDependency.php 2021-09-25 07:38:51.000000000 +0000 @@ -74,7 +74,8 @@ return array_values( array_filter( $dependencies, - static function (self $d) { + static function (self $d) + { return $d->isValid(); } ) @@ -90,7 +91,8 @@ public static function mergeUnique(array $existing, array $additional): array { $existingTargets = array_map( - static function ($dependency) { + static function ($dependency) + { return $dependency->getTarget(); }, $existing @@ -126,7 +128,8 @@ $diff = []; $rightTargets = array_map( - static function ($dependency) { + static function ($dependency) + { return $dependency->getTarget(); }, $right diff -Nru phpunit-9.5.4/src/Framework/MockObject/Builder/InvocationMocker.php phpunit-9.5.10/src/Framework/MockObject/Builder/InvocationMocker.php --- phpunit-9.5.4/src/Framework/MockObject/Builder/InvocationMocker.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Builder/InvocationMocker.php 2021-09-25 07:38:51.000000000 +0000 @@ -235,7 +235,8 @@ } $configurableMethodNames = array_map( - static function (ConfigurableMethod $configurable) { + static function (ConfigurableMethod $configurable) + { return strtolower($configurable->getName()); }, $this->configurableMethods diff -Nru phpunit-9.5.4/src/Framework/MockObject/Builder/MethodNameMatch.php phpunit-9.5.10/src/Framework/MockObject/Builder/MethodNameMatch.php --- phpunit-9.5.4/src/Framework/MockObject/Builder/MethodNameMatch.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Builder/MethodNameMatch.php 2021-09-25 07:38:51.000000000 +0000 @@ -18,9 +18,9 @@ * Adds a new method name match and returns the parameter match object for * further matching possibilities. * - * @param \PHPUnit\Framework\Constraint\Constraint $name Constraint for matching method, if a string is passed it will use the PHPUnit_Framework_Constraint_IsEqual + * @param \PHPUnit\Framework\Constraint\Constraint $constraint Constraint for matching method, if a string is passed it will use the PHPUnit_Framework_Constraint_IsEqual * * @return ParametersMatch */ - public function method($name); + public function method($constraint); } diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php phpunit-9.5.10/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php 2021-09-25 07:38:51.000000000 +0000 @@ -20,7 +20,7 @@ { parent::__construct( sprintf( - 'Trying to set mock method "%s" with addMethods(), but it exists in class "%s". Use onlyMethods() for methods that exist in the class', + 'Trying to configure method "%s" with addMethods(), but it exists in class "%s". Use onlyMethods() for methods that exist in the class', $methodName, $type ) diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php phpunit-9.5.10/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php 2021-09-25 07:38:51.000000000 +0000 @@ -20,7 +20,7 @@ { parent::__construct( sprintf( - 'Trying to set mock method "%s" with onlyMethods, but it does not exist in class "%s". Use addMethods() for methods that do not exist in the class', + 'Trying to configure method "%s" with onlyMethods(), but it does not exist in class "%s". Use addMethods() for methods that do not exist in the class', $methodName, $type ) diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/ClassIsFinalException.php phpunit-9.5.10/src/Framework/MockObject/Exception/ClassIsFinalException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/ClassIsFinalException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/ClassIsFinalException.php 2021-09-25 07:38:51.000000000 +0000 @@ -20,7 +20,7 @@ { parent::__construct( sprintf( - 'Class "%s" is declared "final" and cannot be mocked', + 'Class "%s" is declared "final" and cannot be doubled', $className ) ); diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/DuplicateMethodException.php phpunit-9.5.10/src/Framework/MockObject/Exception/DuplicateMethodException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/DuplicateMethodException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/DuplicateMethodException.php 2021-09-25 07:38:51.000000000 +0000 @@ -23,7 +23,7 @@ { parent::__construct( sprintf( - 'Cannot stub or mock using a method list that contains duplicates: "%s" (duplicate: "%s")', + 'Cannot double using a method list that contains duplicates: "%s" (duplicate: "%s")', implode(', ', $methods), implode(', ', array_unique(array_diff_assoc($methods, array_unique($methods)))) ) diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php phpunit-9.5.10/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php 2021-09-25 07:38:51.000000000 +0000 @@ -23,7 +23,7 @@ { parent::__construct( sprintf( - 'Method %s may not return value of type %s, its return declaration is "%s"', + 'Method %s may not return value of type %s, its declared return type is "%s"', $method->getName(), is_object($value) ? get_class($value) : gettype($value), $method->getReturnTypeDeclaration() diff -Nru phpunit-9.5.4/src/Framework/MockObject/Exception/InvalidMethodNameException.php phpunit-9.5.10/src/Framework/MockObject/Exception/InvalidMethodNameException.php --- phpunit-9.5.4/src/Framework/MockObject/Exception/InvalidMethodNameException.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Exception/InvalidMethodNameException.php 2021-09-25 07:38:51.000000000 +0000 @@ -20,7 +20,7 @@ { parent::__construct( sprintf( - 'Cannot stub or mock method with invalid name "%s"', + 'Cannot double method with invalid name "%s"', $method ) ); diff -Nru phpunit-9.5.4/src/Framework/MockObject/Invocation.php phpunit-9.5.10/src/Framework/MockObject/Invocation.php --- phpunit-9.5.4/src/Framework/MockObject/Invocation.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/MockObject/Invocation.php 2021-09-25 07:38:51.000000000 +0000 @@ -23,6 +23,7 @@ use PHPUnit\Util\Type; use SebastianBergmann\Exporter\Exporter; use stdClass; +use Throwable; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit @@ -117,68 +118,105 @@ public function generateReturnValue() { if ($this->isReturnTypeNullable || $this->proxiedCall) { - return; + return null; } - $returnType = $this->returnType; + $union = false; - if (strpos($returnType, '|') !== false) { - $types = explode('|', $returnType); - $returnType = $types[0]; - - foreach ($types as $type) { - if ($type === 'null') { - return; - } - } + if (strpos($this->returnType, '|') !== false) { + $types = explode('|', $this->returnType); + $union = true; + } else { + $types = [$this->returnType]; } - switch (strtolower($returnType)) { - case '': - case 'void': - return; + $types = array_map('strtolower', $types); + + if (in_array('', $types, true) || + in_array('null', $types, true) || + in_array('mixed', $types, true) || + in_array('void', $types, true)) { + return null; + } - case 'string': - return ''; + if (in_array('false', $types, true) || + in_array('bool', $types, true)) { + return false; + } - case 'float': - return 0.0; + if (in_array('float', $types, true)) { + return 0.0; + } - case 'int': - return 0; + if (in_array('int', $types, true)) { + return 0; + } - case 'bool': - return false; + if (in_array('string', $types, true)) { + return ''; + } - case 'array': - return []; + if (in_array('array', $types, true)) { + return []; + } - case 'static': + if (in_array('static', $types, true)) { + try { return (new Instantiator)->instantiate(get_class($this->object)); + } catch (Throwable $t) { + throw new RuntimeException( + $t->getMessage(), + (int) $t->getCode(), + $t + ); + } + } - case 'object': - return new stdClass; + if (in_array('object', $types, true)) { + return new stdClass; + } - case 'callable': - case 'closure': - return static function (): void { - }; - - case 'traversable': - case 'generator': - case 'iterable': - $generator = static function (): \Generator { - yield; - }; + if (in_array('callable', $types, true) || + in_array('closure', $types, true)) { + return static function (): void + { + }; + } - return $generator(); + if (in_array('traversable', $types, true) || + in_array('generator', $types, true) || + in_array('iterable', $types, true)) { + $generator = static function (): \Generator + { + yield from []; + }; - case 'mixed': - return null; + return $generator(); + } - default: + if (!$union) { + try { return (new Generator)->getMock($this->returnType, [], [], '', false); + } catch (Throwable $t) { + throw new RuntimeException( + sprintf( + 'Return value for %s::%s() cannot be generated: %s', + $this->className, + $this->methodName, + $t->getMessage(), + ), + (int) $t->getCode(), + ); + } } + + throw new RuntimeException( + sprintf( + 'Return value for %s::%s() cannot be generated because the declared return type is a union, please configure a return value for this method', + $this->className, + $this->methodName + ) + ); } public function toString(): string diff -Nru phpunit-9.5.4/src/Framework/TestCase.php phpunit-9.5.10/src/Framework/TestCase.php --- phpunit-9.5.4/src/Framework/TestCase.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/TestCase.php 2021-09-25 07:38:51.000000000 +0000 @@ -67,6 +67,7 @@ use PHPUnit\Framework\Constraint\ExceptionCode; use PHPUnit\Framework\Constraint\ExceptionMessage; use PHPUnit\Framework\Constraint\ExceptionMessageRegularExpression; +use PHPUnit\Framework\Constraint\LogicalOr; use PHPUnit\Framework\Error\Deprecated; use PHPUnit\Framework\Error\Error; use PHPUnit\Framework\Error\Notice; @@ -1530,12 +1531,22 @@ } if ($this->expectedException !== null) { - $this->assertThat( - $exception, - new ExceptionConstraint( - $this->expectedException - ) - ); + if ($this->expectedException === Error::class) { + $this->assertThat( + $exception, + LogicalOr::fromConstraints( + new ExceptionConstraint(Error::class), + new ExceptionConstraint(\Error::class) + ) + ); + } else { + $this->assertThat( + $exception, + new ExceptionConstraint( + $this->expectedException + ) + ); + } } if ($this->expectedExceptionMessage !== null) { @@ -1733,7 +1744,8 @@ $mockedMethodsThatDontExist = array_filter( $methods, - static function (string $method) use ($reflector) { + static function (string $method) use ($reflector) + { return !$reflector->hasMethod($method); } ); diff -Nru phpunit-9.5.4/src/Framework/TestResult.php phpunit-9.5.10/src/Framework/TestResult.php --- phpunit-9.5.4/src/Framework/TestResult.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/TestResult.php 2021-09-25 07:38:51.000000000 +0000 @@ -109,7 +109,7 @@ /** * @var bool */ - private $convertDeprecationsToExceptions = true; + private $convertDeprecationsToExceptions = false; /** * @var bool diff -Nru phpunit-9.5.4/src/Framework/TestSuite.php phpunit-9.5.10/src/Framework/TestSuite.php --- phpunit-9.5.4/src/Framework/TestSuite.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Framework/TestSuite.php 2021-09-25 07:38:51.000000000 +0000 @@ -563,7 +563,8 @@ public function getGroups(): array { return array_map( - static function ($key): string { + static function ($key): string + { return (string) $key; }, array_keys($this->groups) diff -Nru phpunit-9.5.4/src/Runner/DefaultTestResultCache.php phpunit-9.5.10/src/Runner/DefaultTestResultCache.php --- phpunit-9.5.4/src/Runner/DefaultTestResultCache.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Runner/DefaultTestResultCache.php 2021-09-25 07:38:51.000000000 +0000 @@ -10,40 +10,33 @@ namespace PHPUnit\Runner; use const DIRECTORY_SEPARATOR; +use const LOCK_EX; use function assert; -use function defined; use function dirname; use function file_get_contents; use function file_put_contents; use function in_array; +use function is_array; use function is_dir; use function is_file; -use function is_float; -use function is_int; -use function is_string; -use function serialize; -use function sprintf; -use function unserialize; -use PHPUnit\Util\ErrorHandler; +use function json_decode; +use function json_encode; use PHPUnit\Util\Filesystem; -use Serializable; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class DefaultTestResultCache implements Serializable, TestResultCache +final class DefaultTestResultCache implements TestResultCache { /** - * @var string + * @var int */ - public const DEFAULT_RESULT_CACHE_FILENAME = '.phpunit.result.cache'; + private const VERSION = 1; /** - * Provide extra protection against incomplete or corrupt caches. - * - * @var int[] + * @psalm-var list */ - private const ALLOWED_CACHE_TEST_STATUSES = [ + private const ALLOWED_TEST_STATUSES = [ BaseTestRunner::STATUS_SKIPPED, BaseTestRunner::STATUS_INCOMPLETE, BaseTestRunner::STATUS_FAILURE, @@ -53,83 +46,41 @@ ]; /** - * Path and filename for result cache file. - * + * @var string + */ + private const DEFAULT_RESULT_CACHE_FILENAME = '.phpunit.result.cache'; + + /** * @var string */ private $cacheFilename; /** - * The list of defective tests. - * - * - * // Mark a test skipped - * $this->defects[$testName] = BaseTestRunner::TEST_SKIPPED; - * - * - * @var array + * @psalm-var array */ private $defects = []; /** - * The list of execution duration of suites and tests (in seconds). - * - * - * // Record running time for test - * $this->times[$testName] = 1.234; - * - * - * @var array + * @psalm-var array */ private $times = []; public function __construct(?string $filepath = null) { if ($filepath !== null && is_dir($filepath)) { - // cache path provided, use default cache filename in that location $filepath .= DIRECTORY_SEPARATOR . self::DEFAULT_RESULT_CACHE_FILENAME; } $this->cacheFilename = $filepath ?? $_ENV['PHPUNIT_RESULT_CACHE'] ?? self::DEFAULT_RESULT_CACHE_FILENAME; } - /** - * @throws Exception - */ - public function persist(): void - { - $this->saveToFile(); - } - - /** - * @throws Exception - */ - public function saveToFile(): void + public function setState(string $testName, int $state): void { - if (defined('PHPUNIT_TESTSUITE_RESULTCACHE')) { + if (!in_array($state, self::ALLOWED_TEST_STATUSES, true)) { return; } - if (!Filesystem::createDirectory(dirname($this->cacheFilename))) { - throw new Exception( - sprintf( - 'Cannot create directory "%s" for result cache file', - $this->cacheFilename - ) - ); - } - - file_put_contents( - $this->cacheFilename, - serialize($this) - ); - } - - public function setState(string $testName, int $state): void - { - if ($state !== BaseTestRunner::STATUS_PASSED) { - $this->defects[$testName] = $state; - } + $this->defects[$testName] = $state; } public function getState(string $testName): int @@ -149,85 +100,58 @@ public function load(): void { - $this->clear(); - if (!is_file($this->cacheFilename)) { return; } - $cacheData = @file_get_contents($this->cacheFilename); - - // @codeCoverageIgnoreStart - if ($cacheData === false) { - return; - } - // @codeCoverageIgnoreEnd - - $cache = ErrorHandler::invokeIgnoringWarnings( - static function () use ($cacheData) { - return @unserialize($cacheData, ['allowed_classes' => [self::class]]); - } + $data = json_decode( + file_get_contents($this->cacheFilename), + true ); - if ($cache === false) { + if ($data === null) { return; } - if ($cache instanceof self) { - /* @var DefaultTestResultCache $cache */ - $cache->copyStateToCache($this); - } - } - - public function copyStateToCache(self $targetCache): void - { - foreach ($this->defects as $name => $state) { - $targetCache->setState($name, $state); + if (!isset($data['version'])) { + return; } - foreach ($this->times as $name => $time) { - $targetCache->setTime($name, $time); + if ($data['version'] !== self::VERSION) { + return; } - } - public function clear(): void - { - $this->defects = []; - $this->times = []; - } + assert(isset($data['defects']) && is_array($data['defects'])); + assert(isset($data['times']) && is_array($data['times'])); - public function serialize(): string - { - return serialize([ - 'defects' => $this->defects, - 'times' => $this->times, - ]); + $this->defects = $data['defects']; + $this->times = $data['times']; } /** - * @param string $serialized + * @throws Exception */ - public function unserialize($serialized): void + public function persist(): void { - $data = unserialize($serialized); - - if (isset($data['times'])) { - foreach ($data['times'] as $testName => $testTime) { - assert(is_string($testName)); - assert(is_float($testTime)); - $this->times[$testName] = $testTime; - } + if (!Filesystem::createDirectory(dirname($this->cacheFilename))) { + throw new Exception( + sprintf( + 'Cannot create directory "%s" for result cache file', + $this->cacheFilename + ) + ); } - if (isset($data['defects'])) { - foreach ($data['defects'] as $testName => $testResult) { - assert(is_string($testName)); - assert(is_int($testResult)); - - if (in_array($testResult, self::ALLOWED_CACHE_TEST_STATUSES, true)) { - $this->defects[$testName] = $testResult; - } - } - } + file_put_contents( + $this->cacheFilename, + json_encode( + [ + 'version' => self::VERSION, + 'defects' => $this->defects, + 'times' => $this->times, + ] + ), + LOCK_EX + ); } } diff -Nru phpunit-9.5.4/src/Runner/PhptTestCase.php phpunit-9.5.10/src/Runner/PhptTestCase.php --- phpunit-9.5.4/src/Runner/PhptTestCase.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Runner/PhptTestCase.php 2021-09-25 07:38:51.000000000 +0000 @@ -604,7 +604,7 @@ $composerAutoload = '\'\''; - if (defined('PHPUNIT_COMPOSER_INSTALL') && !defined('PHPUNIT_TESTSUITE')) { + if (defined('PHPUNIT_COMPOSER_INSTALL')) { $composerAutoload = var_export(PHPUNIT_COMPOSER_INSTALL, true); } diff -Nru phpunit-9.5.4/src/Runner/TestSuiteSorter.php phpunit-9.5.10/src/Runner/TestSuiteSorter.php --- phpunit-9.5.4/src/Runner/TestSuiteSorter.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Runner/TestSuiteSorter.php 2021-09-25 07:38:51.000000000 +0000 @@ -237,7 +237,8 @@ /** * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException */ - function ($left, $right) { + function ($left, $right) + { return $this->cmpDefectPriorityAndTime($left, $right); } ); @@ -252,7 +253,8 @@ /** * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException */ - function ($left, $right) { + function ($left, $right) + { return $this->cmpDuration($left, $right); } ); @@ -267,7 +269,8 @@ /** * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException */ - function ($left, $right) { + function ($left, $right) + { return $this->cmpSize($left, $right); } ); diff -Nru phpunit-9.5.4/src/Runner/Version.php phpunit-9.5.10/src/Runner/Version.php --- phpunit-9.5.4/src/Runner/Version.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Runner/Version.php 2021-09-25 07:38:51.000000000 +0000 @@ -41,7 +41,7 @@ } if (self::$version === '') { - self::$version = (new VersionId('9.5.4', dirname(__DIR__, 2)))->getVersion(); + self::$version = (new VersionId('9.5.10', dirname(__DIR__, 2)))->getVersion(); } return self::$version; diff -Nru phpunit-9.5.4/src/TextUI/Help.php phpunit-9.5.10/src/TextUI/Help.php --- phpunit-9.5.4/src/TextUI/Help.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/TextUI/Help.php 2021-09-25 07:38:51.000000000 +0000 @@ -243,7 +243,8 @@ $arg = Color::colorize('fg-green', str_pad($option['arg'], $this->maxArgLength)); $arg = preg_replace_callback( '/(<[^>]+>)/', - static function ($matches) { + static function ($matches) + { return Color::colorize('fg-cyan', $matches[0]); }, $arg diff -Nru phpunit-9.5.4/src/TextUI/TestRunner.php phpunit-9.5.10/src/TextUI/TestRunner.php --- phpunit-9.5.4/src/TextUI/TestRunner.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/TextUI/TestRunner.php 2021-09-25 07:38:51.000000000 +0000 @@ -14,6 +14,7 @@ use const PHP_VERSION; use function array_diff; use function array_map; +use function array_merge; use function assert; use function class_exists; use function count; @@ -151,6 +152,8 @@ $this->handleConfiguration($arguments); + $warnings = array_merge($warnings, $arguments['warnings']); + if (is_int($arguments['columns']) && $arguments['columns'] < 16) { $arguments['columns'] = 16; $tooFewColumnsRequested = true; @@ -245,8 +248,8 @@ unset($listener, $listenerNeeded); - if (!$arguments['convertDeprecationsToExceptions']) { - $result->convertDeprecationsToExceptions(false); + if ($arguments['convertDeprecationsToExceptions']) { + $result->convertDeprecationsToExceptions(true); } if (!$arguments['convertErrorsToExceptions']) { @@ -889,6 +892,10 @@ $arguments['configurationObject'] = (new Loader)->load($arguments['configuration']); } + if (!isset($arguments['warnings'])) { + $arguments['warnings'] = []; + } + $arguments['debug'] = $arguments['debug'] ?? false; $arguments['filter'] = $arguments['filter'] ?? false; $arguments['listeners'] = $arguments['listeners'] ?? []; @@ -1094,7 +1101,7 @@ $arguments['cacheResult'] = $arguments['cacheResult'] ?? true; $arguments['colors'] = $arguments['colors'] ?? DefaultResultPrinter::COLOR_DEFAULT; $arguments['columns'] = $arguments['columns'] ?? 80; - $arguments['convertDeprecationsToExceptions'] = $arguments['convertDeprecationsToExceptions'] ?? true; + $arguments['convertDeprecationsToExceptions'] = $arguments['convertDeprecationsToExceptions'] ?? false; $arguments['convertErrorsToExceptions'] = $arguments['convertErrorsToExceptions'] ?? true; $arguments['convertNoticesToExceptions'] = $arguments['convertNoticesToExceptions'] ?? true; $arguments['convertWarningsToExceptions'] = $arguments['convertWarningsToExceptions'] ?? true; @@ -1167,7 +1174,8 @@ $filterFactory->addFilter( new ReflectionClass(IncludeGroupFilterIterator::class), array_map( - static function (string $name): string { + static function (string $name): string + { return '__phpunit_covers_' . $name; }, $arguments['testsCovering'] @@ -1179,7 +1187,8 @@ $filterFactory->addFilter( new ReflectionClass(IncludeGroupFilterIterator::class), array_map( - static function (string $name): string { + static function (string $name): string + { return '__phpunit_uses_' . $name; }, $arguments['testsUsing'] diff -Nru phpunit-9.5.4/src/TextUI/XmlConfiguration/Generator.php phpunit-9.5.10/src/TextUI/XmlConfiguration/Generator.php --- phpunit-9.5.4/src/TextUI/XmlConfiguration/Generator.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/TextUI/XmlConfiguration/Generator.php 2021-09-25 07:38:51.000000000 +0000 @@ -30,12 +30,13 @@ beStrictAboutCoversAnnotation="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" + convertDeprecationsToExceptions="true" failOnRisky="true" failOnWarning="true" verbose="true"> - {tests_directory} + {tests_directory} diff -Nru phpunit-9.5.4/src/TextUI/XmlConfiguration/Loader.php phpunit-9.5.10/src/TextUI/XmlConfiguration/Loader.php --- phpunit-9.5.4/src/TextUI/XmlConfiguration/Loader.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/TextUI/XmlConfiguration/Loader.php 2021-09-25 07:38:51.000000000 +0000 @@ -1035,7 +1035,7 @@ $this->getBooleanAttribute($document->documentElement, 'noInteraction', false), $this->getBooleanAttribute($document->documentElement, 'verbose', false), $this->getBooleanAttribute($document->documentElement, 'reverseDefectList', false), - $this->getBooleanAttribute($document->documentElement, 'convertDeprecationsToExceptions', true), + $this->getBooleanAttribute($document->documentElement, 'convertDeprecationsToExceptions', false), $this->getBooleanAttribute($document->documentElement, 'convertErrorsToExceptions', true), $this->getBooleanAttribute($document->documentElement, 'convertNoticesToExceptions', true), $this->getBooleanAttribute($document->documentElement, 'convertWarningsToExceptions', true), diff -Nru phpunit-9.5.4/src/Util/Annotation/DocBlock.php phpunit-9.5.10/src/Util/Annotation/DocBlock.php --- phpunit-9.5.4/src/Util/Annotation/DocBlock.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/Annotation/DocBlock.php 2021-09-25 07:38:51.000000000 +0000 @@ -199,8 +199,8 @@ '__FILE' => realpath($this->fileName), ]; - // Split docblock into lines and rewind offset to start of docblock - $lines = preg_split('/\r\n|\r|\n/', $this->docComment); + // Trim docblock markers, split it into lines and rewind offset to start of docblock + $lines = preg_replace(['#^/\*{2}#', '#\*/$#'], '', preg_split('/\r\n|\r|\n/', $this->docComment)); $offset -= count($lines); foreach ($lines as $line) { @@ -534,7 +534,8 @@ $annotations = array_merge( $annotations, ...array_map( - static function (ReflectionClass $trait): array { + static function (ReflectionClass $trait): array + { return self::parseDocBlock((string) $trait->getDocComment()); }, array_values($reflector->getTraits()) diff -Nru phpunit-9.5.4/src/Util/Color.php phpunit-9.5.10/src/Util/Color.php --- phpunit-9.5.4/src/Util/Color.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/Color.php 2021-09-25 07:38:51.000000000 +0000 @@ -116,7 +116,8 @@ $last = count($path) - 1; $path[$last] = preg_replace_callback( '/([\-_\.]+|phpt$)/', - static function ($matches) { + static function ($matches) + { return self::dim($matches[0]); }, $path[$last] @@ -139,7 +140,8 @@ { $replaceMap = $visualizeEOL ? self::WHITESPACE_EOL_MAP : self::WHITESPACE_MAP; - return preg_replace_callback('/\s+/', static function ($matches) use ($replaceMap) { + return preg_replace_callback('/\s+/', static function ($matches) use ($replaceMap) + { return self::dim(strtr($matches[0], $replaceMap)); }, $buffer); } diff -Nru phpunit-9.5.4/src/Util/ErrorHandler.php phpunit-9.5.10/src/Util/ErrorHandler.php --- phpunit-9.5.4/src/Util/ErrorHandler.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/ErrorHandler.php 2021-09-25 07:38:51.000000000 +0000 @@ -57,7 +57,8 @@ public static function invokeIgnoringWarnings(callable $callable) { set_error_handler( - static function ($errorNumber, $errorString) { + static function ($errorNumber, $errorString) + { if ($errorNumber === E_WARNING) { return; } diff -Nru phpunit-9.5.4/src/Util/PHP/AbstractPhpProcess.php phpunit-9.5.10/src/Util/PHP/AbstractPhpProcess.php --- phpunit-9.5.4/src/Util/PHP/AbstractPhpProcess.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/PHP/AbstractPhpProcess.php 2021-09-25 07:38:51.000000000 +0000 @@ -275,7 +275,8 @@ /** * @throws ErrorException */ - static function ($errno, $errstr, $errfile, $errline): void { + static function ($errno, $errstr, $errfile, $errline): void + { throw new ErrorException($errstr, $errno, $errno, $errfile, $errline); } ); diff -Nru phpunit-9.5.4/src/Util/RegularExpression.php phpunit-9.5.10/src/Util/RegularExpression.php --- phpunit-9.5.4/src/Util/RegularExpression.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/RegularExpression.php 2021-09-25 07:38:51.000000000 +0000 @@ -22,7 +22,8 @@ public static function safeMatch(string $pattern, string $subject) { return ErrorHandler::invokeIgnoringWarnings( - static function () use ($pattern, $subject) { + static function () use ($pattern, $subject) + { return preg_match($pattern, $subject); } ); diff -Nru phpunit-9.5.4/src/Util/TestDox/CliTestDoxPrinter.php phpunit-9.5.10/src/Util/TestDox/CliTestDoxPrinter.php --- phpunit-9.5.4/src/Util/TestDox/CliTestDoxPrinter.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/TestDox/CliTestDoxPrinter.php 2021-09-25 07:38:51.000000000 +0000 @@ -301,7 +301,8 @@ if ($this->colors) { $color = self::STATUS_STYLES[$result['status']]['color'] ?? ''; - $prefix = array_map(static function ($p) use ($color) { + $prefix = array_map(static function ($p) use ($color) + { return Color::colorize($color, $p); }, self::PREFIX_DECORATED); } diff -Nru phpunit-9.5.4/src/Util/TestDox/HtmlResultPrinter.php phpunit-9.5.10/src/Util/TestDox/HtmlResultPrinter.php --- phpunit-9.5.4/src/Util/TestDox/HtmlResultPrinter.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/TestDox/HtmlResultPrinter.php 2021-09-25 07:38:51.000000000 +0000 @@ -32,6 +32,8 @@ font-variant-ligatures: common-ligatures; font-kerning: normal; margin-left: 2em; + background-color: #ffffff; + color: #000000; } body > ul > li { diff -Nru phpunit-9.5.4/src/Util/TestDox/NamePrettifier.php phpunit-9.5.10/src/Util/TestDox/NamePrettifier.php --- phpunit-9.5.4/src/Util/TestDox/NamePrettifier.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/TestDox/NamePrettifier.php 2021-09-25 07:38:51.000000000 +0000 @@ -147,7 +147,8 @@ $annotationWithPlaceholders = false; - $callback = static function (string $variable): string { + $callback = static function (string $variable): string + { return sprintf('/%s(?=\b)/', preg_quote($variable, '/')); }; @@ -318,7 +319,8 @@ } if ($this->useColor) { - $providedData = array_map(static function ($value) { + $providedData = array_map(static function ($value) + { return Color::colorize('fg-cyan', Color::visualizeWhitespace((string) $value, true)); }, $providedData); } diff -Nru phpunit-9.5.4/src/Util/TestDox/TestDoxPrinter.php phpunit-9.5.10/src/Util/TestDox/TestDoxPrinter.php --- phpunit-9.5.4/src/Util/TestDox/TestDoxPrinter.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/TestDox/TestDoxPrinter.php 2021-09-25 07:38:51.000000000 +0000 @@ -239,7 +239,8 @@ } if ($this->testFlushIndex > 0) { - if ($this->enableOutputBuffer) { + if ($this->enableOutputBuffer && + isset($this->originalExecutionOrder[$this->testFlushIndex - 1])) { $prevResult = $this->getTestResultByName($this->originalExecutionOrder[$this->testFlushIndex - 1]); } else { $prevResult = $this->testResults[$this->testFlushIndex - 1]; @@ -376,7 +377,8 @@ return implode( PHP_EOL, array_map( - static function (string $text) use ($prefix) { + static function (string $text) use ($prefix) + { return ' ' . $prefix . ($text ? ' ' . $text : ''); }, preg_split('/\r\n|\r|\n/', $message) diff -Nru phpunit-9.5.4/src/Util/TestDox/XmlResultPrinter.php phpunit-9.5.10/src/Util/TestDox/XmlResultPrinter.php --- phpunit-9.5.4/src/Util/TestDox/XmlResultPrinter.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/TestDox/XmlResultPrinter.php 2021-09-25 07:38:51.000000000 +0000 @@ -161,7 +161,8 @@ $groups = array_filter( $test->getGroups(), - static function ($group) { + static function ($group) + { return !($group === 'small' || $group === 'medium' || $group === 'large' || strpos($group, '__phpunit_') === 0); } ); diff -Nru phpunit-9.5.4/src/Util/VersionComparisonOperator.php phpunit-9.5.10/src/Util/VersionComparisonOperator.php --- phpunit-9.5.4/src/Util/VersionComparisonOperator.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/VersionComparisonOperator.php 2021-09-25 07:38:51.000000000 +0000 @@ -31,7 +31,7 @@ } /** - * @return '<'|'lt'|'<='|'le'|'>'|'gt'|'>='|'ge'|'=='|'='|'eq'|'!='|'<>'|'ne' + * @return '!='|'<'|'<='|'<>'|'='|'=='|'>'|'>='|'eq'|'ge'|'gt'|'le'|'lt'|'ne' */ public function asString(): string { diff -Nru phpunit-9.5.4/src/Util/XdebugFilterScriptGenerator.php phpunit-9.5.10/src/Util/XdebugFilterScriptGenerator.php --- phpunit-9.5.4/src/Util/XdebugFilterScriptGenerator.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/src/Util/XdebugFilterScriptGenerator.php 2021-09-25 07:38:51.000000000 +0000 @@ -28,7 +28,8 @@ public function generate(FilterConfiguration $filter): string { $files = array_map( - static function ($item) { + static function ($item) + { return sprintf( " '%s'", $item diff -Nru phpunit-9.5.4/tests/bootstrap.php phpunit-9.5.10/tests/bootstrap.php --- phpunit-9.5.4/tests/bootstrap.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/bootstrap.php 2021-09-25 07:38:51.000000000 +0000 @@ -7,11 +7,44 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -if (!\defined('TEST_FILES_PATH')) { - \define('TEST_FILES_PATH', __DIR__ . \DIRECTORY_SEPARATOR . '_files' . \DIRECTORY_SEPARATOR); +const TEST_FILES_PATH = __DIR__ . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR; + +$composer = file_exists(__DIR__ . '/../vendor/autoload.php'); +$phar = file_exists(__DIR__ . '/autoload.php'); + +if ($composer && $phar) { + print 'More than one test fixture autoloader is available, exiting.' . PHP_EOL; + + exit(1); } -\ini_set('precision', '14'); -\ini_set('serialize_precision', '14'); +if (!$composer && !$phar) { + print 'No test fixture autoloader was registered, exiting.' . PHP_EOL; + + exit(1); +} + +if ($composer) { + if (!defined('PHPUNIT_COMPOSER_INSTALL')) { + define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__) . '/vendor/autoload.php'); + } + + require_once __DIR__ . '/../vendor/autoload.php'; +} + +if ($phar) { + if (!defined('__PHPUNIT_PHAR__')) { + require_once __DIR__ . '/../build/artifacts/phpunit-snapshot.phar'; + } + + require_once __DIR__ . '/autoload.php'; + + $jsonFile = dirname(__DIR__) . '/composer.json'; + $base = dirname($jsonFile); + + foreach (json_decode(file_get_contents($jsonFile), true)['autoload-dev']['files'] as $file) { + require_once $base . DIRECTORY_SEPARATOR . $file; + } +} -require_once __DIR__ . '/../vendor/autoload.php'; +unset($composer, $phar, $jsonFile, $base, $file); diff -Nru phpunit-9.5.4/tests/end-to-end/abstract-test-class.phpt phpunit-9.5.10/tests/end-to-end/abstract-test-class.phpt --- phpunit-9.5.4/tests/end-to-end/abstract-test-class.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/abstract-test-class.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = __DIR__ . '/../_files/AbstractTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- Class 'PHPUnit\TestFixture\AbstractTest' could not be found in '%sAbstractTest.php'. diff -Nru phpunit-9.5.4/tests/end-to-end/assertion.phpt phpunit-9.5.10/tests/end-to-end/assertion.phpt --- phpunit-9.5.4/tests/end-to-end/assertion.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/assertion.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -19,7 +19,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = __DIR__ . '/../_files/AssertionExampleTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/cli/bootstrap-not-found.phpt phpunit-9.5.10/tests/end-to-end/cli/bootstrap-not-found.phpt --- phpunit-9.5.4/tests/end-to-end/cli/bootstrap-not-found.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/cli/bootstrap-not-found.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -4,7 +4,7 @@ --no-configuration --bootstrap nonExistingBootstrap.php --FILE-- diff -Nru phpunit-9.5.4/tests/end-to-end/filter-class-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-class-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-class-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-class-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'BankAccountTest'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-class.phpt phpunit-9.5.10/tests/end-to-end/filter-class.phpt --- phpunit-9.5.4/tests/end-to-end/filter-class.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-class.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'BankAccountTest'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-classname-and-range-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-classname-and-range-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-classname-and-range-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-classname-and-range-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'DataProviderFilterTest#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-classname-and-range.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-classname-and-range.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-classname-and-range.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-classname-and-range.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'DataProviderFilterTest#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-number-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-number-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-number-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-number-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testTrue#3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-number.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-number.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-number.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-number.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'testTrue#3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-range-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-range-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-range-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-range-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = '#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-range.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-range.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-range.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-range.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-regexp-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-regexp-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-regexp-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-regexp-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = '@false.*'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-regexp.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-regexp.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-regexp.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-regexp.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '@false.*'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-string-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-string-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-string-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-string-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = '@false test'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-string.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-string.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-only-string.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-only-string.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '@false test'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-range-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-range-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-range-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-range-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testTrue#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-range.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-range.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-range.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-range.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'testTrue#1-3'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-regexp-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-regexp-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-regexp-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-regexp-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testFalse@false.*'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-regexp.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-regexp.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-regexp.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-regexp.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'testFalse@false.*'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-string-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-string-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-string-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-string-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testFalse@false test'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-string.phpt phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-string.phpt --- phpunit-9.5.4/tests/end-to-end/filter-dataprovider-by-string.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-dataprovider-by-string.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'testFalse@false test'; $_SERVER['argv'][] = __DIR__ . '/../_files/DataProviderFilterTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-method-case-insensitive.phpt phpunit-9.5.10/tests/end-to-end/filter-method-case-insensitive.phpt --- phpunit-9.5.4/tests/end-to-end/filter-method-case-insensitive.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-method-case-insensitive.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '/balanceIsInitiallyZero/i'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-method-case-sensitive-no-result.phpt phpunit-9.5.10/tests/end-to-end/filter-method-case-sensitive-no-result.phpt --- phpunit-9.5.4/tests/end-to-end/filter-method-case-sensitive-no-result.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-method-case-sensitive-no-result.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '/balanceIsInitiallyZero/'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-method-isolation.phpt phpunit-9.5.10/tests/end-to-end/filter-method-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/filter-method-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-method-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testBalanceIsInitiallyZero'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-method.phpt phpunit-9.5.10/tests/end-to-end/filter-method.phpt --- phpunit-9.5.4/tests/end-to-end/filter-method.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-method.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'testBalanceIsInitiallyZero'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/filter-no-results.phpt phpunit-9.5.10/tests/end-to-end/filter-no-results.phpt --- phpunit-9.5.4/tests/end-to-end/filter-no-results.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/filter-no-results.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'doesNotExist'; $_SERVER['argv'][] = __DIR__ . '/../_files/BankAccountTest.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/force-covers-annotation.phpt phpunit-9.5.10/tests/end-to-end/force-covers-annotation.phpt --- phpunit-9.5.4/tests/end-to-end/force-covers-annotation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/force-covers-annotation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = __DIR__ . '/force-covers-annotation/phpunit.xml'; $_SERVER['argv'][] = __DIR__ . '/force-covers-annotation/tests/Test.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/forward-compatibility.phpt phpunit-9.5.10/tests/end-to-end/forward-compatibility.phpt --- phpunit-9.5.4/tests/end-to-end/forward-compatibility.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/forward-compatibility.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ ---TEST-- -phpunit ../../_files/BankAccountTest.php ---FILE-- - ul > li { diff -Nru phpunit-9.5.4/tests/end-to-end/loggers/testdox.phpt phpunit-9.5.10/tests/end-to-end/loggers/testdox.phpt --- phpunit-9.5.4/tests/end-to-end/loggers/testdox.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/loggers/testdox.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,7 @@ $_SERVER['argv'][] = '--no-interaction'; $_SERVER['argv'][] = realpath(__DIR__ . '/../../unit/Util/ColorTest.php'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/loggers/testdox-text.phpt phpunit-9.5.10/tests/end-to-end/loggers/testdox-text.phpt --- phpunit-9.5.4/tests/end-to-end/loggers/testdox-text.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/loggers/testdox-text.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'php://stdout'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../../_files/BankAccountTest.php'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/loggers/testdox-xml.phpt phpunit-9.5.10/tests/end-to-end/loggers/testdox-xml.phpt --- phpunit-9.5.4/tests/end-to-end/loggers/testdox-xml.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/loggers/testdox-xml.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = 'php://stdout'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../../basic/unit/StatusTest.php'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/migration-from-85.phpt phpunit-9.5.10/tests/end-to-end/migration/migration-from-85.phpt --- phpunit-9.5.4/tests/end-to-end/migration/migration-from-85.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/migration-from-85.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ chdir(sys_get_temp_dir()); copy(__DIR__ . '/migration-from-85/phpunit-8.5.xml', 'phpunit.xml'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/migration-from-85-with-custom-filename.phpt phpunit-9.5.10/tests/end-to-end/migration/migration-from-85-with-custom-filename.phpt --- phpunit-9.5.4/tests/end-to-end/migration/migration-from-85-with-custom-filename.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/migration-from-85-with-custom-filename.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,7 @@ chdir(sys_get_temp_dir()); copy(__DIR__ . '/migration-from-85/phpunit-8.5.xml', 'custom.xml'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/migration-from-92.phpt phpunit-9.5.10/tests/end-to-end/migration/migration-from-92.phpt --- phpunit-9.5.4/tests/end-to-end/migration/migration-from-92.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/migration-from-92.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ chdir(sys_get_temp_dir()); copy(__DIR__ . '/migration-from-92/phpunit-9.2.xml', 'phpunit.xml'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/migration-not-needed.phpt phpunit-9.5.10/tests/end-to-end/migration/migration-not-needed.phpt --- phpunit-9.5.4/tests/end-to-end/migration/migration-not-needed.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/migration-not-needed.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ chdir(sys_get_temp_dir()); copy(__DIR__ . '/migration-not-needed/phpunit.xml', 'phpunit.xml'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/possibility-to-migrate-from-85-is-detected.phpt phpunit-9.5.10/tests/end-to-end/migration/possibility-to-migrate-from-85-is-detected.phpt --- phpunit-9.5.4/tests/end-to-end/migration/possibility-to-migrate-from-85-is-detected.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/possibility-to-migrate-from-85-is-detected.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--configuration'; $_SERVER['argv'][] = __DIR__ . '/possibility-to-migrate-from-85-is-detected/phpunit.xml'; -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected.phpt phpunit-9.5.10/tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected.phpt --- phpunit-9.5.4/tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/migration/possibility-to-migrate-from-92-is-detected.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--configuration'; $_SERVER['argv'][] = __DIR__ . '/possibility-to-migrate-from-92-is-detected/phpunit.xml'; -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/232.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/232.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/232.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/232.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -38,7 +38,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3154_namespaced_constant_resolving.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3154_namespaced_constant_resolving.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3154_namespaced_constant_resolving.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3154_namespaced_constant_resolving.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -23,7 +23,7 @@ return $z."sum: ".($i+$j).$v; } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3530.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3530.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3530.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3530.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -5,7 +5,7 @@ if (!extension_loaded('soap')) echo 'skip: Extension soap is required'; --FILE-- isFinal()) { + print 'skip: PHP < 8.1 required'; +} +--FILE-- +generate( + 'Baz', + [], + 'MockBaz', + true, + true +); + +print $mock->getClassCode(); +--EXPECT-- +declare(strict_types=1); + +class MockBaz extends Exception implements Baz, PHPUnit\Framework\MockObject\MockObject +{ + use \PHPUnit\Framework\MockObject\Api; + use \PHPUnit\Framework\MockObject\Method; + + public function foo(): string + { + $__phpunit_arguments = []; + $__phpunit_count = func_num_args(); + + if ($__phpunit_count > 0) { + $__phpunit_arguments_tmp = func_get_args(); + + for ($__phpunit_i = 0; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { + $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; + } + } + + $__phpunit_result = $this->__phpunit_getInvocationHandler()->invoke( + new \PHPUnit\Framework\MockObject\Invocation( + 'Bar', 'foo', $__phpunit_arguments, 'string', $this, true + ) + ); + + return $__phpunit_result; + } +} diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3967.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3967.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/3967.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/3967.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -1,5 +1,10 @@ --TEST-- https://github.com/sebastianbergmann/phpunit/issues/3967 +--SKIPIF-- +isFinal()) { + print 'skip: PHP >= 8.1 required'; +} --FILE-- getMock('Foo'); + +var_dump(iterator_to_array($mock->forTraversable())); +var_dump(iterator_to_array($mock->forGenerator())); +var_dump(iterator_to_array($mock->forIterable())); +--EXPECTF-- +array(0) { +} +array(0) { +} +array(0) { +} diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_generator.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_generator.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_generator.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_generator.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ public function bar(): Generator; } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_nullable.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_nullable.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_nullable.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_nullable.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ public function bar(string $baz): ?string; } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_object_method.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_object_method.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_object_method.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_object_method.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_parent.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_parent.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_parent.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_parent.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -14,7 +14,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_self.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_self.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_self.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_self.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ public function bar(string $baz): self; } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_static_method.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_static_method.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_static_method.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_static_method.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_static.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_static.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_static.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_static.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -22,7 +22,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_void.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_void.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/return_type_declarations_void.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/return_type_declarations_void.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ public function bar(string $baz): void; } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/scalar_type_declarations.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/scalar_type_declarations.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/scalar_type_declarations.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/scalar_type_declarations.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/union_type_parameter.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/union_type_parameter.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/union_type_parameter.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/union_type_parameter.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -14,7 +14,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/union_type_return.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/union_type_return.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/union_type_return.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/union_type_return.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -14,7 +14,7 @@ } } -require __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../bootstrap.php'; $generator = new \PHPUnit\Framework\MockObject\Generator; diff -Nru phpunit-9.5.4/tests/end-to-end/mock-objects/generator/wsdl_class_namespace.phpt phpunit-9.5.10/tests/end-to-end/mock-objects/generator/wsdl_class_namespace.phpt --- phpunit-9.5.4/tests/end-to-end/mock-objects/generator/wsdl_class_namespace.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/mock-objects/generator/wsdl_class_namespace.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -5,7 +5,7 @@ if (!extension_loaded('soap')) echo 'skip: Extension soap is required'; --FILE-- diff -Nru phpunit-9.5.4/tests/end-to-end/output-isolation.phpt phpunit-9.5.10/tests/end-to-end/output-isolation.phpt --- phpunit-9.5.4/tests/end-to-end/output-isolation.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/output-isolation.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -9,7 +9,7 @@ $_SERVER['argv'][] = 'testExpectOutputStringFooActualFoo'; $_SERVER['argv'][] = __DIR__ . '/../_files/OutputTestCase.php'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/phar-extension.phpt phpunit-9.5.10/tests/end-to-end/phar-extension.phpt --- phpunit-9.5.4/tests/end-to-end/phar-extension.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phar-extension.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--configuration'; $_SERVER['argv'][] = __DIR__ . '/../_files/phpunit-example-extension'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/phar-extension-suppressed.phpt phpunit-9.5.10/tests/end-to-end/phar-extension-suppressed.phpt --- phpunit-9.5.4/tests/end-to-end/phar-extension-suppressed.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phar-extension-suppressed.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -12,7 +12,7 @@ $_SERVER['argv'][] = __DIR__ . '/../_files/phpunit-example-extension'; $_SERVER['argv'][] = '--no-extensions'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- Fatal error: Trait %sPHPUnit\ExampleExtension\TestCaseTrait%s not found in %s diff -Nru phpunit-9.5.4/tests/end-to-end/phpt/expect-external-location-hint.phpt phpunit-9.5.10/tests/end-to-end/phpt/expect-external-location-hint.phpt --- phpunit-9.5.4/tests/end-to-end/phpt/expect-external-location-hint.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phpt/expect-external-location-hint.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = '--verbose'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../_files/phpt-expect-external-location-hint-example.phpt'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/phpt/expect-location-hint.phpt phpunit-9.5.10/tests/end-to-end/phpt/expect-location-hint.phpt --- phpunit-9.5.4/tests/end-to-end/phpt/expect-location-hint.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phpt/expect-location-hint.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = '--verbose'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../_files/phpt-expect-location-hint-example.phpt'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/phpt/skipif-location-hint.phpt phpunit-9.5.10/tests/end-to-end/phpt/skipif-location-hint.phpt --- phpunit-9.5.4/tests/end-to-end/phpt/skipif-location-hint.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phpt/skipif-location-hint.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = '--verbose'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../_files/phpt-skipif-location-hint-example.phpt'); -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/phpt-parsing.phpt phpunit-9.5.10/tests/end-to-end/phpt-parsing.phpt --- phpunit-9.5.4/tests/end-to-end/phpt-parsing.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phpt-parsing.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = '--verbose'; $_SERVER['argv'][] = \realpath(__DIR__ . '/../_files/phpt-unsupported-section.phpt'); -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/phpt-xfail.phpt phpunit-9.5.10/tests/end-to-end/phpt-xfail.phpt --- phpunit-9.5.4/tests/end-to-end/phpt-xfail.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/phpt-xfail.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = __DIR__ . '/../_files/phpt-xfail.phpt'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1149.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1149.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1149.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1149.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = __DIR__ . '/1149/Issue1149Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1216.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1216.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1216.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1216.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,7 @@ $_SERVER['argv'][] = __DIR__ . '/1216/bootstrap1216.php'; $_SERVER['argv'][] = __DIR__ . '/1216/Issue1216Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1265.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1265.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1265.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1265.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,7 +7,7 @@ $_SERVER['argv'][] = __DIR__ . '/1265/phpunit1265.xml'; $_SERVER['argv'][] = __DIR__ . '/1265/Issue1265Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1330.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1330.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1330.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1330.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = __DIR__ . '/1330/phpunit1330.xml'; $_SERVER['argv'][] = __DIR__ . '/1330/Issue1330Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1335.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1335.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1335.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1335.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = __DIR__ . '/1335/bootstrap1335.php'; $_SERVER['argv'][] = __DIR__ . '/1335/Issue1335Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1337/Issue1337Test.php phpunit-9.5.10/tests/end-to-end/regression/GitHub/1337/Issue1337Test.php --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1337/Issue1337Test.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1337/Issue1337Test.php 2021-09-25 07:38:51.000000000 +0000 @@ -23,7 +23,8 @@ { return [ 'c:\\' => [true], - 0.9 => [true], + // The following is commented out because it no longer works in PHP >= 8.1 + //0.9 => [true], ]; } } diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1337.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1337.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1337.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1337.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -7,13 +7,13 @@ $_SERVER['argv'][] = '--process-isolation'; $_SERVER['argv'][] = __DIR__ . '/1337/Issue1337Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. -.. 2 / 2 (100%) +. 1 / 1 (100%) Time: %s, Memory: %s -OK (2 tests, 2 assertions) +OK (1 test, 1 assertion) diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1348.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1348.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1348.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1348.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -12,7 +12,7 @@ $_SERVER['argv'][] = '--process-isolation'; $_SERVER['argv'][] = __DIR__ . '/1348/Issue1348Test.php'; -require __DIR__ . '/../../../bootstrap.php'; +require_once __DIR__ . '/../../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351/ChildProcessClass1351.php phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351/ChildProcessClass1351.php --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351/ChildProcessClass1351.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351/ChildProcessClass1351.php 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -class ChildProcessClass1351 -{ -} diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351/Issue1351Test.php phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351/Issue1351Test.php --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351/Issue1351Test.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351/Issue1351Test.php 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -use PHPUnit\Framework\TestCase; - -class Issue1351Test extends TestCase -{ - protected $instance; - - /** - * @runInSeparateProcess - */ - public function testFailurePre(): void - { - $this->instance = new ChildProcessClass1351; - $this->assertFalse(true, 'Expected failure.'); - } - - public function testFailurePost(): void - { - $this->assertNull($this->instance); - $this->assertFalse(\class_exists(ChildProcessClass1351::class, false), 'ChildProcessClass1351 is not loaded.'); - } - - /** - * @runInSeparateProcess - */ - public function testExceptionPre(): void - { - $this->instance = new ChildProcessClass1351; - - try { - throw new LogicException('Expected exception.'); - } catch (LogicException $e) { - throw new RuntimeException('Expected rethrown exception.', 0, $e); - } - } - - public function testExceptionPost(): void - { - $this->assertNull($this->instance); - $this->assertFalse(\class_exists(ChildProcessClass1351::class, false), 'ChildProcessClass1351 is not loaded.'); - } - - public function testPhpCoreLanguageException(): void - { - // User-space code cannot instantiate a PDOException with a string code, - // so trigger a real one. - $connection = new PDO('sqlite::memory:'); - $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $connection->query("DELETE FROM php_wtf WHERE exception_code = 'STRING'"); - } -} diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/1351.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/1351.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ ---TEST-- -https://github.com/sebastianbergmann/phpunit/issues/1351 ---SKIPIF-- - + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestFixture; + +use PHPUnit\Framework\TestCase; + +final class Issue4632Test extends TestCase +{ + public function testOne(): void + { + $this->assertTrue(false); + } +} diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/4632.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/4632.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/4632.phpt 1970-01-01 00:00:00.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/4632.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -0,0 +1,45 @@ +--TEST-- +https://github.com/sebastianbergmann/phpunit/issues/4632 +--FILE-- + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +use PHPUnit\Framework\TestCase; + +final class Issue4663Test extends TestCase +{ + public function testTestThatExpectsAnErrorPassesWhenTheErrorOccurs(): void + { + $this->expectError(); + + implode('', [new stdClass]); + } +} diff -Nru phpunit-9.5.4/tests/end-to-end/regression/GitHub/4663.phpt phpunit-9.5.10/tests/end-to-end/regression/GitHub/4663.phpt --- phpunit-9.5.4/tests/end-to-end/regression/GitHub/4663.phpt 1970-01-01 00:00:00.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/regression/GitHub/4663.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +https://github.com/sebastianbergmann/phpunit/issues/4663 +--FILE-- +run([ 'phpunit', diff -Nru phpunit-9.5.4/tests/end-to-end/standardtestsuiteloader-issue-4192-2.phpt phpunit-9.5.10/tests/end-to-end/standardtestsuiteloader-issue-4192-2.phpt --- phpunit-9.5.4/tests/end-to-end/standardtestsuiteloader-issue-4192-2.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/standardtestsuiteloader-issue-4192-2.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -2,7 +2,7 @@ phpunit ../../_files/ConcreteTest.php --FILE-- run([ 'phpunit', diff -Nru phpunit-9.5.4/tests/end-to-end/test-directory-does-not-exist/test-directory-does-not-exist.phpt phpunit-9.5.10/tests/end-to-end/test-directory-does-not-exist/test-directory-does-not-exist.phpt --- phpunit-9.5.4/tests/end-to-end/test-directory-does-not-exist/test-directory-does-not-exist.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/test-directory-does-not-exist/test-directory-does-not-exist.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--configuration'; $_SERVER['argv'][] = __DIR__ . '/phpunit.xml'; -require __DIR__ . '/../../bootstrap.php'; +require_once __DIR__ . '/../../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- diff -Nru phpunit-9.5.4/tests/end-to-end/test-suffix-multiple.phpt phpunit-9.5.10/tests/end-to-end/test-suffix-multiple.phpt --- phpunit-9.5.4/tests/end-to-end/test-suffix-multiple.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/test-suffix-multiple.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '.test.php,.my.php'; $_SERVER['argv'][] = __DIR__ . '/../_files/'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/test-suffix-single.phpt phpunit-9.5.10/tests/end-to-end/test-suffix-single.phpt --- phpunit-9.5.4/tests/end-to-end/test-suffix-single.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/test-suffix-single.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -8,7 +8,7 @@ $_SERVER['argv'][] = '.test.php'; $_SERVER['argv'][] = __DIR__ . '/../_files/'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. diff -Nru phpunit-9.5.4/tests/end-to-end/two-classes-per-file-invalid.phpt phpunit-9.5.10/tests/end-to-end/two-classes-per-file-invalid.phpt --- phpunit-9.5.4/tests/end-to-end/two-classes-per-file-invalid.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/two-classes-per-file-invalid.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = __DIR__ . '/../_files/OneClassPerFile/failing/'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); ?> diff -Nru phpunit-9.5.4/tests/end-to-end/version.phpt phpunit-9.5.10/tests/end-to-end/version.phpt --- phpunit-9.5.4/tests/end-to-end/version.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/end-to-end/version.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,7 @@ $_SERVER['argv'][] = '--no-configuration'; $_SERVER['argv'][] = '--version'; -require __DIR__ . '/../bootstrap.php'; +require_once __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); ?> diff -Nru phpunit-9.5.4/tests/_files/BankAccountTest2.php phpunit-9.5.10/tests/_files/BankAccountTest2.php --- phpunit-9.5.4/tests/_files/BankAccountTest2.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/BankAccountTest2.php 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace PHPUnit\TestFixture; - -use PHPUnit\Framework\TestCase; - -class BankAccountTest extends TestCase -{ - private $ba; - - protected function setUp(): void - { - $this->ba = new BankAccount; - } - - public function testBalanceIsInitiallyZero(): void - { - $ba = new BankAccount; - - $balance = $ba->getBalance(); - - $this->assertEquals(0, $balance); - } - - public function testBalanceCannotBecomeNegative(): void - { - try { - $this->ba->withdrawMoney(1); - } catch (BankAccountException $e) { - $this->assertEquals(0, $this->ba->getBalance()); - - return; - } - - $this->fail(); - } - - public function testBalanceCannotBecomeNegative2(): void - { - try { - $this->ba->depositMoney(-1); - } catch (BankAccountException $e) { - $this->assertEquals(0, $this->ba->getBalance()); - - return; - } - - $this->fail(); - } -} diff -Nru phpunit-9.5.4/tests/_files/configuration_execution_order_options.xml phpunit-9.5.10/tests/_files/configuration_execution_order_options.xml --- phpunit-9.5.4/tests/_files/configuration_execution_order_options.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/configuration_execution_order_options.xml 2021-09-25 07:38:51.000000000 +0000 @@ -1,8 +1,4 @@ - - - - diff -Nru phpunit-9.5.4/tests/_files/DataproviderExecutionOrderTest_result_cache.txt phpunit-9.5.10/tests/_files/DataproviderExecutionOrderTest_result_cache.txt --- phpunit-9.5.4/tests/_files/DataproviderExecutionOrderTest_result_cache.txt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/DataproviderExecutionOrderTest_result_cache.txt 2021-09-25 07:38:51.000000000 +0000 @@ -1 +1 @@ -C:37:"PHPUnit\Runner\DefaultTestResultCache":2119:{a:2:{s:7:"defects";a:5:{s:60:"tests/end-to-end/regression/GitHub/3396/issue-3396-test.phpt";i:3;s:88:"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+1=3"";i:3;s:92:"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+1=3"";i:3;s:85:"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+1=3"";i:3;s:89:"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+1=3"";i:3;}s:5:"times";a:17:{s:60:"tests/end-to-end/regression/GitHub/3396/issue-3396-test.phpt";d:0.115;s:63:"MultiDependencyExecutionOrderTest::testFirstTestThatAlwaysWorks";d:0;s:88:"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+2=3"";d:0;s:88:"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set "2+1=3"";d:0;s:88:"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+1=3"";d:0.003;s:69:"MultiDependencyExecutionOrderTest::testTestInTheMiddleThatAlwaysWorks";d:0;s:92:"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+2=3"";d:0;s:92:"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "2+1=3"";d:0;s:92:"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+1=3"";d:0;s:60:"DataproviderExecutionOrderTest::testFirstTestThatAlwaysWorks";d:0.002;s:85:"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+2=3"";d:0;s:85:"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set "2+1=3"";d:0;s:85:"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set "1+1=3"";d:0.001;s:66:"DataproviderExecutionOrderTest::testTestInTheMiddleThatAlwaysWorks";d:0;s:89:"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+2=3"";d:0;s:89:"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "2+1=3"";d:0;s:89:"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set "1+1=3"";d:0;}}} +{"version":1,"defects":{"tests\/end-to-end\/regression\/GitHub\/3396\/issue-3396-test.phpt":3,"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+1=3\"":3,"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+1=3\"":3,"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+1=3\"":3,"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+1=3\"":3},"times":{"tests\/end-to-end\/regression\/GitHub\/3396\/issue-3396-test.phpt":0.115,"MultiDependencyExecutionOrderTest::testFirstTestThatAlwaysWorks":0,"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+2=3\"":0,"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set \"2+1=3\"":0,"MultiDependencyExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+1=3\"":0.003,"MultiDependencyExecutionOrderTest::testTestInTheMiddleThatAlwaysWorks":0,"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+2=3\"":0,"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"2+1=3\"":0,"MultiDependencyExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+1=3\"":0,"DataproviderExecutionOrderTest::testFirstTestThatAlwaysWorks":0.002,"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+2=3\"":0,"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set \"2+1=3\"":0,"DataproviderExecutionOrderTest::testAddNumbersWithADataprovider with data set \"1+1=3\"":0.001,"DataproviderExecutionOrderTest::testTestInTheMiddleThatAlwaysWorks":0,"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+2=3\"":0,"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"2+1=3\"":0,"DataproviderExecutionOrderTest::testAddMoreNumbersWithADataprovider with data set \"1+1=3\"":0}} \ No newline at end of file diff -Nru phpunit-9.5.4/tests/_files/DoubleTestCase.php phpunit-9.5.10/tests/_files/DoubleTestCase.php --- phpunit-9.5.4/tests/_files/DoubleTestCase.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/DoubleTestCase.php 2021-09-25 07:38:51.000000000 +0000 @@ -22,7 +22,7 @@ $this->testCase = $testCase; } - public function count() + public function count(): int { return 2; } diff -Nru phpunit-9.5.4/tests/_files/InterfaceWithMethodsThatDeclareBooleanReturnTypes.php phpunit-9.5.10/tests/_files/InterfaceWithMethodsThatDeclareBooleanReturnTypes.php --- phpunit-9.5.4/tests/_files/InterfaceWithMethodsThatDeclareBooleanReturnTypes.php 1970-01-01 00:00:00.000000000 +0000 +++ phpunit-9.5.10/tests/_files/InterfaceWithMethodsThatDeclareBooleanReturnTypes.php 2021-09-25 07:38:51.000000000 +0000 @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TestFixture; + +interface InterfaceWithMethodsThatDeclareBooleanReturnTypes +{ + public function returnsIntOrFalse(): int | false; + + public function returnsBool(): bool; +} diff -Nru phpunit-9.5.4/tests/_files/NotReorderableTest.php phpunit-9.5.10/tests/_files/NotReorderableTest.php --- phpunit-9.5.4/tests/_files/NotReorderableTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/NotReorderableTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -12,7 +12,7 @@ class NotReorderableTest implements Test { - public function count() + public function count(): int { return 1; } diff -Nru phpunit-9.5.4/tests/_files/phpt-for-coverage.phpt phpunit-9.5.10/tests/_files/phpt-for-coverage.phpt --- phpunit-9.5.4/tests/_files/phpt-for-coverage.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/phpt-for-coverage.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -2,7 +2,7 @@ PHPT for testing coverage --FILE-- publicMethod(); --EXPECT-- diff -Nru phpunit-9.5.4/tests/_files/phpt-for-multiwhitelist-coverage.phpt phpunit-9.5.10/tests/_files/phpt-for-multiwhitelist-coverage.phpt --- phpunit-9.5.4/tests/_files/phpt-for-multiwhitelist-coverage.phpt 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/phpt-for-multiwhitelist-coverage.phpt 2021-09-25 07:38:51.000000000 +0000 @@ -2,7 +2,7 @@ PHPT for testing coverage using multiple whitespace arguments --FILE-- publicMethod(); $anotherCoveredClass = new SampleClass(1, 2, 'a'); diff -Nru phpunit-9.5.4/tests/_files/SampleArrayAccess.php phpunit-9.5.10/tests/_files/SampleArrayAccess.php --- phpunit-9.5.4/tests/_files/SampleArrayAccess.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/SampleArrayAccess.php 2021-09-25 07:38:51.000000000 +0000 @@ -10,6 +10,7 @@ namespace PHPUnit\TestFixture; use ArrayAccess; +use ReturnTypeWillChange; class SampleArrayAccess implements ArrayAccess { @@ -29,6 +30,7 @@ } } + #[ReturnTypeWillChange] public function offsetExists($offset) { return isset($this->container[$offset]); @@ -39,6 +41,7 @@ unset($this->container[$offset]); } + #[ReturnTypeWillChange] public function offsetGet($offset) { return $this->container[$offset] ?? null; diff -Nru phpunit-9.5.4/tests/_files/Singleton.php phpunit-9.5.10/tests/_files/Singleton.php --- phpunit-9.5.4/tests/_files/Singleton.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/Singleton.php 2021-09-25 07:38:51.000000000 +0000 @@ -11,7 +11,7 @@ class Singleton { - private static $uniqueInstance = null; + private static $uniqueInstance; public static function getInstance() { diff -Nru phpunit-9.5.4/tests/_files/TestIterator2.php phpunit-9.5.10/tests/_files/TestIterator2.php --- phpunit-9.5.4/tests/_files/TestIterator2.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/TestIterator2.php 2021-09-25 07:38:51.000000000 +0000 @@ -14,6 +14,7 @@ use function next; use function reset; use Iterator; +use ReturnTypeWillChange; class TestIterator2 implements Iterator { @@ -24,6 +25,7 @@ $this->data = $array; } + #[ReturnTypeWillChange] public function current() { return current($this->data); @@ -34,11 +36,13 @@ next($this->data); } + #[ReturnTypeWillChange] public function key() { return key($this->data); } + #[ReturnTypeWillChange] public function valid() { return key($this->data) !== null; diff -Nru phpunit-9.5.4/tests/_files/TestIteratorAggregate2.php phpunit-9.5.10/tests/_files/TestIteratorAggregate2.php --- phpunit-9.5.4/tests/_files/TestIteratorAggregate2.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/TestIteratorAggregate2.php 2021-09-25 07:38:51.000000000 +0000 @@ -10,6 +10,7 @@ namespace PHPUnit\TestFixture; use IteratorAggregate; +use ReturnTypeWillChange; use Traversable; class TestIteratorAggregate2 implements IteratorAggregate @@ -21,6 +22,7 @@ $this->traversable = $traversable; } + #[ReturnTypeWillChange] public function getIterator() { return $this->traversable; diff -Nru phpunit-9.5.4/tests/_files/TestIteratorAggregate.php phpunit-9.5.10/tests/_files/TestIteratorAggregate.php --- phpunit-9.5.4/tests/_files/TestIteratorAggregate.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/TestIteratorAggregate.php 2021-09-25 07:38:51.000000000 +0000 @@ -10,6 +10,7 @@ namespace PHPUnit\TestFixture; use IteratorAggregate; +use ReturnTypeWillChange; use Traversable; class TestIteratorAggregate implements IteratorAggregate @@ -21,6 +22,7 @@ $this->traversable = $traversable; } + #[ReturnTypeWillChange] public function getIterator() { return $this->traversable; diff -Nru phpunit-9.5.4/tests/_files/TestIterator.php phpunit-9.5.10/tests/_files/TestIterator.php --- phpunit-9.5.4/tests/_files/TestIterator.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/TestIterator.php 2021-09-25 07:38:51.000000000 +0000 @@ -11,6 +11,7 @@ use function count; use Iterator; +use ReturnTypeWillChange; class TestIterator implements Iterator { @@ -28,16 +29,19 @@ $this->position = 0; } + #[ReturnTypeWillChange] public function valid() { return $this->position < count($this->array); } + #[ReturnTypeWillChange] public function key() { return $this->position; } + #[ReturnTypeWillChange] public function current() { return $this->array[$this->position]; diff -Nru phpunit-9.5.4/tests/_files/WrapperIteratorAggregate.php phpunit-9.5.10/tests/_files/WrapperIteratorAggregate.php --- phpunit-9.5.4/tests/_files/WrapperIteratorAggregate.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/_files/WrapperIteratorAggregate.php 2021-09-25 07:38:51.000000000 +0000 @@ -12,6 +12,7 @@ use function assert; use function is_array; use IteratorAggregate; +use ReturnTypeWillChange; use Traversable; class WrapperIteratorAggregate implements IteratorAggregate @@ -27,6 +28,7 @@ $this->baseCollection = $baseCollection; } + #[ReturnTypeWillChange] public function getIterator() { foreach ($this->baseCollection as $k => $v) { diff -Nru phpunit-9.5.4/tests/phar/phpunit.xml phpunit-9.5.10/tests/phar/phpunit.xml --- phpunit-9.5.4/tests/phar/phpunit.xml 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/phar/phpunit.xml 2021-09-25 07:38:51.000000000 +0000 @@ -6,7 +6,13 @@ failOnWarning="true"> - tests + tests + + + + src + + diff -Nru phpunit-9.5.4/tests/phar/src/autoload.php phpunit-9.5.10/tests/phar/src/autoload.php --- phpunit-9.5.4/tests/phar/src/autoload.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/phar/src/autoload.php 2021-09-25 07:38:51.000000000 +0000 @@ -7,4 +7,4 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -require __DIR__ . '/Greeter.php'; +require_once __DIR__ . '/Greeter.php'; diff -Nru phpunit-9.5.4/tests/unit/Framework/Assert/FunctionsTest.php phpunit-9.5.10/tests/unit/Framework/Assert/FunctionsTest.php --- phpunit-9.5.4/tests/unit/Framework/Assert/FunctionsTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Assert/FunctionsTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -54,7 +54,8 @@ return array_reduce( $matches[1], - static function (array $functionNames, string $functionName) { + static function (array $functionNames, string $functionName) + { $functionNames[$functionName] = [$functionName]; return $functionNames; diff -Nru phpunit-9.5.4/tests/unit/Framework/AssertTest.php phpunit-9.5.10/tests/unit/Framework/AssertTest.php --- phpunit-9.5.4/tests/unit/Framework/AssertTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/AssertTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -1339,7 +1339,8 @@ { $this->assertThat( null, - $this->callback(static function ($other) { + $this->callback(static function ($other) + { return true; }) ); @@ -2029,7 +2030,8 @@ public function testCallableTypeCanBeAsserted(): void { - $this->assertIsCallable(static function (): void { + $this->assertIsCallable(static function (): void + { }); try { @@ -2198,7 +2200,8 @@ $this->assertIsNotCallable(null); try { - $this->assertIsNotCallable(static function (): void { + $this->assertIsNotCallable(static function (): void + { }); } catch (AssertionFailedError $e) { return; diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/BinaryOperatorTestCase.php phpunit-9.5.10/tests/unit/Framework/Constraint/BinaryOperatorTestCase.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/BinaryOperatorTestCase.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/BinaryOperatorTestCase.php 2021-09-25 07:38:51.000000000 +0000 @@ -78,7 +78,8 @@ 8, ]; - $constraints = array_map(static function ($count) { + $constraints = array_map(static function ($count) + { return CountConstraint::fromCount($count); }, $counts); @@ -144,7 +145,8 @@ { $inputs = self::getBooleanTuples(0, 5); - return array_map(function (array $input) { + return array_map(function (array $input) + { return [$input, $this->evaluateExpectedResult($input)]; }, $inputs); } @@ -154,7 +156,8 @@ */ final public function testEvaluateReturnsCorrectBooleanResult(array $inputs, bool $expected): void { - $constraints = array_map(static function (bool $input) { + $constraints = array_map(static function (bool $input) + { return BooleanConstraint::fromBool($input); }, $inputs); @@ -171,7 +174,8 @@ */ final public function testEvaluateReturnsNullOnSuccessAndThrowsExceptionOnFailure(array $inputs, bool $expected): void { - $constraints = array_map(static function (bool $input) { + $constraints = array_map(static function (bool $input) + { return BooleanConstraint::fromBool($input); }, $inputs); @@ -184,7 +188,8 @@ } else { $expectedString = self::operatorJoinStrings( array_map( - static function (Constraint $operand) { + static function (Constraint $operand) + { return $operand->toString(); }, $constraints @@ -222,7 +227,8 @@ */ public function testToStringWithNamedConstraints(string ...$names): void { - $constraints = array_map(static function (string $name) { + $constraints = array_map(static function (string $name) + { return NamedConstraint::fromName($name); }, $names); @@ -571,7 +577,8 @@ { $tuples = self::getBinaryTuples($minSize, $maxSize); - return array_map(static function ($tuple) { + return array_map(static function ($tuple) + { return array_map('boolval', $tuple); }, $tuples); } diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/CallbackTest.php phpunit-9.5.10/tests/unit/Framework/Constraint/CallbackTest.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/CallbackTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/CallbackTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -28,11 +28,13 @@ public function testConstraintCallback(): void { - $closureReflect = static function ($parameter) { + $closureReflect = static function ($parameter) + { return $parameter; }; - $closureWithoutParameter = static function () { + $closureWithoutParameter = static function () + { return true; }; @@ -56,7 +58,8 @@ public function testConstraintCallbackFailure(): void { - $constraint = new Callback(static function () { + $constraint = new Callback(static function () + { return false; }); diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/ConstraintTest.php phpunit-9.5.10/tests/unit/Framework/Constraint/ConstraintTest.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/ConstraintTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/ConstraintTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -21,7 +21,8 @@ { public static function getDummyConstraintInstance(): Constraint { - return new class extends Constraint { + return new class extends Constraint + { final public function toString(): string { return 'is ok'; diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalAndTest.php phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalAndTest.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalAndTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalAndTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -31,7 +31,8 @@ { $initial = (bool) array_shift($input); - return array_reduce($input, static function ($carry, bool $item): bool { + return array_reduce($input, static function ($carry, bool $item): bool + { return $carry && $item; }, $initial); } diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalOrTest.php phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalOrTest.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalOrTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalOrTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -31,7 +31,8 @@ { $initial = (bool) array_shift($input); - return array_reduce($input, static function ($carry, bool $item): bool { + return array_reduce($input, static function ($carry, bool $item): bool + { return $carry || $item; }, $initial); } diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalXorTest.php phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalXorTest.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/LogicalXorTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/LogicalXorTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -31,7 +31,8 @@ { $initial = (bool) array_shift($input); - return array_reduce($input, static function ($carry, bool $item): bool { + return array_reduce($input, static function ($carry, bool $item): bool + { return $carry xor $item; }, $initial); } diff -Nru phpunit-9.5.4/tests/unit/Framework/Constraint/UnaryOperatorTestCase.php phpunit-9.5.10/tests/unit/Framework/Constraint/UnaryOperatorTestCase.php --- phpunit-9.5.4/tests/unit/Framework/Constraint/UnaryOperatorTestCase.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/Constraint/UnaryOperatorTestCase.php 2021-09-25 07:38:51.000000000 +0000 @@ -119,7 +119,8 @@ final public function providerUnaryTruthTable() { - return array_map(function (bool $input): array { + return array_map(function (bool $input): array + { return [$input, $this->evaluateExpectedResult($input)]; }, [false, true]); } diff -Nru phpunit-9.5.4/tests/unit/Framework/MockObject/Builder/InvocationMockerTest.php phpunit-9.5.10/tests/unit/Framework/MockObject/Builder/InvocationMockerTest.php --- phpunit-9.5.4/tests/unit/Framework/MockObject/Builder/InvocationMockerTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/MockObject/Builder/InvocationMockerTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -104,7 +104,7 @@ $invocationMocker = $mock->method('methodWithBoolReturnTypeDeclaration'); $this->expectException(IncompatibleReturnValueException::class); - $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its return declaration is "bool"'); + $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its declared return type is "bool"'); $invocationMocker->willReturn(1); } @@ -116,7 +116,7 @@ $invocationMocker = $mock->method(new IsEqual('methodWithBoolReturnTypeDeclaration')); $this->expectException(IncompatibleReturnValueException::class); - $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its return declaration is "bool"'); + $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its declared return type is "bool"'); $invocationMocker->willReturn(1); } @@ -128,7 +128,7 @@ $invocationMocker = $mock->method('methodWithBoolReturnTypeDeclaration'); $this->expectException(IncompatibleReturnValueException::class); - $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its return declaration is "bool"'); + $this->expectExceptionMessage('Method methodWithBoolReturnTypeDeclaration may not return value of type integer, its declared return type is "bool"'); $invocationMocker->willReturn(true, 1); } @@ -140,7 +140,7 @@ $invocationMocker = $mock->method('methodWithClassReturnTypeDeclaration'); $this->expectException(IncompatibleReturnValueException::class); - $this->expectExceptionMessage('Method methodWithClassReturnTypeDeclaration may not return value of type Foo, its return declaration is "stdClass"'); + $this->expectExceptionMessage('Method methodWithClassReturnTypeDeclaration may not return value of type Foo, its declared return type is "stdClass"'); $invocationMocker->willReturn(new Foo()); } @@ -200,7 +200,7 @@ $method = $out->method('methodWithVoidReturnTypeDeclaration'); $this->expectException(IncompatibleReturnValueException::class); - $this->expectExceptionMessage('Method methodWithVoidReturnTypeDeclaration may not return value of type boolean, its return declaration is "void"'); + $this->expectExceptionMessage('Method methodWithVoidReturnTypeDeclaration may not return value of type boolean, its declared return type is "void"'); $method->willReturn(true); } diff -Nru phpunit-9.5.4/tests/unit/Framework/MockObject/ConfigurableMethodTest.php phpunit-9.5.10/tests/unit/Framework/MockObject/ConfigurableMethodTest.php --- phpunit-9.5.4/tests/unit/Framework/MockObject/ConfigurableMethodTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/MockObject/ConfigurableMethodTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -14,21 +14,27 @@ final class ConfigurableMethodTest extends TestCase { - public function testMethodMayReturnAssignableValue(): void + public function testMethodMayReturnValueThatCanBeAssigned(): void { - $assignableType = $this->createMock(Type::class); - $assignableType->method('isAssignable') - ->willReturn(true); - $configurable = new ConfigurableMethod('foo', $assignableType); - $this->assertTrue($configurable->mayReturn('everything-is-valid')); + $type = $this->createMock(Type::class); + + $type->method('isAssignable') + ->willReturn(true); + + $method = new ConfigurableMethod('foo', $type); + + $this->assertTrue($method->mayReturn('everything-is-valid')); } - public function testMethodMayNotReturnUnassignableValue(): void + public function testMethodMayNotReturnValueThatCannotBeAssigned(): void { - $unassignableType = $this->createMock(Type::class); - $unassignableType->method('isAssignable') - ->willReturn(false); - $configurable = new ConfigurableMethod('foo', $unassignableType); - $this->assertFalse($configurable->mayReturn('everything-is-invalid')); + $type = $this->createMock(Type::class); + + $type->method('isAssignable') + ->willReturn(false); + + $method = new ConfigurableMethod('foo', $type); + + $this->assertFalse($method->mayReturn('everything-is-invalid')); } } diff -Nru phpunit-9.5.4/tests/unit/Framework/MockObject/MockBuilderTest.php phpunit-9.5.10/tests/unit/Framework/MockObject/MockBuilderTest.php --- phpunit-9.5.4/tests/unit/Framework/MockObject/MockBuilderTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/MockObject/MockBuilderTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -55,7 +55,7 @@ public function testOnlyMethodsWithNonExistentMethodNames(): void { $this->expectException(CannotUseOnlyMethodsException::class); - $this->expectExceptionMessage('Trying to set mock method "mockableMethodWithCrazyName" with onlyMethods, but it does not exist in class "PHPUnit\TestFixture\Mockable". Use addMethods() for methods that do not exist in the class'); + $this->expectExceptionMessage('Trying to configure method "mockableMethodWithCrazyName" with onlyMethods(), but it does not exist in class "PHPUnit\TestFixture\Mockable". Use addMethods() for methods that do not exist in the class'); $this->getMockBuilder(Mockable::class) ->onlyMethods(['mockableMethodWithCrazyName']) @@ -84,7 +84,7 @@ public function testAddMethodsWithNonExistentMethodNames(): void { $this->expectException(CannotUseAddMethodsException::class); - $this->expectExceptionMessage('Trying to set mock method "mockableMethod" with addMethods(), but it exists in class "PHPUnit\TestFixture\Mockable". Use onlyMethods() for methods that exist in the class'); + $this->expectExceptionMessage('Trying to configure method "mockableMethod" with addMethods(), but it exists in class "PHPUnit\TestFixture\Mockable". Use onlyMethods() for methods that exist in the class'); $this->getMockBuilder(Mockable::class) ->addMethods(['mockableMethod']) diff -Nru phpunit-9.5.4/tests/unit/Framework/MockObject/MockObjectTest.php phpunit-9.5.10/tests/unit/Framework/MockObject/MockObjectTest.php --- phpunit-9.5.4/tests/unit/Framework/MockObject/MockObjectTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/MockObject/MockObjectTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -21,6 +21,7 @@ use PHPUnit\TestFixture\ClassWithStaticReturnTypes; use PHPUnit\TestFixture\ClassWithUnionReturnTypes; use PHPUnit\TestFixture\ExampleTrait; +use PHPUnit\TestFixture\InterfaceWithMethodsThatDeclareBooleanReturnTypes; use PHPUnit\TestFixture\InterfaceWithStaticMethod; use PHPUnit\TestFixture\MethodCallback; use PHPUnit\TestFixture\MethodCallbackByReference; @@ -595,7 +596,8 @@ $mock->method('doSomethingElse') ->will( $this->returnCallback( - static function () use (&$actualArguments): void { + static function () use (&$actualArguments): void + { $actualArguments = \func_get_args(); } ) @@ -622,7 +624,8 @@ $mock->method('doSomethingElse') ->will( $this->returnCallback( - static function () use (&$actualArguments): void { + static function () use (&$actualArguments): void + { $actualArguments = \func_get_args(); } ) @@ -849,7 +852,8 @@ $foo->method('bar') ->will($this->returnCallback( - static function (&$a, &$b, $c): void { + static function (&$a, &$b, $c): void + { $b = 1; } )); @@ -977,6 +981,7 @@ /** * @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/171 * @ticket 171 + * @requires PHP < 8.1 */ public function testStubForClassThatImplementsSerializableCanBeCreatedWithoutInvokingTheConstructor(): void { @@ -1030,7 +1035,8 @@ $callCount = 0; $mock->expects($this->exactly($expectedNumberOfCalls))->method('bar') - ->with($this->callback(static function ($argument) use (&$callCount) { + ->with($this->callback(static function ($argument) use (&$callCount) + { return $argument === 'call_' . $callCount++; })); @@ -1104,7 +1110,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testUnionReturnTypeIsDoubledCorrectly(): void { @@ -1115,7 +1121,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testNullableUnionReturnTypeIsDoubledCorrectly(): void { @@ -1126,7 +1132,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testMixedReturnTypeIsDoubledCorrectly(): void { @@ -1137,7 +1143,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testStaticReturnTypeIsDoubledCorrectly(): void { @@ -1148,7 +1154,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testUnionReturnTypeWithStaticIsDoubledCorrectly(): void { @@ -1159,7 +1165,7 @@ } /** - * @requires PHP > 8.0 + * @requires PHP 8 */ public function testNullableStaticReturnTypeIsDoubledCorrectly(): void { @@ -1183,6 +1189,46 @@ $this->assertSame('value', $object->value()); } + /** + * @requires PHP 8 + */ + public function testMethodThatReturnsIntOrFalseCanBeStubbed(): void + { + $i = $this->createStub(InterfaceWithMethodsThatDeclareBooleanReturnTypes::class); + + $i->method('returnsIntOrFalse')->willReturn(false); + + $this->assertFalse($i->returnsIntOrFalse()); + + $i = $this->createStub(InterfaceWithMethodsThatDeclareBooleanReturnTypes::class); + + $i->method('returnsIntOrFalse')->willReturn(1); + + $this->assertSame(1, $i->returnsIntOrFalse()); + } + + /** + * @requires PHP 8 + */ + public function testReturnValueCanBeAutomaticallyGeneratedForMethodThatReturnsIntOrFalse(): void + { + $i = $this->createStub(InterfaceWithMethodsThatDeclareBooleanReturnTypes::class); + + $this->assertFalse($i->returnsIntOrFalse()); + } + + /** + * @requires PHP 8 + */ + public function testMethodThatReturnsBoolCanBeStubbed(): void + { + $i = $this->createStub(InterfaceWithMethodsThatDeclareBooleanReturnTypes::class); + + $i->method('returnsBool')->willReturn(false); + + $this->assertFalse($i->returnsBool()); + } + private function resetMockObjects(): void { $refl = new ReflectionObject($this); diff -Nru phpunit-9.5.4/tests/unit/Framework/TestBuilderTest.php phpunit-9.5.10/tests/unit/Framework/TestBuilderTest.php --- phpunit-9.5.4/tests/unit/Framework/TestBuilderTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/TestBuilderTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -9,8 +9,6 @@ */ namespace PHPUnit\Framework; -use function assert; -use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\TestFixture\EmptyDataProviderTest; use PHPUnit\TestFixture\ModifiedConstructorTestCase; use PHPUnit\TestFixture\TestWithAnnotations; @@ -21,58 +19,6 @@ */ final class TestBuilderTest extends TestCase { - public function testCreateTestForConstructorlessTestClass(): void - { - $reflector = $this->getMockBuilder(ReflectionClass::class) - ->setConstructorArgs([$this]) - ->getMock(); - - assert($reflector instanceof MockObject); - assert($reflector instanceof ReflectionClass); - - $reflector->expects($this->once()) - ->method('getConstructor') - ->willReturn(null); - - $reflector->expects($this->once()) - ->method('isInstantiable') - ->willReturn(true); - - $reflector->expects($this->once()) - ->method('getName') - ->willReturn(__CLASS__); - - $this->expectException(Exception::class); - $this->expectExceptionMessage('No valid test provided.'); - - (new TestBuilder)->build($reflector, 'TestForConstructorlessTestClass'); - } - - public function testCreateTestForNotInstantiableTestClass(): void - { - $reflector = $this->getMockBuilder(ReflectionClass::class) - ->setConstructorArgs([$this]) - ->getMock(); - - assert($reflector instanceof MockObject); - assert($reflector instanceof ReflectionClass); - - $reflector->expects($this->once()) - ->method('isInstantiable') - ->willReturn(false); - - $reflector->expects($this->once()) - ->method('getName') - ->willReturn('foo'); - - $test = (new TestBuilder)->build($reflector, 'TestForNonInstantiableTestClass'); - - $this->assertInstanceOf(ErrorTestCase::class, $test); - - /* @var ErrorTestCase $test */ - $this->assertSame('Cannot instantiate class "foo".', $test->getMessage()); - } - public function testCreateTestForTestClassWithModifiedConstructor(): void { $test = (new TestBuilder)->build(new ReflectionClass(ModifiedConstructorTestCase::class), 'testCase'); diff -Nru phpunit-9.5.4/tests/unit/Framework/TestCaseTest.php phpunit-9.5.10/tests/unit/Framework/TestCaseTest.php --- phpunit-9.5.4/tests/unit/Framework/TestCaseTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Framework/TestCaseTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -113,7 +113,7 @@ $this->assertInstanceOf(Reorderable::class, $this); $this->assertEquals( - [new ExecutionOrderDependency(get_class($this), 'testCaseDefaultExecutionOrderDependencies')], + [new ExecutionOrderDependency(static::class, 'testCaseDefaultExecutionOrderDependencies')], $this->provides() ); @@ -1102,7 +1102,8 @@ $this->assertArrayHasKey(DependencyOnClassTest::class . '::testThatDependsOnASuccessfulClass', $result->passed()); // Confirm the test depending on the failing TestSuite::class has been warn-skipped - $skipped = array_map(static function (TestFailure $t) { + $skipped = array_map(static function (TestFailure $t) + { return $t->getTestName(); }, $result->skipped()); $this->assertContains(DependencyOnClassTest::class . '::testThatDependsOnAFailingClass', $skipped); diff -Nru phpunit-9.5.4/tests/unit/Runner/DefaultTestResultCacheTest.php phpunit-9.5.10/tests/unit/Runner/DefaultTestResultCacheTest.php --- phpunit-9.5.4/tests/unit/Runner/DefaultTestResultCacheTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Runner/DefaultTestResultCacheTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -9,6 +9,11 @@ */ namespace PHPUnit\Runner; +use function sys_get_temp_dir; +use function tempnam; +use function uniqid; +use function unlink; +use MultiDependencyTest; use PHPUnit\Framework\TestCase; /** @@ -17,18 +22,49 @@ */ final class DefaultTestResultCacheTest extends TestCase { - /** - * @var DefaultTestResultCache - */ - private $subject; + public function testGetTimeForNonExistentTestNameReturnsFloatZero(): void + { + $this->assertSame(0.0, (new DefaultTestResultCache)->getTime('doesNotExist')); + } - protected function setUp(): void + public function testReadsCacheFromProvidedFilename(): void { - $this->subject = new DefaultTestResultCache(); + $cacheFile = TEST_FILES_PATH . '../end-to-end/execution-order/_files/MultiDependencyTest_result_cache.txt'; + $cache = new DefaultTestResultCache($cacheFile); + $cache->load(); + + $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(MultiDependencyTest::class . '::testOne')); + $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $cache->getState(MultiDependencyTest::class . '::testFive')); } - public function testGetTimeForNonExistentTestNameReturnsFloatZero(): void + public function testDoesClearCacheBeforeLoad(): void { - $this->assertSame(0.0, $this->subject->getTime('doesNotExist')); + $cacheFile = TEST_FILES_PATH . '../end-to-end/execution-order/_files/MultiDependencyTest_result_cache.txt'; + $cache = new DefaultTestResultCache($cacheFile); + $cache->setState('someTest', BaseTestRunner::STATUS_FAILURE); + + $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(MultiDependencyTest::class . '::testFive')); + + $cache->load(); + + $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(MultiDependencyTest::class . '::someTest')); + $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $cache->getState(MultiDependencyTest::class . '::testFive')); + } + + public function testCanPersistCacheToFile(): void + { + $cacheFile = tempnam(sys_get_temp_dir(), 'phpunit_'); + $cache = new DefaultTestResultCache($cacheFile); + $testName = 'test' . uniqid('', true); + + $cache->setState($testName, BaseTestRunner::STATUS_SKIPPED); + $cache->persist(); + + $cache = new DefaultTestResultCache($cacheFile); + $cache->load(); + + $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $cache->getState($testName)); + + unlink($cacheFile); } } diff -Nru phpunit-9.5.4/tests/unit/Runner/TestResultCacheTest.php phpunit-9.5.10/tests/unit/Runner/TestResultCacheTest.php --- phpunit-9.5.4/tests/unit/Runner/TestResultCacheTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Runner/TestResultCacheTest.php 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\BaseTestRunner; -use PHPUnit\Runner\DefaultTestResultCache; - -/** - * @group test-reorder - * @small - */ -final class TestResultCacheTest extends TestCase -{ - public function testReadsCacheFromProvidedFilename(): void - { - $cacheFile = TEST_FILES_PATH . '../end-to-end/execution-order/_files/MultiDependencyTest_result_cache.txt'; - $cache = new DefaultTestResultCache($cacheFile); - $cache->load(); - - $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(\MultiDependencyTest::class . '::testOne')); - $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $cache->getState(\MultiDependencyTest::class . '::testFive')); - } - - public function testDoesClearCacheBeforeLoad(): void - { - $cacheFile = TEST_FILES_PATH . '../end-to-end/execution-order/_files/MultiDependencyTest_result_cache.txt'; - $cache = new DefaultTestResultCache($cacheFile); - $cache->setState('someTest', BaseTestRunner::STATUS_FAILURE); - - $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(\MultiDependencyTest::class . '::testFive')); - - $cache->load(); - - $this->assertSame(BaseTestRunner::STATUS_UNKNOWN, $cache->getState(\MultiDependencyTest::class . '::someTest')); - $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $cache->getState(\MultiDependencyTest::class . '::testFive')); - } - - public function testShouldNotSerializePassedTestsAsDefectButTimeIsStored(): void - { - $cache = new DefaultTestResultCache; - $cache->setState('testOne', BaseTestRunner::STATUS_PASSED); - $cache->setTime('testOne', 123); - - $data = \serialize($cache); - $this->assertSame('C:37:"PHPUnit\Runner\DefaultTestResultCache":64:{a:2:{s:7:"defects";a:0:{}s:5:"times";a:1:{s:7:"testOne";d:123;}}}', $data); - } - - public function testCanPersistCacheToFile(): void - { - // Create a cache with one result and store it - $cacheFile = \tempnam(\sys_get_temp_dir(), 'phpunit_'); - $cache = new DefaultTestResultCache($cacheFile); - $testName = 'test' . \uniqid(); - $cache->setState($testName, BaseTestRunner::STATUS_SKIPPED); - $cache->persist(); - unset($cache); - - // Load the cache we just created - $loadedCache = new DefaultTestResultCache($cacheFile); - $loadedCache->load(); - $this->assertSame(BaseTestRunner::STATUS_SKIPPED, $loadedCache->getState($testName)); - - // Clean up - \unlink($cacheFile); - } - - public function testShouldReturnEmptyCacheWhenFileDoesNotExist(): void - { - $cache = new DefaultTestResultCache('/a/wrong/path/file'); - $cache->load(); - - $this->assertTrue($this->isSerializedEmptyCache(\serialize($cache))); - } - - public function testShouldReturnEmptyCacheFromInvalidFile(): void - { - $cacheFile = \tempnam(\sys_get_temp_dir(), 'phpunit_'); - \file_put_contents($cacheFile, ''); - - $cache = new DefaultTestResultCache($cacheFile); - $cache->load(); - - $this->assertTrue($this->isSerializedEmptyCache(\serialize($cache))); - - \unlink($cacheFile); - } - - public function isSerializedEmptyCache(string $data): bool - { - return $data === 'C:37:"PHPUnit\Runner\DefaultTestResultCache":44:{a:2:{s:7:"defects";a:0:{}s:5:"times";a:0:{}}}'; - } -} diff -Nru phpunit-9.5.4/tests/unit/Util/ConfigurationGeneratorTest.php phpunit-9.5.10/tests/unit/Util/ConfigurationGeneratorTest.php --- phpunit-9.5.4/tests/unit/Util/ConfigurationGeneratorTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Util/ConfigurationGeneratorTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -33,12 +33,13 @@ beStrictAboutCoversAnnotation="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" + convertDeprecationsToExceptions="true" failOnRisky="true" failOnWarning="true" verbose="true"> - tests + tests diff -Nru phpunit-9.5.4/tests/unit/Util/TestClassTest.php phpunit-9.5.10/tests/unit/Util/TestClassTest.php --- phpunit-9.5.4/tests/unit/Util/TestClassTest.php 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tests/unit/Util/TestClassTest.php 2021-09-25 07:38:51.000000000 +0000 @@ -10,7 +10,6 @@ namespace PHPUnit\Util; use function array_merge; -use function get_class; use function preg_match; use function range; use function realpath; @@ -1188,11 +1187,11 @@ { $this->assertEquals( [ - new ExecutionOrderDependency(get_class($this), 'Foo'), - new ExecutionOrderDependency(get_class($this), 'ほげ'), + new ExecutionOrderDependency(self::class, 'Foo'), + new ExecutionOrderDependency(self::class, 'ほげ'), new ExecutionOrderDependency('AnotherClass::Foo'), ], - Test::getDependencies(get_class($this), 'methodForTestParseAnnotation') + Test::getDependencies(self::class, 'methodForTestParseAnnotation') ); } @@ -1210,8 +1209,8 @@ public function testParseAnnotationThatIsOnlyOneLine(): void { $this->assertEquals( - [new ExecutionOrderDependency(get_class($this), 'Bar')], - Test::getDependencies(get_class($this), 'methodForTestParseAnnotationThatIsOnlyOneLine') + [new ExecutionOrderDependency(self::class, 'Bar')], + Test::getDependencies(self::class, 'methodForTestParseAnnotationThatIsOnlyOneLine') ); } Binary files /tmp/tmp0phw0qfd/3NcFqXLJ0u/phpunit-9.5.4/tools/composer and /tmp/tmp0phw0qfd/1Z8d4uO0WD/phpunit-9.5.10/tools/composer differ diff -Nru phpunit-9.5.4/tools/phpab phpunit-9.5.10/tools/phpab --- phpunit-9.5.4/tools/phpab 2021-03-23 07:16:29.000000000 +0000 +++ phpunit-9.5.10/tools/phpab 2021-09-25 07:38:51.000000000 +0000 @@ -150,21 +150,22 @@ ); Phar::mapPhar('phpab.phar'); -define('PHPAB_VERSION', '1.26.0'); +define('PHPAB_VERSION', '1.26.3'); $factory = new \TheSeer\Autoload\Factory(); $factory->getCLI()->run(); exit(0); __HALT_COMPILER(); ?> * -phpab.phar8vendor/theseer/directoryscanner/src/directoryscanner.php" _A P7vendor/theseer/directoryscanner/src/filesonlyfilter.php - _Af<vendor/theseer/directoryscanner/src/includeexcludefilter.php^ _TBl1vendor/theseer/directoryscanner/src/phpfilter.php _FA'vendor/zetacomponents/base/src/base.phpY _\0vendor/zetacomponents/base/src/base_autoload.phpN _H¬Lvendor/zetacomponents/base/src/exceptions/double_class_repository_prefix.phpV _6w7vendor/zetacomponents/base/src/exceptions/exception.php _ CTsAvendor/zetacomponents/base/src/exceptions/extension_not_found.php6 _~9 <vendor/zetacomponents/base/src/exceptions/file_exception.php- _5vendor/zetacomponents/base/src/exceptions/file_io.php _O;<vendor/zetacomponents/base/src/exceptions/file_not_found.phpJ _,T]DX=vendor/zetacomponents/base/src/exceptions/file_permission.php _Dg7Ivendor/zetacomponents/base/src/exceptions/functionality_not_supported.php> _ V&JFvendor/zetacomponents/base/src/exceptions/init_callback_configured.php _: Dvendor/zetacomponents/base/src/exceptions/invalid_callback_class.php_ _ -Z»Bvendor/zetacomponents/base/src/exceptions/invalid_parent_class.phpE _@vendor/zetacomponents/base/src/exceptions/property_not_found.php _"yAAvendor/zetacomponents/base/src/exceptions/property_permission.phpf _W>D?vendor/zetacomponents/base/src/exceptions/setting_not_found.phpT _H[Y;vendor/zetacomponents/base/src/exceptions/setting_value.php[ _3vendor/zetacomponents/base/src/exceptions/value.php _.Ѵ6vendor/zetacomponents/base/src/exceptions/whatever.php  _8K0vendor/zetacomponents/base/src/ezc_bootstrap.php _U–~P+vendor/zetacomponents/base/src/features.php. _ -''vendor/zetacomponents/base/src/file.php_H _ ^'vendor/zetacomponents/base/src/init.phpV _ukoGvendor/zetacomponents/base/src/interfaces/configuration_initializer.php _E8vendor/zetacomponents/base/src/interfaces/exportable.php _B59vendor/zetacomponents/base/src/interfaces/persistable.php _9J +vendor/zetacomponents/base/src/metadata.php _b0vendor/zetacomponents/base/src/metadata/pear.php _<3vendor/zetacomponents/base/src/metadata/tarball.php _ g^*vendor/zetacomponents/base/src/options.php _y*Ll)vendor/zetacomponents/base/src/struct.php? _t<vendor/zetacomponents/base/src/structs/file_find_context.php _-њ?vendor/zetacomponents/base/src/structs/repository_directory.php _L8'U<vendor/zetacomponents/console-tools/src/console_autoload.phpr _i>vendor/zetacomponents/console-tools/src/dialog/menu_dialog.php _1wԴBvendor/zetacomponents/console-tools/src/dialog/question_dialog.php" _ tQvendor/zetacomponents/console-tools/src/dialog/validators/menu_dialog_default.php _+Xvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_collection.php _ONUvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_mapping.php _FSvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_regex.php _{Rvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_type.phpC _(9vendor/zetacomponents/console-tools/src/dialog_viewer.php" - _?R28?vendor/zetacomponents/console-tools/src/exceptions/argument.php _X δRvendor/zetacomponents/console-tools/src/exceptions/argument_already_registered.phpE _/wm'Svendor/zetacomponents/console-tools/src/exceptions/argument_mandatory_violation.php _ Hvendor/zetacomponents/console-tools/src/exceptions/argument_too_many.php _*Y۴Nvendor/zetacomponents/console-tools/src/exceptions/argument_type_violation.phps _u[:MCvendor/zetacomponents/console-tools/src/exceptions/dialog_abort.php _"@vendor/zetacomponents/console-tools/src/exceptions/exception.php _P[ Jvendor/zetacomponents/console-tools/src/exceptions/invalid_option_name.php _dLvendor/zetacomponents/console-tools/src/exceptions/invalid_output_target.php _]vmwIvendor/zetacomponents/console-tools/src/exceptions/no_position_stored.php _RGyMvendor/zetacomponents/console-tools/src/exceptions/no_valid_dialog_result.php _X=vendor/zetacomponents/console-tools/src/exceptions/option.php _}YPvendor/zetacomponents/console-tools/src/exceptions/option_already_registered.php _-/ߴQvendor/zetacomponents/console-tools/src/exceptions/option_arguments_violation.php _~xRvendor/zetacomponents/console-tools/src/exceptions/option_dependency_violation.php _rQvendor/zetacomponents/console-tools/src/exceptions/option_exclusion_violation.php _hVmQvendor/zetacomponents/console-tools/src/exceptions/option_mandatory_violation.phph _YXpAKvendor/zetacomponents/console-tools/src/exceptions/option_missing_value.php _F^Fvendor/zetacomponents/console-tools/src/exceptions/option_no_alias.php  _Hvendor/zetacomponents/console-tools/src/exceptions/option_not_exists.php$ _6ESvendor/zetacomponents/console-tools/src/exceptions/option_string_not_wellformed.php  _0Mvendor/zetacomponents/console-tools/src/exceptions/option_too_many_values.phpw _Lvendor/zetacomponents/console-tools/src/exceptions/option_type_violation.php _D/1vendor/zetacomponents/console-tools/src/input.php _&8:vendor/zetacomponents/console-tools/src/input/argument.php _h";vendor/zetacomponents/console-tools/src/input/arguments.phpb! _JESJvendor/zetacomponents/console-tools/src/input/help_generators/standard.php9 _Bj8vendor/zetacomponents/console-tools/src/input/option.phpO _S~Evendor/zetacomponents/console-tools/src/input/validators/standard.php _ x=vendor/zetacomponents/console-tools/src/interfaces/dialog.phpT _*/Z;Gvendor/zetacomponents/console-tools/src/interfaces/dialog_validator.php _ 5Kvendor/zetacomponents/console-tools/src/interfaces/input_help_generator.php _tӁFvendor/zetacomponents/console-tools/src/interfaces/input_validator.phpy _eutovLvendor/zetacomponents/console-tools/src/interfaces/menu_dialog_validator.php _TPvendor/zetacomponents/console-tools/src/interfaces/question_dialog_validator.php _&cִ:vendor/zetacomponents/console-tools/src/options/dialog.php2 _3Y?vendor/zetacomponents/console-tools/src/options/menu_dialog.php _1vf:vendor/zetacomponents/console-tools/src/options/output.php _0ِI?vendor/zetacomponents/console-tools/src/options/progressbar.php _te%Cvendor/zetacomponents/console-tools/src/options/progressmonitor.phpF _ Cvendor/zetacomponents/console-tools/src/options/question_dialog.php _Wia=vendor/zetacomponents/console-tools/src/options/statusbar.php _p~[9vendor/zetacomponents/console-tools/src/options/table.phpL" _seK2vendor/zetacomponents/console-tools/src/output.phpM _W?7vendor/zetacomponents/console-tools/src/progressbar.php: _dm|;vendor/zetacomponents/console-tools/src/progressmonitor.phpZ _q5vendor/zetacomponents/console-tools/src/statusbar.php _j rM?vendor/zetacomponents/console-tools/src/structs/option_rule.php _ Avendor/zetacomponents/console-tools/src/structs/output_format.phpk _h+-Bvendor/zetacomponents/console-tools/src/structs/output_formats.php+ _D1vendor/zetacomponents/console-tools/src/table.php)s _sB16vendor/zetacomponents/console-tools/src/table/cell.php _+(Կ5vendor/zetacomponents/console-tools/src/table/row.phpw/ _ -h%ڴ8vendor/zetacomponents/console-tools/src/tools/string.php _F)phpab/Application.phpJ& _ phpab/AutoloadRenderer.phpc# _ - phpab/CLI.php^ _ 0phpab/Cache.php@ _ "9phpab/CacheEntry.php _д"phpab/CacheWarmingListRenderer.php _sy?phpab/CachingParser.php _PI!phpab/Collector.php _66phpab/CollectorResult.phpT _-phpab/ComposerIterator.php _%?phpab/Config.phpC3 _ (ܴphpab/DependencySorter.phpm _os:phpab/Factory.php _8phpab/Logger.php _  Ŵphpab/ParseResult.phpg _Wߪphpab/Parser.phpZH _ ')phpab/ParserInterface.php _phpab/PathComparator.phpf _haphpab/PharBuilder.phpg _= #״phpab/SourceFile.php _%phpab/StaticListRenderer.php _zphpab/StaticRenderer.php _$Ŵ#phpab/StaticRequireListRenderer.php" _LXOphpab/Version.php - _j&Ӵ"phpab/templates/ci/default.php.tpl _/]iphpab/templates/ci/phar.php.tpl _~ phpab/templates/ci/php52.php.tpl _ ^@N"phpab/templates/cs/default.php.tpl _Bw#phpab/templates/cs/phar.php.tpl _2q$ phpab/templates/cs/php52.php.tpl _&N˴phpab/templates/static.php.tpl _p휺"phpab/templates/staticphar.php.tplW _T.ִYsbk CL^_j?[!QI4F6ۻ{:&)nwo{{_~[<,Nޝ;ċURhLÇ??DB/zI*?3JZp'{4 4#"CɄ7 Ld.Z'La4x$E2Â' M$~ +phpab.phar8vendor/theseer/directoryscanner/src/directoryscanner.php"``A P7vendor/theseer/directoryscanner/src/filesonlyfilter.php +``;l<vendor/theseer/directoryscanner/src/includeexcludefilter.php``rŴ1vendor/theseer/directoryscanner/src/phpfilter.php +``\n;'vendor/zetacomponents/base/src/base.phpY``\0vendor/zetacomponents/base/src/base_autoload.phpN``H¬Lvendor/zetacomponents/base/src/exceptions/double_class_repository_prefix.phpV``6w7vendor/zetacomponents/base/src/exceptions/exception.php`` CTsAvendor/zetacomponents/base/src/exceptions/extension_not_found.php6``~9 <vendor/zetacomponents/base/src/exceptions/file_exception.php-``5vendor/zetacomponents/base/src/exceptions/file_io.php``O;<vendor/zetacomponents/base/src/exceptions/file_not_found.phpJ``,T]DX=vendor/zetacomponents/base/src/exceptions/file_permission.php ``Dg7Ivendor/zetacomponents/base/src/exceptions/functionality_not_supported.php>`` V&JFvendor/zetacomponents/base/src/exceptions/init_callback_configured.php``: Dvendor/zetacomponents/base/src/exceptions/invalid_callback_class.php_`` +Z»Bvendor/zetacomponents/base/src/exceptions/invalid_parent_class.phpE``@vendor/zetacomponents/base/src/exceptions/property_not_found.php``"yAAvendor/zetacomponents/base/src/exceptions/property_permission.phpf``W>D?vendor/zetacomponents/base/src/exceptions/setting_not_found.phpT``H[Y;vendor/zetacomponents/base/src/exceptions/setting_value.php[``3vendor/zetacomponents/base/src/exceptions/value.php``.Ѵ6vendor/zetacomponents/base/src/exceptions/whatever.php ``8K0vendor/zetacomponents/base/src/ezc_bootstrap.php``U–~P+vendor/zetacomponents/base/src/features.php.`` +''vendor/zetacomponents/base/src/file.php_H`` ^'vendor/zetacomponents/base/src/init.phpV``ukoGvendor/zetacomponents/base/src/interfaces/configuration_initializer.php``E8vendor/zetacomponents/base/src/interfaces/exportable.php``B59vendor/zetacomponents/base/src/interfaces/persistable.php``9J +vendor/zetacomponents/base/src/metadata.php``b0vendor/zetacomponents/base/src/metadata/pear.php``<3vendor/zetacomponents/base/src/metadata/tarball.php`` g^*vendor/zetacomponents/base/src/options.php``y*Ll)vendor/zetacomponents/base/src/struct.php?``t<vendor/zetacomponents/base/src/structs/file_find_context.php ``-њ?vendor/zetacomponents/base/src/structs/repository_directory.php ``L8'U<vendor/zetacomponents/console-tools/src/console_autoload.phpr``i>vendor/zetacomponents/console-tools/src/dialog/menu_dialog.php``1wԴBvendor/zetacomponents/console-tools/src/dialog/question_dialog.php"`` tQvendor/zetacomponents/console-tools/src/dialog/validators/menu_dialog_default.php``+Xvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_collection.php``ONUvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_mapping.php``FSvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_regex.php``{Rvendor/zetacomponents/console-tools/src/dialog/validators/question_dialog_type.phpC``(9vendor/zetacomponents/console-tools/src/dialog_viewer.php" +``?R28?vendor/zetacomponents/console-tools/src/exceptions/argument.php``X δRvendor/zetacomponents/console-tools/src/exceptions/argument_already_registered.phpE ``/wm'Svendor/zetacomponents/console-tools/src/exceptions/argument_mandatory_violation.php`` Hvendor/zetacomponents/console-tools/src/exceptions/argument_too_many.php``*Y۴Nvendor/zetacomponents/console-tools/src/exceptions/argument_type_violation.phps``u[:MCvendor/zetacomponents/console-tools/src/exceptions/dialog_abort.php``"@vendor/zetacomponents/console-tools/src/exceptions/exception.php``P[ Jvendor/zetacomponents/console-tools/src/exceptions/invalid_option_name.php``dLvendor/zetacomponents/console-tools/src/exceptions/invalid_output_target.php``]vmwIvendor/zetacomponents/console-tools/src/exceptions/no_position_stored.php``RGyMvendor/zetacomponents/console-tools/src/exceptions/no_valid_dialog_result.php``X=vendor/zetacomponents/console-tools/src/exceptions/option.php``}YPvendor/zetacomponents/console-tools/src/exceptions/option_already_registered.php``-/ߴQvendor/zetacomponents/console-tools/src/exceptions/option_arguments_violation.php``~xRvendor/zetacomponents/console-tools/src/exceptions/option_dependency_violation.php``rQvendor/zetacomponents/console-tools/src/exceptions/option_exclusion_violation.php``hVmQvendor/zetacomponents/console-tools/src/exceptions/option_mandatory_violation.phph``YXpAKvendor/zetacomponents/console-tools/src/exceptions/option_missing_value.php``F^Fvendor/zetacomponents/console-tools/src/exceptions/option_no_alias.php ``Hvendor/zetacomponents/console-tools/src/exceptions/option_not_exists.php$``6ESvendor/zetacomponents/console-tools/src/exceptions/option_string_not_wellformed.php ``0Mvendor/zetacomponents/console-tools/src/exceptions/option_too_many_values.phpw``Lvendor/zetacomponents/console-tools/src/exceptions/option_type_violation.php``D/1vendor/zetacomponents/console-tools/src/input.php``&8:vendor/zetacomponents/console-tools/src/input/argument.php``h";vendor/zetacomponents/console-tools/src/input/arguments.phpb!``JESJvendor/zetacomponents/console-tools/src/input/help_generators/standard.php9``Bj8vendor/zetacomponents/console-tools/src/input/option.phpJO``"NEvendor/zetacomponents/console-tools/src/input/validators/standard.php`` x=vendor/zetacomponents/console-tools/src/interfaces/dialog.phpT ``*/Z;Gvendor/zetacomponents/console-tools/src/interfaces/dialog_validator.php`` 5Kvendor/zetacomponents/console-tools/src/interfaces/input_help_generator.php``tӁFvendor/zetacomponents/console-tools/src/interfaces/input_validator.phpy``eutovLvendor/zetacomponents/console-tools/src/interfaces/menu_dialog_validator.php``TPvendor/zetacomponents/console-tools/src/interfaces/question_dialog_validator.php``&cִ:vendor/zetacomponents/console-tools/src/options/dialog.php2 ``3Y?vendor/zetacomponents/console-tools/src/options/menu_dialog.php``1vf:vendor/zetacomponents/console-tools/src/options/output.php``0ِI?vendor/zetacomponents/console-tools/src/options/progressbar.php``te%Cvendor/zetacomponents/console-tools/src/options/progressmonitor.phpF `` Cvendor/zetacomponents/console-tools/src/options/question_dialog.php``Wia=vendor/zetacomponents/console-tools/src/options/statusbar.php ``p~[9vendor/zetacomponents/console-tools/src/options/table.phpL"``seK2vendor/zetacomponents/console-tools/src/output.phpM``W?7vendor/zetacomponents/console-tools/src/progressbar.php:``dm|;vendor/zetacomponents/console-tools/src/progressmonitor.phpZ``q5vendor/zetacomponents/console-tools/src/statusbar.php ``j rM?vendor/zetacomponents/console-tools/src/structs/option_rule.php`` Avendor/zetacomponents/console-tools/src/structs/output_format.phpk``h+-Bvendor/zetacomponents/console-tools/src/structs/output_formats.php+``D1vendor/zetacomponents/console-tools/src/table.phpr``h{Wڴ6vendor/zetacomponents/console-tools/src/table/cell.php``+(Կ5vendor/zetacomponents/console-tools/src/table/row.phpw/`` +h%ڴ8vendor/zetacomponents/console-tools/src/tools/string.php``F)phpab/Application.phpJ&`` phpab/AutoloadRenderer.phpc#`` + phpab/CLI.php^`` 0phpab/Cache.php@`` "9phpab/CacheEntry.php``д"phpab/CacheWarmingListRenderer.php``sy?phpab/CachingParser.php``PI!phpab/Collector.php ``66phpab/CollectorResult.phpT ``-phpab/ComposerIterator.php``C+phpab/Config.phpC3`` (ܴphpab/DependencySorter.phpm``os:phpab/Factory.php ``8phpab/Logger.php``  Ŵphpab/ParseResult.phpg``Wߪphpab/Parser.phpZH`` ')phpab/ParserInterface.php``phpab/PathComparator.phpf``haphpab/PharBuilder.phpg``= #״phpab/SourceFile.php``%phpab/StaticListRenderer.php``zphpab/StaticRenderer.php``$Ŵ#phpab/StaticRequireListRenderer.php"``LXOphpab/Version.php +``j&Ӵ"phpab/templates/ci/default.php.tpl``/]iphpab/templates/ci/phar.php.tpl``~ phpab/templates/ci/php52.php.tpl`` ^@N"phpab/templates/cs/default.php.tpl``Bw#phpab/templates/cs/phar.php.tpl``2q$ phpab/templates/cs/php52.php.tpl``&N˴phpab/templates/static.php.tpl``p휺"phpab/templates/staticphar.php.tplW``T.ִYsbk CL^_j?[!QI4F6ۻ{:&)nwo{{_~[<,Nޝ;ċURhLÇ??DB/zI*?3JZp'{4 4#"CɄ7 Ld.Z'La4x$E2Â' M$~ |^8 9f0#? >!<=Wzni$z)Rēz,M喊4V& $@S\8KZ᪓ <9; ZK (~;7]U{kҊ=\Rfzghh6I 0 ]g3TvL0*#"\xPY`r۬ͨvD%8i0D!det8]]#F@%됓:CIqGepmY]iyٷz9`X4a-\Z4Rj8㫡Hn̶W&-jݕLe$!]тLd8;nWE{`kCffѬEt5ehٺC4z+ t ܒZV'3bh]ue|g|ZxGoi[uOpӮE<Z"]ijpU"bf邑=C.lۘINDf)}}-?NNHdJ  &x!%f8e+9,>H~5 L$kr}_i*M M(PW_bMm/~-jΆ{e1iFܱv@mD,Æ9,34hMs-{ ՁT5+*CP¶TB0eȅ[/ q~C?˝^&|AK4NX~ !͋-ߪoڭfy ^ _a)l1; @ԑWπOØ2(A{cȬY[y>?Yaݍ޽-%U,%`U~Tvͣ藡M~-³')`Bה ugpoVn(@'G5Jq[ 5a-yrD1G߯Uq=5Ks|8z#9^_̕ŜoϺf,痽*kXR6hB,B3]Tv̓gN(1bTЮ ~kK)[4m'էԠd}8snע8cd=ƠpL/ ~Pu@Q<PŽCqS kW|<1ɪ2jwɡz r 7CSHתVci9UPc7.AZ T(CK)QbSϟ"},,#l_+YQfڑOGKٶꧥ#CE1?|_RQ⯺H6b]:` ;/HUVjz+ނs>Aeme<8q* %G'yvkʞxyU`e9اL:ݓSkaB+ WIJ/O fe6M|Wq -woĮ;ɭĐ睌`}kVhgtDLUIRz mHsFͽ1>k =xN#V&gvS\ґ鈵Eeڎfw2jr:kui=g[ |ٹ__oůUK#_ͫ_&X yxʡf4Rt~_U|ƫK yi.ٚ3I֌ dEI{stg UxɷVao6_q(V.ܤ+eiE蘀,y4@蘈,,wGɋKlKwGeٍ߾[ݽכ> 2I?Qʒ$[<&(*L=qjFpI SX0\m(&Ht [vG|͆uIJRZ4++-*+ryJu))˩,jHrhUmimVPYm4[e,S(I;YUɔvRTkQោͦkJ<ʹ]iz{J*VH]jbYhQT^TY"A%+iO?pBd#TG?@=^:4676״H+CzǨKE[QIM/)%Oї:J b/.[BԍL -y -=,ۢ)@iAHY[tCkr'gt)^yhe$`_!#̥`~iLsYX㐏qgvgf@fW>CEgssY}[?> ALq`5LhBgO{=_:!ma̝g|΃N|#@\b̏)ڞ`Hv8fk=քC.oxHϢh_d[x? AN=ϑvtEfx0Ѯ8ykXxDE,mKA"?1 peySy,?g n=uJNkKj}H:ʍD -oE:6O\eIɍ50"?LKxR M|V@_{{T%d1c/HP⮷zwB,['OCi~J$fHk&J_N !JlTiv^ڬH_wPTC҇ӫoL}V}p4BOP\ӯwNW/O -{:/v;uT?ujCI=fJ1ZQ 2ZЖDJaP$;Bɲ(pb9ZGf~w{RҴH/jj`>O2y c]S%kYZ,*_MJJʌZR^R*dIHUjfK2_6SYDX3$e˛Ff}al$pB=rmWl>q_bImA*v[7ȧIM^LSiuhg̞Ei;YC4: ZD?D}J۝,CvI#<) 0g SenlNYI\wXGZK]HD,3IJS&eH:FjiP C{:mUvV׃L$Ytm^wK9&EDsY(]Qȧq-`<lUȄ $\yxp~ęܟ[ fǗC\,'mi9PXOc5 xk0HmX79 Ѹ s]/qiŚ8[!@ 5|Fdgsϙ0- 45lbJ+B ϱN\b떃r^q|lJ|p*bgѳx$IlB%9OZ<(O],@tY#h*\-D1YRB+<4)KtG#mj$6 4>ߤѽJQr&[z!@['Ia>-3Nu/+.DM:5_̈be5>;I\J`ZyfP@ym& zLmUUz͡%z[a*\ˁ]lhӖiO &/7Ωtk6goK{{U; ]&z2_ٌ'wY%Vx2mONΞпuDm5(Ȳ.o±39yBNN*Hx,II,Z'ׯT$I*I+hC,r.< +woĮ;ɭĐ睌`}kVhgtDLUIRz mHsFͽ1>k =xN#V&gvS\ґ鈵Eeڎfw2jr:kui=g[ |ٹ__oůUK#_ͫ_&X yxʡf4Rt~_U|ƫK yi.ٚ3I֌ dEI{stg UxɷVmo6_qV.ܤ-emE蘀,yzI@KtLT RJ ﻣF6%s=<v?:}|wF]ox/^|xFKUBN~RUh FZindydJdlcԺmTAZ+Aiuk +VJ snUڸm`Wj +ASF^jY7ćf+'[u(κlo,ԛ.ѻ $Kb]ߐ頔Ui,TH8ĺ$)+sz`V%WBE!98>H$?OؒsJY,qOYr}0Npyʦ$dGT Ee\J5ѷ[nG-53y>Ht;} iCA5Dec#E#Wh'ߒVWro7W˹~} VmoH_1굒]ѤW5M/J|,N]1*k֩fͩ;o<3;oܮbaVUzVJ`4j-+Oi~ q')ٕh7-.bՁ|*`ɭ\7$ʋ*xTIK!ΓT5dQh0j fԈ6פ+Cz .*hJTfpƺH?E_ƖtrQb/.[BRQ#a& 2W(d󫐟O#B|\xb |b6l +yȄ >{a#΄ws Їa33fX 4v1Й=L |860³C4_@0].3! yfI%c`ǚpCDAg3 {0#;2-z\{fcء"9x0!Wb1 p a@Y$-d >^N/G, ID֮:MHV^_"Ԃ)u,oF1g t&FE>^s3a$ %ldZ+tx J 5vLiOv/8oMK #m\ gڲ팳?kEMqD,\i#55mݏ,gC'e8  Eǃ5]AVB)<;)]jGLYZ4bsu4OV4 +qҦمbYc<{s9|,wOu4A +U07]|j'&e ɍ50>tMJp2M|=VƀNŎ=( +o%Nl1c/5宷z +eyں=y ?Ja(BUj\JjA-Py+L[Ae(h_1K_?6;n4?zVuKaUrA;'{JwS~E+ࣩB=U_GU:(@`SsJ𒄞nPN;!VZkGATU~eQe巿u^σ+0Ϳ/cݟXσVmo6_qZ"KtL@8xz`M|oON~:|{Gp02I_G*J"”~4=KzOd=JR!a&*(fV7:@XFCH=Vl_fNTg[R*/Z]2I\fɵ32|ޠ-ob~9O`>aiD~5(Ȳ.o±39yBNN*Hx,II,Z'ׯT$I*I+hC,r.< q-%9?)'aU˜0$"*LB\:DsB'rl,i8Ee݆ XI~^h]'KEEbFG@HOpRC=m_yqe& B~EbEf+G$D@djAB[V݀&鬧I^\i=],n2Lǣ8QB HU gi%T0Mmɨqr-ίדp~w7`prqs޿qzyqv~s~y^8og!eH4DʉO%l!4yl̤%w2mglטlO̦{ ;mjbFGks6vF~T$n\5ב3NP"$L:KowH;m#7v`Zϟ]r6ͳ2J$rM<236M#!0!~J<_7h8 V2&(Q[i@kQz+>MfU4laŋe"P-Py8%&8oĢI^`ae @0VU2h -G?6R~cE2]i 0 é88'R*YKYaXҰ@3iђ+GhA1AR$U)-$Id#h*ɻk'z*r0rs\(fh3ȋR:\{ڗ P`vpX$ͳy`%`52%{VnVEKVZ𾶦w|Ui5^z|>>U"`z.P'h|uh;O3ŕbb jCo](s i4cDpQ]6yĀg#Ezhjz,)ixJnRѐ@ Ývs^-d Ad^lZpd"x)]K&[i4 x$e%J76[k^UQeA%GLwLӊlJqJv '﨏w`{)"dɲ/;j~g1%X [Dj<^@m0F$&lԤ&h%yI艊[ zQEW2LDK+kPf5-,M"ɦ+q}ktW{iqD>er6vF&MC- TXT OԿ2 r{!<=U0Zb`o lRTtdF[.RWDbUXcM{ѱl,Ks<;R,ey{-*UE A8']'哬!}HVU -ȩۤ jTUq ^Y@I7MwvmzP-I,־ںe>;mX{cwJsIj̛VNu|e.hzz 5Q:$_xrocm^NsdOA‚4E3y0""NH@H]$Z#\D:ڈmڷ+V}ZDkt ~q - >A1"Ea͠V`;ZG~$}].|vX -h B8nOg!9D ڴ.CyY[Od" ,P"H|;2P+kltt=0gfS魣rS{30T\J2z'qP|׎'8\f` : DBw30|T 9^Ք|5w-C7H -z34%^ vdvH kNd X7 lfZF~^MVM ;ڹH]pǪ`(yA"WԂoDצ`U9#ņT w8xR誰T!Pfggf7}e o'&y&Ev#q `?VɅI ^VEn$4K:˜41^ئqV(џ@H^8 wpMm_/hG -zV.D0ԪS =}K[ T)[4fy'cmVѬ8GxZKbvYQ &C&m[,ߺ ->СZYX΄ -s}Hcu$t"!\tf[WQRN;qsԺͳ2_-^['uNSkT|P:uAxouMW3lK/%TVMVJK^Wwi&mg6-)?z?DPs Q|\\x=J6UK?m㼤 n(j'%>4r%8,]}ۀ}075NA_f2Eb -=)nvڀ#DU|6ɣ|31§t0Hw.{i~m WIsx3 PŇ,o|(Bdꪜ1y;hg lLܵW硲@ K3Q\q<*jlRNeӔ3>[xp6C 9~9 hf`P>p'67&Vnwk$:.u^ߍiVSzV%(?DV'?Gdv73hWnF}WL Y*NF2`) +ꉔ^ޣYQŒjeؘߔyRn1O;CA͗a|K5s3ܯP H4pv@>glטlO̦{ ;mjbFGks6RF~Tn\5ב3NP"$L:KowH] 0߽^-V/ .I9Y%YYg&DU}?%S 2٧h +g&*8{8".`y:/2/E2Y"Y4/8_}.9'ћ36:>N6I9`a3@qKG)K2x$B󨈑i|Q|B,w\X/ nbZ ~DY& С=$eeY^;|U@r&Q6%h]BOP],"VX>TblQ`lϋ@s8 ;<;YʅY{ ɖE+iM4ڠHM~aSy6[IFd@`ܞBHClty~8]دb^\Fg9];Rê@&c˚4 h+JKbŧ,{|9緼 oXbT"c0eRI }{ R~t)A|d0`|0!k + %Y@;_|Z +i9o&JtLp݈E|]} (>afb([KASp?zA4,MMiNݜ(D+ d>g閭*vp>iLU!s=zG롊A ᨘ)BBP"n|̦<9L,^}_I'Iqࢳ"l&ym j6Rt,fќvb{50-ע$pcUfP,Hv"~ʴy/#S5tm/6eT-w$T=3J[rWk|^ BZQ9[ieKPo#"vcU/!a\6^k+Z6݂P ^/C/ Nw/=fCf{# Znм'Y-AX F=Dauraɢ +՞>(dɠjJ] +}&BN,BYV\~g1d%X[YDj<^@m0C$&l뤤"hu%TuG؉[yW cى.7HV7컳6`'Vseru暢K9!r6TpǠ ej a!BP`R" @u{ns?:XT5h5C$CQ9{lJ]dFSuƺ8ܖڗ΋=^R-=b}CYߤ<[R,`yE5Fע IPJ6$u +Wȩ jHUp Y@I5WvlzPIv,ڪeW>;mB{cwkIsKHjLN|e +hEjz 5 P:$_xr[5/{aBaAR]1"NHU>Gy]Z#\D&ڊ]ڷ .|Dck~t +jqnTޠT Sz;5؍atEoxWKAg|'YIOQ,x*ʨPowx0MQml{F2vu6%DfMvt3/)y(NtѬ:^NSk*y\ZDt%)}˼(=ٛBg \5rHTjԦ`:'EP_g0l O?"A*{6%ϼlXRi)>{tWᐼq&/Ykv(~L$}H'B%= tD`j5D;DO +9U@JlK\P'F6)3n XIJYzTHv@qlQ$ql[O d(g?d/En$֩/;Z7|˜Ԝ1^غqӖ'џ@H^:H61\/}hF +yV6{D0Ԩ,? = X}K;ӧT[VX7dy.d>ʢdU;xZJbvꓚ:x X;B٬@Oa| (4:04 3a (+ SGBթ\Ofkzm^Y#UԴ+xYi:D?.L4%?YDAm)6o} ~[]krh9Ӿoڷ;:FZP&]nG_[lV6FR[Rb!E:լsPb597KUEu w&۳Zy͢@KE_SXucRZ w)V a(U<R`}i15e(Ƙ>wuḅkϒҤբj75v$&$}jD- +K#jzŰ~: ЪBd` 1h7zIk+KKAyz%m#~zZĈ1>H~hSb$g)zWܽ>A pv|LJU[IL6^ Z_5]}+ovk[ywϾ{h3y\P}MZ2x/tD6V4[QT.L> FqѺreP*Wq.2h󒾻/1; ->rIZ|j5GofU{[6𢡊q+.8uG͒jPF-;~g; a9ŴbR^t!{zړkv >2Ax.|ϤH`G㫇5z&O%薮0𐀛Gѣ6{2a/-a +|jo&`7( + t҆B0*=t!Ue ={e0`cN7c>-}bؔH\ڧ ≼51T`f*Deq`A.ldDu[lIAy@=R [h%ۯ@XMU{*s%Jӆ"<Ke)rBL-xiIgDv+PQ$%9^  ]QL@;Ke7 턛oGw{fD+Qvd!O#juS'~e}_ϢVs&.Oi8k٨iX㜫ϙ͇B'ԾtՙnSb?h!Ohdg43R)Fη'&Nnɷ+ $:,qr^߉i =JQ,rQM8duM3h~wWnF}WL Y*NF2`) ewb&ޙ]ީk(a[wng ۋx_ >p/B 0+JFZ|jX3口81s  T' #}0jbT.M{ #d+'mʅ"!,Pyd`ʹ5?y_&}_h¬PFhHK4|_kB {2* 4JDfez-b$RA%s4D] j"i Ѽcb`8,v1ˌrYfH~Vφ4M<*1뼉B5fD(b ,ƨF۞ŊĬV>9<^abmS9ik#yTX Fbs89Q\s *dV 6<]e;L>i6t$M$6Q f~sEɔ<@n5<*A,`KЍ- knY1=cº؄*妊a6#)J}E#"MHX1֨ض@@_`]a5i6'v.dh.B_cIɼ-LjQtvy5U"'z+E32FcXhV2 Vf#}he`$ 8G9 iZ%i C~'",ȳ6YXtבrO=kč ppЭ&)–,n^__Q駟c,i߫f"Sn/z1V&^ TAvvkRvc_ω]ݜIU2{ukU7ijp3 ?l-,V-R>eIʝVW^Ԡlb*t'J\݈łr\ǨAJdג&M\>; RYJ`As*AB<,lrGiG3IE9籿N6*ZcR9ę7mFv=?L=tL*@jJ}i":fmޝ1_T=@HqO̴Uzz +MnHmX߳@,n z5>}oi|)^lR?1Gqxdw0qÆ)px/E_0Lʝ`*5ݳa\IO\1Oϲf·/笟*7ovB8k;DDŰHjɫq[:e+ܶo-_ɋWMo6W =$ *zmq]@$ӂ2kTIʊw{5R87oҿ~ y~VVNH%Un+.ZB C)(> J5+pk ' h ڴ(ڌ rXrv0G駳V3i8H5BVJdEAEp\Lu32_;ЍBcײ\6m-պu(Wu cKe3: =KR%`eUHR _B䖁^pkI4Hx#m$|&ftWZKlSKC/w *B%a-D !U>hEoӞJ/ ڄx1OCx,/q|w7.&7slz=YLfSz G5^2 @@ -718,29 +728,24 @@ w6-Q6@6߿oz pznJ{yr;Xث@!-f2# Tn$-9W1#®XZq=Xmo6_q kǴI5fp]QE@KE5uﻣHE-mAֽ~:_0)PfLd wx%3-S~]0#hSHyyFZaB|ؔLq"2p: dI[*XJUyVb^ ,KK=rnOgwc ]a0 J FS,f),;RTd)W!xcT!c)+QEY'mAlS|zSlSOt<38NfwSl|=w#N>o>p,$0RAQO>By(bbzYRC"ﹲȹZ MdX -cAIu#7ϒ7X;252oR!;K>DؿmphMĴ,T"FS!6RLSZRmy/$kJ<5+ݵ > .*:RzZl=@^2WKE bnzƫd[t{/=o["5>3(q c>}vU*g^dO^Y,[hR3&Y!c/)V]*'`#n̙>BH%1GqlwRK7"G:6sdDthT?{3 pSLWI3l`{UϝnqB:lNV@,kiO}qR^6?U8xq,Bew{쳽;QmWҴ>fѣÕd{kcSoORRd7=uZhՂwxۛKm/\Ti#Ҕ.(Ug,lONjxqq1e|?grN7ژ.xtQqUG+{)㬲2"`̪Q=7HЅR:Dxm M›oPFp]/nq ]"rtCX>v#D n&n%o/g-ݨӄ-~$ $RO`ȟ.&>7 {ғ:w=x\m~AH%c@ Abp0oo;>.T|?aW-Xk0j+_[(FhzL۟=98Rҗ7fh?G9ϥsa] v/=ks8+km%dYŏ2vV&K( H IEqf߯&@J$3;[ڝ"7|:# g,-8 +/Ó,-N@k&#VfԸ7M6.QyHGQg)ݜs{g9e1HDMrg<-c7˫ ) ;6PhQ"1(!l~Ǔiɲeba>rs)`5,z-$)Ւm3Bw.4N[VzϢ{f%[@gK@͓8J[R.df,*7iYe'";Y>W$^ޜҪϻ4Ee=Ր!(A)`́餍  @z7f\ܴw}w}ݻ_ݰkvruyzѿY..Oی`(y#i#K-RNŜq<"p6>aY\h @r1KRz)++A)CʲzԔM2֤U9#e'9J2wkp64=w PC6l"#*X~8&'O H ;/p)\O$U9p-J.tDryT5?}Jw&ޱZ,z"$@UH$!@\ѕw *4K7Z$-HEp9#^f#u!qvI'a%X ʄp)s9#))3HPCA"BmJ^LR&㉚΀&(ۢcs_rRMыa6i]=$mc٢/J6 `Wlu$qr9&ۚhz˷bX;f v56-{@+vY2aHYh|z,xpljV6{PCOx##i4\A1@ԌJjZJ 5P${ h6C#OS33x;ޢ!> '6#H͸9*H\9LC/5#0VŃRO4Lbo!*w -& n- l*.0 a8sKDfS:9B;E{jGfLXa3~X84{AB{@G&9E/sƘDĴ [H' -[/,2e<*.3بsbM2bE7 PЏ p/JGhZAG$`8\D eGsV%Jmc0O:U$4 é>d{oo{W gGHfnУwjз?%Q>8aMOv󡘐y\?m_^]p#w ,`'$Bjw8xTO{o.~==;{{ώA VZogzӿ};u>nOl8&vm : ~E΁Bhp(`M@+^6BL"I>J1πKHH/No/vv*lgcZDb&&6b6M8M-2?6[q)MDβOQ.h\+,%Rm),UK7fA+WxKk( of('>r %p` L.8 -uop Oa*ŵY!!3Xwhn¯`grjt3hK %IqQb&o?W0bزfr;FyTrUpڿ -3P0$)#e殝$"x{K/n#GےMmC[%4AlcwLfG׎`ؚY&Tikt[u1ooZ"w\ޮ -bS {#|$fO0+xŭ\hZ1ԓ44PpmI[FUlGy\C xWk3^N0M NWnP?1gZ0ˬ-\="Z+U\=9.h$sry8b1 -0ZbȺVB`DK,IX - -!,f|չ)5{8,0jL9yFk8okԶDÄe׼\r=\乱cvF6,71JNޯ;}}ɑDu+Dڐn x>㠌DCb -bLLbIqGi&d4Dl>/pOg2UuA,(` 5*xL[2,˄E-m (*Q,iF - ֡{P ûN+ef)j^Ze_d^*Q&AR*w8)Vrٌ6)Y&"q*wL8'F؍8MEMxѪ Hzf`rBMyz - pzu )AEM4 㪍SڂtcTgw8 xVH:zCmG^Ln$;| s"u>Tm6cXט­W%um(!Hu375L}\CǭHeUS>՞p_ ƐeSI, 缡Lhm3UzYmG_v[5Wl _(6Ż7rXhڄBhyɑT=d^\+c3V>_{{,t1FH_V~Ted:6~(W84~&.͗!*Df员T;~G%36hQi|zKZWNE"t>^[c+Tm/C+)RC4=7, YUv|T(wCu ͹;jC֖J4dղUlW ?]SP/ -Vca̲ZVp~FKšz˫FvpfZ -tv}{U$Wn NrHHݩ!'ͦ?kDֹ#&Y [`0<#tp[GT3_%ul[BoٿA-Y>Rs5ZIx;{/C1ۆ_B/*b~ܵrU. M9,-ϬZ:|6 -xO0褻! ngfI5hz0䕳 +lK1kwS#eTO1r4F5W<5j=Rxi4+{TBj#yleehr ñ>P'\ ӭѣYE&lCqwWz:ȤۜyTѼQl-g Csh #y{=FQDp#dh V; oSG4 [R kHY{49c? ^lJ=t|c֍Jby rZ֎A_< v~BBNB"gW+aȲ0<z4s`v6Ձ3 JMJ[ ;lQj8[SǿB~zezh^Q̵T镗v/!*b!&-Hk,ѵt&E=P(YԷvtH2S}U{ԻkW [U3ve XB׿uQd-sXYYWN#nZBGjc򥪶vnqRw jY<[Lw9ޭ' M -:vּ*@wx|b ƍh%ll »'J}!E)\H-D)OT2x%}_EL~Ioj#&k-!c[&%&ٌ]}7sa~x=Z.;C2\*VXcFO.=.>:J2#;缦Tx>+7cWUO4](KcX @jI e!D> ~ڑ5դ=u_t7, xۖj}ٌ{,UxP#]%QkWr֬KqCSW`8bQ54:Ο^yMsLmEw_x6Vuj[JpnˉitV/΄ұIN)=xd1(hX1Y0_F7}dHgVw6V0!mIJxRIV|JkӪ~>c=3#AZ%n 5dcKXS"1 -n?lOgճʱk:,bEQ! |4g" e5Ğڊv[ox:!ls boI k%T鶮+oZZho/zp]np/"ѩUT/''.> -AX5ڧfaM˙N/eȵdAhw -\pXSqaג)ü*:$>pWqbJŒ;yp=ȷA!M0H)z(jvG_qmiLRQQ E$n DىZN7tc8ϗs 2tb`BDf%ch7vfMEV{PE'X|_ߍ5R[s7lGqJ""/b?TzKc,Kptэ#M˹ ==3:g5+ bGරzKѶaJ;'#2z@QFj2IDؿmphMĴ,T"FS!6RLSZRmy/$kJ<5+ݵ > .*:RzZl=@^2WKE bnzƫd[t{/=o["5>3(q c>}vU*g^dO^Y,[hR3&Y!c/)V]*'`#n̙>BH%1GqlwRK7"G:6sdDthT?{3 pSLWI3l`{UϝnqB:lNV@,kiO}qR^6?U8xq,Bew{쳽;QmWҴ>fѣÕd{kcSoORRd7=uZhՂwxۛKm/\Ti#Ҕ.(Ug,lONjxqq1e|?grN7ژ.xtQqUG+{)㬲2"`̪Q=7HЅR:Dxm M›oPFp]/nq ]"rtCX>v#D n&n%o/g-ݨӄ-~$ $RO`ȟ.&>7 {ғ:w=x\m~AH%c@ Abp0oo;>.T|?aW-Xk0j+_[(FhzL۟=98Rҗ7fh?G9ϥsa] v/=ks7+j%ՕdKΑ\ϥIpie!؛Mb4C/^.f'O>aOE 6JGILY1L::M<ŀu|Zc7H$"?XLLƼ҄o/: ii&G̢aY4b."gVu=<=g@\Q16QΖiv&c%ÜlCMgKYHF&@CZ*R,3g$vvRo:{XE#(]@l#Ό8UI(-ƉNfJP͊bqtp\.9ởfM`଺Kb_(_N#R/Q~$&?̀ɴs*ip0v^vwsӿ\߲vz}uv9oW?Wg]&a0Ȑ4B~M%|!F$yɴS'1,D6rlHA9QA*cW6m#n#(mFiS?RzrpA|zp@/6-$`yZfQO͟fd(E9lEIQHI:<ϐ&F!8 x΢ +O˸vNIڒsf(X|~Y'QtDs t+'Dll>~8Ȧ' O y9F3N-hA<}tE`F +RТ"4b_w"$?E?Q FH1Zd8%\N;={ (ȓ9@ ;4Eb%...ݤR8.#${Ap@ŕ>E^.g"q<smߊz\H`TXx/JDs)">WlSb ~:8` MG +XZ`3? ?tv31Ɨd[3ǠbKьNQzlqkӼx{lg֎D^CøY}&A F?+y#EۥѺC*@gV)*J1A^+;>TD +qרV?_=c|w9S 쌻eݎ_ϻ.#D|΅đz9ڼ00 g9ih\@SLa%qNxrpb@s0,NJ1شv#^@Nd D"t*m~D=PW{q xiƐ Ncz+-Ł'2~؛/LR=2Sj|'xm[!D`h\\H'gB5P.6 T4\ )f/ q5Ч )(E4R 1emPmS̳{z+< eQ~o|߄s?hH)5 +~jWwgwoy +YڵrSJ6}s~可 I |g7?(7k5TcC@!J sGc0Zsgw9?V s4/r:"s lQ#ejgԼYq2#Ȇ:нnWb;[6%-2> Q,#;Si f6:#&V#Wp?`RF yX'rV&+tK| F;۹y`0yD (k'[ 5 ՜&[UvG38i/]i\Hk+`ϩHzu" 8kwtQh&e"U6+Gn+GM݊:1wT<2್1 jZ_;jjOm2^RiQxw|ԈT0 pwQXfi7ӳ"@vНDR |1(SiބOØlKAު4˶-/(Hb̄5 l0d*8lFLhПa"kޮ҂%~.e1VF䁷K=9)Wx}82a,ENl9d`+GP9G(%gʵRI:YK -f9[qƗ.c͡@:S$*dBȄE-5]hR~}duMJ?sd8\/0/\9/l +?U\'uq;wԲQx*5 ࢪvIo-r]B[ +)ƭt8wo F–&pXI_w|fm\t G39ɒ?J8{8i@ +&:kj/F͒-Qp"|%Qt*Zh6?{Umz=t8+| WV?Ǜ1d~7ƭŞWn`%&]YM/M{ݸkE`NMi3XdW}s;dBZo-Zk̟yw4l h k +ZOI+zLe& #x$J L k(MeFlCx#<|Zr5w*4iZϞnQ,\^dBNn 1~TK= m<{Kޡy 9CmTvg85vnOPsw:tgĚWr+wo~F]8ߙSƄW%g7Qz{t,./3`GlGYN856& IJg;c;dz̨[C:u evdry8É9$YsנD,Yj5]G&eb!xڵb?gy|F4t"]Ib/I{D*>-Ӗ 8`Y@$%Py-MVZeP G&uu-Keo6pQ#scu``:=67ϚG|y~< S@d#?VNtw-6fCA;.U#msҾWzε[ vWwnbБ +qO#{i.YeͮcDYJigEaa)=xT+R:+2'olAl&pV nm=b?>Ӷ O\ I ^{{那d&H\@XlL xee +]LV< 0xHL,E&Y:אs},A&)WVCDV[̭UhWtӕ^S󛜃 u]$nJ*W ² s鿌P!d_#nL<c/Ѵr`Rl@kW B2)=>>6"'m6mv5]Pٚ +33,5k@VGb>^K)Gg9Z샧/ZmrB)UߥI͕?PﺭjV,,5ž Njp ]䲰Su}<AwEdIݕ%V"7IX^7ln]: ͏-K,w1Z426R*0.b{yosΧ j!>[絻ZW)QvEo+xfܨ/KFVPVR뮩W˫x]$z8_uEV"\2.~)A +g l;K NRתyC\͂?{QGOo$a?= E+FYC99B: |x2f:A!ѨqYOX6^ԟ+_K[fTq߽>U?Uq{Cm=uIsV*8M*X{dRiqgOoMrG6wtC :+W+(^y,'xzYUZhqKGW̕#1"B_L…2wO8ru;_m^`+NJzts5w:~@uE6TWDNc}q-*%.%1x_ Xt +R3- +9Š??)Lj dx/Ŝ&xi+jy\~jh/붊߈dJN38JuwGa@nӌCtJӤۺ9,iz*e^ooG{{kjw:taSf OAx$o{&4CW¬|Q!iH=8?3.:-jބףNM_u` [Kf Dt܂gqdm&jrr3)*aV=/ &B jp/lMD0~HnCP\e3(jϖG.>/lNU>g4#ܣO!v2 TB-0!B,Vs9Ұ޶(J}.AƧ#2z@QFj2I$a;Kb^rpK 7\!UK2 &="- @X\m,\#7Wm$y~߹+Xʘ)ЋVo^{ CoN @@ -835,13 +840,9 @@ "lFtTFUQ|CaP&wt<}FHlvKH3x=PxsqpgDsД02z|†8IcL,V!ǝk;9& ?w6Cef~0G<Z՛|ju{2&kS"&iEJڸm I=Sr_VoY\m4 `RHFUa]䁶$ߗh4DN}ܒ-3ƾ{rˠ^H_^,*djRilrDϮU[cVn0+a#9Ӣi^ iO("JI {IL"f>^ei6d:#gj%7KE9JΑP4n]L&&( Jg=02isfSkN3>UQvPlPPg 53Ψ݆f^C j@FD)'mrb[4ୱI[ E@5D7ba)UH-3b]$Ɖ)4Fml %&U|"`2ƪwln}6r+,vp pa E/N}em1W1n%R!ik@tr!╓3R6$-FÄA;-Q"vԺ9nO6xߡSCU]0Dt!COϫkOv+:xZ v8حԙr݆$.+{(ͮ?k3ûǪC:}>c(0XM:u-%|쏙v"7Prh%bK,0 -QW@KUp`Xr6}W3jI94/6θI:vFXi]Q$H)SlYZҰ5!Z;.AoFWȷ7x@5aK̓h0? (?!>>bR=5DfNdk->x_+1ܮM pTZ Zmo8_Z.\ ]Ul9ֱl"ѱ6mPoDr8m$q8p8j{tyI)V1Q.9}WJЧlm4# nK?`ou&wDB}Mu(]>}"J `}<`Sf)?=nH!nHuֶa_rvЀTW7pvCxAH6vLC^Gc9Exc}Ʒ7U<( +QW@KUp`XSF~X2n%cәm +iK& I:a _"ԻI'IvT`I{owtS:Mw8Q‡)}Oy$NH^ALd&sEQ6Kc:\I)K5+<'dQy:*͉ bTqwR-AU6YQA¥Yi+9EIÂ"w$O>|wWduKMEr7@~T{7Kb\EgAwDAd<LjQuIT38Mzvxx$fC&\mUokwKgL`ҐƝeEO-"q a:JS[_gIIf I}t&7J`ں^q'ЛS!W.J<: Ifϰ!rL#[QC`TKb]c?4;JRtN"KI1QlN 'nڐ,Eya|.[rˮ/?G 7G+3*|D?Zmo8_Z.\ ]Ul9ֱl"ѱ6mPoDr8m$q8p8j{tyI)V1Q.9}WJЧlm4# nK?`ou&wDB}Mu(]>}"J `}<`Sf)?=nH!nHuֶa_rvЀTW7pvCxAH6vLC^Gc9Exc}Ʒ7U<( (-EGMB}) `1% D2~oȘenm~}=O-8M $ll]Fyn>#mDήQ#/,r14$t_-|x9<ЦNL _'::t}:,FG"RҚh3ɥf /U='uͤuk R%sհbi03S#H7UF}rYZļP'Ơ.2<z6qH7OC#9׆:>hjj\3 /p6?@d^砣R1P:8HÅ]"Y3ҭl,ojg}df2-LB,|0uҧfϦ]0X{l=2X31PՅaا,T4 Z<%H{ZdOsm:԰utS22tiD >4HC[2!!{@,c!|G&L4t`%[d҃۵ܯГ`YK,t6՚wЂ`@%hYipaG+u}S5^m4Id>m#DvVg20H opiII6 0@Sn!wXZ}si\(*s;<ՇrT;ô2e~1d0+^H:w_w!Hd'TΏf%DPRJ]UpU$PܳA;]{ c%d-[GT/!_d%)'d"G>b۫` |40=+6f8eꌺ#U#poK΀}Th\_E7 \A_^q$}`e ֮=[Kp䭄y'* UZ gEvدp@S X, +t kCK,lPE #S%i׀3¶31r2ʔ +O{k8,܃#@[!8Ipk+L۴NqaZWY¾ZybmU`*6Xo1 @@ -913,4 +914,4 @@ Ŋ Ld*;␇K̽aru=hJeI_ :S}G'w: a@Ld4E(aiX~2)km*ݳ:-O3.OT%z؁ff :Ήx%8,+Ӻ.adv?=hMzkrmRmZ߉QaA :'t&6.򇦨Y uA -@ Es\@@BQpgCh8PSo{?벆T$OBXiYP|Q~3jfK3,n>HAԀXH) q8n-2(wnHAԀXH) q8