diff --git a/.github/workflows/reports.yml b/.github/workflows/reports.yml index 993a891..1fd230f 100644 --- a/.github/workflows/reports.yml +++ b/.github/workflows/reports.yml @@ -2,16 +2,16 @@ name: "Fast Forward Reports" on: push: - branches: - - main + branches: [main] + pull_request: workflow_dispatch: +# Caller permissions cap the callee; only its isolated deploy job writes Pages. permissions: - contents: write + contents: read pages: write id-token: write jobs: reports: - uses: php-fast-forward/dev-tools/.github/workflows/reports.yml@main - secrets: inherit + uses: php-fast-forward/dev-tools/.github/workflows/reports-native.yml@main diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 83ea015..9c844e5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -5,11 +5,12 @@ on: workflow_dispatch: permissions: - contents: write - pages: write - id-token: write + contents: read # Read source; matrix jobs retain read-only tokens. + actions: read # Allow the checkout-free publisher to inspect matrix job results. + statuses: write # Caller ceiling; only isolated callee publishers request this permission. jobs: tests: uses: php-fast-forward/dev-tools/.github/workflows/tests.yml@main - secrets: inherit + with: + publish-required-statuses: ${{ github.actor != 'dependabot[bot]' }} diff --git a/src/Worker/Worker.php b/src/Worker/Worker.php index ade710a..663c4f2 100644 --- a/src/Worker/Worker.php +++ b/src/Worker/Worker.php @@ -25,7 +25,6 @@ use FastForward\Fork\Signal\Signal; use Psr\Log\LoggerInterface; use Throwable; - use function error_reporting; use function getmypid; use function max; @@ -446,6 +445,6 @@ private function isNoChildError(int $error): bool */ private function isNoSuchProcessError(int $error): bool { - return (\defined('POSIX_ESRCH') ? \POSIX_ESRCH : self::NO_SUCH_PROCESS_ERROR) === $error; + return (\defined('POSIX_ESRCH') ? \constant('POSIX_ESRCH') : self::NO_SUCH_PROCESS_ERROR) === $error; } } diff --git a/tests/Manager/ForkManagerTest.php b/tests/Manager/ForkManagerTest.php index 9f912e6..1b71f75 100644 --- a/tests/Manager/ForkManagerTest.php +++ b/tests/Manager/ForkManagerTest.php @@ -30,10 +30,12 @@ use FastForward\Fork\Worker\Worker; use FastForward\Fork\Worker\WorkerInterface; use FastForward\Fork\Worker\WorkerState; +use FastForward\Fork\Worker\WorkerGroup; +use FastForward\Fork\Worker\WorkerOutputTransport; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; - use function getmypid; use function pcntl_fork; use function posix_getpid; @@ -41,6 +43,12 @@ use function usleep; #[CoversClass(ForkManager::class)] +#[UsesClass(InvalidArgumentException::class)] +#[UsesClass(LogicException::class)] +#[UsesClass(Worker::class)] +#[UsesClass(WorkerGroup::class)] +#[UsesClass(WorkerState::class)] +#[UsesClass(WorkerOutputTransport::class)] final class ForkManagerTest extends TestCase { use ReflectsNonPublicMembers; diff --git a/tests/Worker/WorkerStateTest.php b/tests/Worker/WorkerStateTest.php index 900603e..63d5d13 100644 --- a/tests/Worker/WorkerStateTest.php +++ b/tests/Worker/WorkerStateTest.php @@ -22,16 +22,18 @@ use FastForward\Fork\Tests\Support\ReflectsNonPublicMembers; use FastForward\Fork\Tests\Support\SpyLogger; use FastForward\Fork\Worker\WorkerState; +use FastForward\Fork\Worker\WorkerOutputTransport; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; - use function pcntl_fork; use function pcntl_waitpid; use function posix_kill; use function usleep; #[CoversClass(WorkerState::class)] +#[UsesClass(WorkerOutputTransport::class)] final class WorkerStateTest extends TestCase { use ReflectsNonPublicMembers; diff --git a/tests/Worker/WorkerTest.php b/tests/Worker/WorkerTest.php index 98c578b..afed3e3 100644 --- a/tests/Worker/WorkerTest.php +++ b/tests/Worker/WorkerTest.php @@ -30,14 +30,15 @@ use FastForward\Fork\Worker\WorkerGroupInterface; use FastForward\Fork\Worker\WorkerInterface; use FastForward\Fork\Worker\WorkerState; +use FastForward\Fork\Worker\WorkerOutputTransport; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; use Psr\Log\LoggerInterface; - use function getmypid; use function pcntl_fork; use function pcntl_waitpid; @@ -46,6 +47,9 @@ use function usleep; #[CoversClass(Worker::class)] +#[UsesClass(LogicException::class)] +#[UsesClass(WorkerState::class)] +#[UsesClass(WorkerOutputTransport::class)] final class WorkerTest extends TestCase { use ProphecyTrait;