summaryrefslogtreecommitdiff
path: root/vendor/phpunit/php-invoker
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2022-03-22 12:24:31 +0300
committerAndrew Dolgov <[email protected]>2022-03-22 12:24:31 +0300
commit1c4f7ab3b838b23afb2ee4dab14acbf75956e952 (patch)
tree0a19274107d717efe92d2c0376cd3105fead5a11 /vendor/phpunit/php-invoker
parent711662948768492e8d05b778a7d80eacaec368d2 (diff)
* add phpunit as a dev dependency
* add some basic tests for UrlHelper::rewrite_relative() * fix UrlHelper::rewrite_relative() to work better on non-absolute relative URL paths
Diffstat (limited to 'vendor/phpunit/php-invoker')
-rw-r--r--vendor/phpunit/php-invoker/ChangeLog.md48
-rw-r--r--vendor/phpunit/php-invoker/LICENSE33
-rw-r--r--vendor/phpunit/php-invoker/README.md18
-rw-r--r--vendor/phpunit/php-invoker/composer.json54
-rw-r--r--vendor/phpunit/php-invoker/src/Invoker.php69
-rw-r--r--vendor/phpunit/php-invoker/src/exceptions/Exception.php16
-rw-r--r--vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php16
-rw-r--r--vendor/phpunit/php-invoker/src/exceptions/TimeoutException.php16
8 files changed, 270 insertions, 0 deletions
diff --git a/vendor/phpunit/php-invoker/ChangeLog.md b/vendor/phpunit/php-invoker/ChangeLog.md
new file mode 100644
index 000000000..15cff1f11
--- /dev/null
+++ b/vendor/phpunit/php-invoker/ChangeLog.md
@@ -0,0 +1,48 @@
+# ChangeLog
+
+All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
+
+## [3.1.1] - 2020-09-28
+
+### Changed
+
+* Changed PHP version constraint in `composer.json` from `^7.3 || ^8.0` to `>=7.3`
+
+## [3.1.0] - 2020-08-06
+
+### Changed
+
+* [#14](https://github.com/sebastianbergmann/php-invoker/pull/14): Clear alarm in `finally` block
+
+## [3.0.2] - 2020-06-26
+
+### Added
+
+* This component is now supported on PHP 8
+
+## [3.0.1] - 2020-06-15
+
+### Changed
+
+* Tests etc. are now ignored for archive exports
+
+## [3.0.0] - 2020-02-07
+
+### Added
+
+* Added `canInvokeWithTimeout()` method to check requirements for the functionality provided by this component to work
+
+### Changed
+
+* Moved `"ext-pcntl": "*"` requirement from `require` to `suggest` so that this component can be installed even if `ext/pcntl` is not available
+* `invoke()` now raises an exception when the requirements for the functionality provided by this component to work are not met
+
+### Removed
+
+* This component is no longer supported on PHP 7.1 and PHP 7.2
+
+[3.1.1]: https://github.com/sebastianbergmann/php-invoker/compare/3.1.0...3.1.1
+[3.1.0]: https://github.com/sebastianbergmann/php-invoker/compare/3.0.2...3.1.0
+[3.0.2]: https://github.com/sebastianbergmann/php-invoker/compare/3.0.1...3.0.2
+[3.0.1]: https://github.com/sebastianbergmann/php-invoker/compare/3.0.0...3.0.1
+[3.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/2.0.0...3.0.0
diff --git a/vendor/phpunit/php-invoker/LICENSE b/vendor/phpunit/php-invoker/LICENSE
new file mode 100644
index 000000000..4620776e1
--- /dev/null
+++ b/vendor/phpunit/php-invoker/LICENSE
@@ -0,0 +1,33 @@
+php-invoker
+
+Copyright (c) 2011-2020, Sebastian Bergmann <[email protected]>.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Sebastian Bergmann nor the names of his
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/phpunit/php-invoker/README.md b/vendor/phpunit/php-invoker/README.md
new file mode 100644
index 000000000..ace07e5fd
--- /dev/null
+++ b/vendor/phpunit/php-invoker/README.md
@@ -0,0 +1,18 @@
+# phpunit/php-invoker
+
+[![CI Status](https://github.com/sebastianbergmann/php-invoker/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/php-invoker/actions)
+[![Type Coverage](https://shepherd.dev/github/sebastianbergmann/php-invoker/coverage.svg)](https://shepherd.dev/github/sebastianbergmann/php-invoker)
+
+## Installation
+
+You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
+
+```
+composer require phpunit/php-invoker
+```
+
+If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
+
+```
+composer require --dev phpunit/php-invoker
+```
diff --git a/vendor/phpunit/php-invoker/composer.json b/vendor/phpunit/php-invoker/composer.json
new file mode 100644
index 000000000..6c007cd81
--- /dev/null
+++ b/vendor/phpunit/php-invoker/composer.json
@@ -0,0 +1,54 @@
+{
+ "name": "phpunit/php-invoker",
+ "description": "Invoke callables with a timeout",
+ "type": "library",
+ "keywords": [
+ "process"
+ ],
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "license": "BSD-3-Clause",
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "[email protected]",
+ "role": "lead"
+ }
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues"
+ },
+ "prefer-stable": true,
+ "config": {
+ "platform": {
+ "php": "7.3.0"
+ },
+ "optimize-autoloader": true,
+ "sort-packages": true
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "autoload-dev": {
+ "classmap": [
+ "tests/_fixture/"
+ ]
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ }
+}
+
diff --git a/vendor/phpunit/php-invoker/src/Invoker.php b/vendor/phpunit/php-invoker/src/Invoker.php
new file mode 100644
index 000000000..656f4180a
--- /dev/null
+++ b/vendor/phpunit/php-invoker/src/Invoker.php
@@ -0,0 +1,69 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-invoker.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\Invoker;
+
+use const SIGALRM;
+use function call_user_func_array;
+use function function_exists;
+use function pcntl_alarm;
+use function pcntl_async_signals;
+use function pcntl_signal;
+use function sprintf;
+use Throwable;
+
+final class Invoker
+{
+ /**
+ * @var int
+ */
+ private $timeout;
+
+ /**
+ * @throws Throwable
+ */
+ public function invoke(callable $callable, array $arguments, int $timeout)
+ {
+ if (!$this->canInvokeWithTimeout()) {
+ throw new ProcessControlExtensionNotLoadedException(
+ 'The pcntl (process control) extension for PHP is required'
+ );
+ }
+
+ pcntl_signal(
+ SIGALRM,
+ function (): void {
+ throw new TimeoutException(
+ sprintf(
+ 'Execution aborted after %d second%s',
+ $this->timeout,
+ $this->timeout === 1 ? '' : 's'
+ )
+ );
+ },
+ true
+ );
+
+ $this->timeout = $timeout;
+
+ pcntl_async_signals(true);
+ pcntl_alarm($timeout);
+
+ try {
+ return call_user_func_array($callable, $arguments);
+ } finally {
+ pcntl_alarm(0);
+ }
+ }
+
+ public function canInvokeWithTimeout(): bool
+ {
+ return function_exists('pcntl_signal') && function_exists('pcntl_async_signals') && function_exists('pcntl_alarm');
+ }
+}
diff --git a/vendor/phpunit/php-invoker/src/exceptions/Exception.php b/vendor/phpunit/php-invoker/src/exceptions/Exception.php
new file mode 100644
index 000000000..6ecbf5dd3
--- /dev/null
+++ b/vendor/phpunit/php-invoker/src/exceptions/Exception.php
@@ -0,0 +1,16 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-invoker.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\Invoker;
+
+use Throwable;
+
+interface Exception extends Throwable
+{
+}
diff --git a/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php b/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php
new file mode 100644
index 000000000..ef42fd195
--- /dev/null
+++ b/vendor/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php
@@ -0,0 +1,16 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-invoker.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\Invoker;
+
+use RuntimeException;
+
+final class ProcessControlExtensionNotLoadedException extends RuntimeException implements Exception
+{
+}
diff --git a/vendor/phpunit/php-invoker/src/exceptions/TimeoutException.php b/vendor/phpunit/php-invoker/src/exceptions/TimeoutException.php
new file mode 100644
index 000000000..2f7631c0e
--- /dev/null
+++ b/vendor/phpunit/php-invoker/src/exceptions/TimeoutException.php
@@ -0,0 +1,16 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-invoker.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\Invoker;
+
+use RuntimeException;
+
+final class TimeoutException extends RuntimeException implements Exception
+{
+}