diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4df196a..29b90af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ jobs: strategy: matrix: php: + - 8.5 - 8.4 - 8.3 - 8.2 @@ -26,7 +27,7 @@ jobs: - 5.4 - 5.3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} diff --git a/composer.json b/composer.json index 76e16f1..e974e78 100644 --- a/composer.json +++ b/composer.json @@ -12,11 +12,11 @@ ], "require": { "php": ">=5.3", - "react/stream": "^1.2" + "react/stream": "^1.4" }, "require-dev": { "clue/hexdump": "~0.2.0", - "react/event-loop": "^1.2", + "react/event-loop": "^1.6", "phpunit/phpunit": "^9.6 || ^8.5 || ^5.7 || ^4.8.36" }, "autoload": { diff --git a/tests/TarDecoderTest.php b/tests/TarDecoderTest.php index 3eb0623..a46e9ce 100644 --- a/tests/TarDecoderTest.php +++ b/tests/TarDecoderTest.php @@ -91,7 +91,9 @@ public function testWriteDataOneBlockPlusDataAndIncompletePaddingWillDecodeHeade $this->assertTrue($ret); $ref = new \ReflectionProperty($this->decoder, 'padding'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $this->assertEquals(512 - 10, $ref->getValue($this->decoder)); } @@ -122,11 +124,15 @@ public function testWriteDataWhenStreamingEntryWillEmitDataOnEntryWithoutEndWhen $entry->on('close', $this->expectCallableNever()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $ref = new \ReflectionProperty($this->decoder, 'remaining'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 100); $ret = $this->decoder->write('hi'); @@ -141,11 +147,15 @@ public function testWriteDataWhenStreamingEntryIsClosedAlreadyWillNotEmitDataAnd $entry->on('data', $this->expectCallableNever()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $ref = new \ReflectionProperty($this->decoder, 'remaining'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 100); $ret = $this->decoder->write('hi'); @@ -162,11 +172,15 @@ public function testWriteDataWhenStreamingEntryIsPausedAlreadyWillEmitDataOnEntr $entry->on('close', $this->expectCallableNever()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $ref = new \ReflectionProperty($this->decoder, 'remaining'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 100); $ret = $this->decoder->write('hi'); @@ -184,11 +198,15 @@ public function testWriteDataWhenStreamingEntryIsPausedDuringDataWillEmitDataOnE $entry->on('close', $this->expectCallableNever()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $ref = new \ReflectionProperty($this->decoder, 'remaining'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 100); $ret = $this->decoder->write('hi'); @@ -244,11 +262,15 @@ public function testWriteDataWhenStreamingEntryWillEmitDataOnEntryAndEndAndClose $entry->on('close', $this->expectCallableOnce()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $ref = new \ReflectionProperty($this->decoder, 'remaining'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 2); $ret = $this->decoder->write('hi'); @@ -259,7 +281,9 @@ public function testWriteDataWhenStreamingEntryWillEmitDataOnEntryAndEndAndClose public function testWriteDataWhenExpectingPaddingWillDiscardPaddingDataWhenMorePaddingIsExpected() { $ref = new \ReflectionProperty($this->decoder, 'padding'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 4); $ret = $this->decoder->write("\x00\x00"); @@ -272,7 +296,9 @@ public function testWriteDataWhenExpectingPaddingWillDiscardPaddingDataWhenMoreP public function testWriteDataWhenExpectingPaddingWillDiscardPaddingDataAndSaveToBufferWhenPaddingIsMatched() { $ref = new \ReflectionProperty($this->decoder, 'padding'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, 1); $ret = $this->decoder->write("\x00\x00"); @@ -282,7 +308,9 @@ public function testWriteDataWhenExpectingPaddingWillDiscardPaddingDataAndSaveTo $this->assertEquals(0, $ref->getValue($this->decoder)); $ref = new \ReflectionProperty($this->decoder, 'buffer'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $this->assertEquals("\x00", $ref->getValue($this->decoder)); } @@ -335,7 +363,9 @@ public function testCloseWhenStreamingEntryWillEmitCloseOnEntryAndOnDecoder() $entry->on('close', $this->expectCallableOnce()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $this->decoder->close(); @@ -362,7 +392,9 @@ public function testEndWhenStreamingEntryWillEmitErrorAndCloseOnEntryAndOnDecode $entry->on('close', $this->expectCallableOnce()); $ref = new \ReflectionProperty($this->decoder, 'streaming'); - $ref->setAccessible(true); + if (PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->decoder, $entry); $this->decoder->end();