diff --git a/src/DnsConnector.php b/src/DnsConnector.php index d2fb2c7..e5fd238 100644 --- a/src/DnsConnector.php +++ b/src/DnsConnector.php @@ -68,7 +68,9 @@ function ($resolve, $reject) use (&$promise, &$resolved, $uri, $connector, $host // avoid garbage references by replacing all closures in call stack. // what a lovely piece of code! $r = new \ReflectionProperty('Exception', 'trace'); - $r->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $r->setAccessible(true); + } $trace = $r->getValue($e); // Exception trace arguments are not available on some PHP 7.4 installs diff --git a/src/SecureConnector.php b/src/SecureConnector.php index 08255ac..98cc46a 100644 --- a/src/SecureConnector.php +++ b/src/SecureConnector.php @@ -91,7 +91,9 @@ public function connect($uri) // avoid garbage references by replacing all closures in call stack. // what a lovely piece of code! $r = new \ReflectionProperty('Exception', 'trace'); - $r->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $r->setAccessible(true); + } $trace = $r->getValue($e); // Exception trace arguments are not available on some PHP 7.4 installs diff --git a/tests/ConnectorTest.php b/tests/ConnectorTest.php index 02982db..ca10b78 100644 --- a/tests/ConnectorTest.php +++ b/tests/ConnectorTest.php @@ -12,11 +12,15 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new Connector(); $ref = new \ReflectionProperty($connector, 'connectors'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $connectors = $ref->getValue($connector); $ref = new \ReflectionProperty($connectors['tcp'], 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connectors['tcp']); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -29,11 +33,15 @@ public function testConstructWithLoopAssignsGivenLoop() $connector = new Connector(array(), $loop); $ref = new \ReflectionProperty($connector, 'connectors'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $connectors = $ref->getValue($connector); $ref = new \ReflectionProperty($connectors['tcp'], 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connectors['tcp']); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -50,7 +58,9 @@ public function testConstructWithContextAssignsGivenContext() )); $ref = new \ReflectionProperty($connector, 'connectors'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $connectors = $ref->getValue($connector); $this->assertSame($tcp, $connectors['tcp']); @@ -67,7 +77,9 @@ public function testConstructWithLegacyContextSignatureAssignsGivenContext() )); $ref = new \ReflectionProperty($connector, 'connectors'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $connectors = $ref->getValue($connector); $this->assertSame($tcp, $connectors['tcp']); @@ -80,11 +92,15 @@ public function testConstructWithLegacyLoopSignatureAssignsGivenLoop() $connector = new Connector($loop); $ref = new \ReflectionProperty($connector, 'connectors'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $connectors = $ref->getValue($connector); $ref = new \ReflectionProperty($connectors['tcp'], 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connectors['tcp']); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/FunctionalTcpServerTest.php b/tests/FunctionalTcpServerTest.php index 7575d32..7b46b22 100644 --- a/tests/FunctionalTcpServerTest.php +++ b/tests/FunctionalTcpServerTest.php @@ -331,7 +331,9 @@ public function testServerPassesContextOptionsToSocket() )); $ref = new \ReflectionProperty($server, 'master'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $socket = $ref->getValue($server); $context = stream_context_get_options($socket); @@ -346,7 +348,9 @@ public function testServerPassesDefaultBacklogSizeViaContextOptionsToSocket() $server = new TcpServer(0); $ref = new \ReflectionProperty($server, 'master'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $socket = $ref->getValue($server); $context = stream_context_get_options($socket); diff --git a/tests/HappyEyeBallsConnectionBuilderTest.php b/tests/HappyEyeBallsConnectionBuilderTest.php index 581d883..ce34747 100644 --- a/tests/HappyEyeBallsConnectionBuilderTest.php +++ b/tests/HappyEyeBallsConnectionBuilderTest.php @@ -844,13 +844,17 @@ public function testCheckCallsRejectFunctionImmediateWithoutLeavingDanglingPromi $builder = new HappyEyeBallsConnectionBuilder($loop, $connector, $resolver, $uri, $host, $parts); $ref = new \ReflectionProperty($builder, 'connectQueue'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($builder, array('::1')); $builder->check($this->expectCallableNever(), function () { }); $ref = new \ReflectionProperty($builder, 'connectionPromises'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $promises = $ref->getValue($builder); $this->assertEquals(array(), $promises); @@ -876,7 +880,9 @@ public function testCleanUpCancelsAllPendingConnectionAttempts() $builder = new HappyEyeBallsConnectionBuilder($loop, $connector, $resolver, $uri, $host, $parts); $ref = new \ReflectionProperty($builder, 'connectQueue'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($builder, array('::1', '::1')); $builder->check($this->expectCallableNever(), function () { }); @@ -904,7 +910,9 @@ public function testCleanUpCancelsAllPendingConnectionAttemptsWithoutStartingNew $builder = new HappyEyeBallsConnectionBuilder($loop, $connector, $resolver, $uri, $host, $parts); $ref = new \ReflectionProperty($builder, 'connectQueue'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($builder, array('::1', '::1')); $builder->check($this->expectCallableNever(), function () { }); @@ -927,7 +935,9 @@ public function testMixIpsIntoConnectQueueSometimesAssignsInOriginalOrder() $builder->mixIpsIntoConnectQueue(array('::1', '::2')); $ref = new \ReflectionProperty($builder, 'connectQueue'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $value = $ref->getValue($builder); if ($value === array('::1', '::2')) { @@ -953,7 +963,9 @@ public function testMixIpsIntoConnectQueueSometimesAssignsInReverseOrder() $builder->mixIpsIntoConnectQueue(array('::1', '::2')); $ref = new \ReflectionProperty($builder, 'connectQueue'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $value = $ref->getValue($builder); if ($value === array('::2', '::1')) { diff --git a/tests/HappyEyeBallsConnectorTest.php b/tests/HappyEyeBallsConnectorTest.php index c4516a7..b8daa72 100644 --- a/tests/HappyEyeBallsConnectorTest.php +++ b/tests/HappyEyeBallsConnectorTest.php @@ -34,7 +34,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new HappyEyeBallsConnector(null, $this->tcp, $this->resolver); $ref = new \ReflectionProperty($connector, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connector); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/SecureConnectorTest.php b/tests/SecureConnectorTest.php index c115a2b..c3f6e23 100644 --- a/tests/SecureConnectorTest.php +++ b/tests/SecureConnectorTest.php @@ -37,11 +37,15 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new SecureConnector($this->tcp); $ref = new \ReflectionProperty($connector, 'streamEncryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $streamEncryption = $ref->getValue($connector); $ref = new \ReflectionProperty($streamEncryption, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($streamEncryption); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -185,7 +189,9 @@ public function testStreamEncryptionWillBeEnabledAfterConnecting() $encryption->expects($this->once())->method('enable')->with($connection)->willReturn(new \React\Promise\Promise(function () { })); $ref = new \ReflectionProperty($this->connector, 'streamEncryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->connector, $encryption); $this->tcp->expects($this->once())->method('connect')->with($this->equalTo('example.com:80'))->willReturn(Promise\resolve($connection)); @@ -202,7 +208,9 @@ public function testConnectionWillBeRejectedIfStreamEncryptionFailsAndClosesConn $encryption->expects($this->once())->method('enable')->willReturn(Promise\reject(new \RuntimeException('TLS error', 123))); $ref = new \ReflectionProperty($this->connector, 'streamEncryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->connector, $encryption); $this->tcp->expects($this->once())->method('connect')->with($this->equalTo('example.com:80'))->willReturn(Promise\resolve($connection)); @@ -234,7 +242,9 @@ public function testCancelDuringStreamEncryptionCancelsEncryptionAndClosesConnec $encryption->expects($this->once())->method('enable')->willReturn($pending); $ref = new \ReflectionProperty($this->connector, 'streamEncryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->connector, $encryption); $deferred = new Deferred(); @@ -301,7 +311,9 @@ public function testRejectionDuringTlsHandshakeShouldNotCreateAnyGarbageReferenc $encryption->expects($this->once())->method('enable')->willReturn($tls->promise()); $ref = new \ReflectionProperty($this->connector, 'streamEncryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($this->connector, $encryption); $promise = $this->connector->connect('example.com:80'); diff --git a/tests/SecureServerTest.php b/tests/SecureServerTest.php index 6265618..7aa812b 100644 --- a/tests/SecureServerTest.php +++ b/tests/SecureServerTest.php @@ -33,11 +33,15 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $server = new SecureServer($tcp); $ref = new \ReflectionProperty($server, 'encryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $encryption = $ref->getValue($server); $ref = new \ReflectionProperty($encryption, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($encryption); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -137,11 +141,15 @@ public function testConnectionWillTryToEnableEncryptionAndWaitForHandshake() $encryption->expects($this->once())->method('enable')->willReturn($pending); $ref = new \ReflectionProperty($server, 'encryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($server, $encryption); $ref = new \ReflectionProperty($server, 'context'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($server, array()); $server->on('error', $this->expectCallableNever()); @@ -168,11 +176,15 @@ public function testConnectionWillBeClosedWithErrorIfEnablingEncryptionFails() $encryption->expects($this->once())->method('enable')->willReturn(\React\Promise\reject($error)); $ref = new \ReflectionProperty($server, 'encryption'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($server, $encryption); $ref = new \ReflectionProperty($server, 'context'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $ref->setValue($server, array()); $error = null; diff --git a/tests/ServerTest.php b/tests/ServerTest.php index f3859cc..00f583e 100644 --- a/tests/ServerTest.php +++ b/tests/ServerTest.php @@ -17,11 +17,15 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $server = new Server(0); $ref = new \ReflectionProperty($server, 'server'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $tcp = $ref->getValue($server); $ref = new \ReflectionProperty($tcp, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($tcp); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -115,7 +119,9 @@ public function testEmitsErrorWhenUnderlyingTcpServerEmitsError() $server = new Server(0); $ref = new \ReflectionProperty($server, 'server'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $tcp = $ref->getvalue($server); $error = new \RuntimeException(); diff --git a/tests/SocketServerTest.php b/tests/SocketServerTest.php index cd53f75..d24154d 100644 --- a/tests/SocketServerTest.php +++ b/tests/SocketServerTest.php @@ -18,11 +18,15 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $socket->close(); $ref = new \ReflectionProperty($socket, 'server'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $tcp = $ref->getValue($socket); $ref = new \ReflectionProperty($tcp, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($tcp); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); @@ -151,7 +155,9 @@ public function testEmitsErrorWhenUnderlyingTcpServerEmitsError() $socket = new SocketServer('127.0.0.1:0', array()); $ref = new \ReflectionProperty($socket, 'server'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $tcp = $ref->getvalue($socket); $error = new \RuntimeException(); diff --git a/tests/TcpConnectorTest.php b/tests/TcpConnectorTest.php index 8e5f138..5b1016d 100644 --- a/tests/TcpConnectorTest.php +++ b/tests/TcpConnectorTest.php @@ -23,7 +23,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new TcpConnector(); $ref = new \ReflectionProperty($connector, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connector); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/TcpServerTest.php b/tests/TcpServerTest.php index 0c930c8..e2aa2fe 100644 --- a/tests/TcpServerTest.php +++ b/tests/TcpServerTest.php @@ -37,7 +37,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $server = new TcpServer(0); $ref = new \ReflectionProperty($server, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($server); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/TimeoutConnectorTest.php b/tests/TimeoutConnectorTest.php index eab5942..df5a240 100644 --- a/tests/TimeoutConnectorTest.php +++ b/tests/TimeoutConnectorTest.php @@ -24,7 +24,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new TimeoutConnector($base, 0.01); $ref = new \ReflectionProperty($connector, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connector); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/UnixConnectorTest.php b/tests/UnixConnectorTest.php index 5bcd7a5..fcb57c5 100644 --- a/tests/UnixConnectorTest.php +++ b/tests/UnixConnectorTest.php @@ -30,7 +30,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $connector = new UnixConnector(); $ref = new \ReflectionProperty($connector, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($connector); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop); diff --git a/tests/UnixServerTest.php b/tests/UnixServerTest.php index 26f28d9..f962b92 100644 --- a/tests/UnixServerTest.php +++ b/tests/UnixServerTest.php @@ -43,7 +43,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically() $server = new UnixServer($this->uds); $ref = new \ReflectionProperty($server, 'loop'); - $ref->setAccessible(true); + if (\PHP_VERSION_ID < 80100) { + $ref->setAccessible(true); + } $loop = $ref->getValue($server); $this->assertInstanceOf('React\EventLoop\LoopInterface', $loop);