1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
diff -up ./phpunit.rpm ./phpunit
--- ./phpunit.rpm 2024-03-01 07:19:34.000000000 +0100
+++ ./phpunit 2024-03-06 10:27:50.097810154 +0100
@@ -46,27 +46,13 @@ if (isset($GLOBALS['_composer_autoload_p
define('PHPUNIT_COMPOSER_INSTALL', $GLOBALS['_composer_autoload_path']);
unset($GLOBALS['_composer_autoload_path']);
-} else {
- foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
- if (file_exists($file)) {
- define('PHPUNIT_COMPOSER_INSTALL', $file);
-
- break;
- }
- }
- unset($file);
-}
-
-if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
- fwrite(
- STDERR,
- 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
- ' composer install' . PHP_EOL . PHP_EOL .
- 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
- );
+} else if (file_exists('./vendor/phpunit/phpunit/phpunit') && file_exists('./vendor/autoload.php')) {
+ echo "\n==== Redirecting to composer installed version in vendor/phpunit ====\n\n";
+ define ('PHPUNIT_COMPOSER_INSTALL', realpath('./vendor/autoload.php'));
- die(1);
+} else {
+ define ('PHPUNIT_COMPOSER_INSTALL', '/usr/share/php/PHPUnit11/autoload.php');
}
require PHPUNIT_COMPOSER_INSTALL;
@@ -101,4 +87,13 @@ if ([] !== $unavailableExtensions) {
unset($requiredExtensions, $unavailableExtensions);
-exit((new PHPUnit\TextUI\Application)->run($_SERVER['argv']));
+if (class_exists('PHPUnit\\TextUI\\Application')) {
+ // PHPUnit v10 or newer
+ exit((new PHPUnit\TextUI\Application)->run($_SERVER['argv']));
+} else if (class_exists('PHPUnit_TextUI_Command')) {
+ // PHPUnit v5 or older
+ PHPUnit_TextUI_Command::main();
+} else {
+ // PHPUnit v6 to v9
+ PHPUnit\TextUI\Command::main();
+}
diff -up ./src/TextUI/Command/Commands/VersionCheckCommand.php.rpm ./src/TextUI/Command/Commands/VersionCheckCommand.php
--- ./src/TextUI/Command/Commands/VersionCheckCommand.php.rpm 2024-03-06 10:27:59.407166291 +0100
+++ ./src/TextUI/Command/Commands/VersionCheckCommand.php 2024-03-06 10:28:47.312998973 +0100
@@ -24,7 +24,7 @@ final readonly class VersionCheckCommand
public function execute(): Result
{
$latestVersion = file_get_contents('https://phar.phpunit.de/latest-version-of/phpunit');
- $latestCompatibleVersion = @file_get_contents('https://phar.phpunit.de/latest-version-of/phpunit-' . Version::majorVersionNumber());
+ $latestCompatibleVersion = @file_get_contents('https://phar.phpunit.de/latest-version-of/phpunit-' . $major=Version::majorVersionNumber());
$notLatest = version_compare($latestVersion, Version::id(), '>');
$notLatestCompatible = false;
@@ -47,6 +47,7 @@ final readonly class VersionCheckCommand
Version::id(),
$latestCompatibleVersion,
);
+ $buffer .= sprintf('Try a system update for new phpunit%s package.' . PHP_EOL, $major);
}
if ($notLatest) {
@@ -54,6 +55,9 @@ final readonly class VersionCheckCommand
'The latest version is PHPUnit %s.' . PHP_EOL,
$latestVersion,
);
+ if ($major !== ($new = (int)explode('.', $latestVersion)[0])) {
+ $buffer .= sprintf('Try to install and use the phpunit%d command.' . PHP_EOL, $new);
+ }
}
return Result::from($buffer, Result::FAILURE);
diff -up ./src/TextUI/Configuration/Xml/SchemaFinder.php.rpm ./src/TextUI/Configuration/Xml/SchemaFinder.php
--- ./src/TextUI/Configuration/Xml/SchemaFinder.php.rpm 2024-03-01 07:19:34.000000000 +0100
+++ ./src/TextUI/Configuration/Xml/SchemaFinder.php 2024-03-06 10:27:50.097810154 +0100
@@ -75,6 +75,6 @@ final readonly class SchemaFinder
return __PHPUNIT_PHAR_ROOT__ . '/';
}
- return __DIR__ . '/../../../../';
+ return __DIR__ . '/../../../';
}
}
diff -up ./tests/bootstrap.php.rpm ./tests/bootstrap.php
--- ./tests/bootstrap.php.rpm 2024-03-01 07:19:34.000000000 +0100
+++ ./tests/bootstrap.php 2024-03-06 10:27:50.097810154 +0100
@@ -11,8 +11,8 @@ if (!defined('TEST_FILES_PATH')) {
define('TEST_FILES_PATH', __DIR__ . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR);
}
-$composer = file_exists(__DIR__ . '/../vendor/autoload.php');
-$phar = file_exists(__DIR__ . '/autoload.php');
+$composer = true;
+$phar = false;
if ($composer && $phar) {
print 'More than one test fixture autoloader is available, exiting.' . PHP_EOL;
@@ -28,10 +28,15 @@ if (!$composer && !$phar) {
if ($composer) {
if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
- define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__) . '/vendor/autoload.php');
+ define('PHPUNIT_COMPOSER_INSTALL', '@PATH@/autoload.php');
}
- require_once __DIR__ . '/../vendor/autoload.php';
+ require_once PHPUNIT_COMPOSER_INSTALL;
+ require_once __DIR__ . '/_files/CoverageNamespacedFunctionTest.php';
+ require_once __DIR__ . '/_files/CoveredFunction.php';
+ require_once __DIR__ . '/_files/Generator.php';
+ require_once __DIR__ . '/_files/NamespaceCoveredFunction.php';
+ require_once __DIR__ . '/autoload.php';
}
if ($phar) {
|