diff --git a/tests/FunctionalResolverTest.php b/tests/FunctionalResolverTest.php index fab08332..2e8690dd 100644 --- a/tests/FunctionalResolverTest.php +++ b/tests/FunctionalResolverTest.php @@ -183,8 +183,9 @@ public function testResolveShouldNotCauseGarbageReferencesWhenUsingInvalidNamese $factory = new Factory(); $this->resolver = $factory->create('255.255.255.255'); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->resolver->resolve('google.com'); @@ -204,8 +205,9 @@ public function testResolveCachedShouldNotCauseGarbageReferencesWhenUsingInvalid $factory = new Factory(); $this->resolver = $factory->createCached('255.255.255.255'); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->resolver->resolve('google.com'); @@ -225,8 +227,9 @@ public function testCancelResolveShouldNotCauseGarbageReferences() $factory = new Factory(); $this->resolver = $factory->create('127.0.0.1'); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->resolver->resolve('google.com'); $promise->cancel(); @@ -244,8 +247,9 @@ public function testCancelResolveCachedShouldNotCauseGarbageReferences() $factory = new Factory(); $this->resolver = $factory->createCached('127.0.0.1'); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->resolver->resolve('google.com'); $promise->cancel(); diff --git a/tests/Query/CoopExecutorTest.php b/tests/Query/CoopExecutorTest.php index c43c273d..8fd191a8 100644 --- a/tests/Query/CoopExecutorTest.php +++ b/tests/Query/CoopExecutorTest.php @@ -229,8 +229,9 @@ public function testCancelQueryShouldNotCauseGarbageReferences() $base->expects($this->once())->method('query')->willReturn($deferred->promise()); $connector = new CoopExecutor($base); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('reactphp.org', Message::TYPE_A, Message::CLASS_IN); diff --git a/tests/Query/FallbackExecutorTest.php b/tests/Query/FallbackExecutorTest.php index 10735c3a..b0dc053c 100644 --- a/tests/Query/FallbackExecutorTest.php +++ b/tests/Query/FallbackExecutorTest.php @@ -184,8 +184,9 @@ public function testCancelQueryShouldNotCauseGarbageReferencesWhenCancellingPrim $executor = new FallbackExecutor($primary, $secondary); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('reactphp.org', Message::TYPE_A, Message::CLASS_IN); @@ -210,8 +211,9 @@ public function testCancelQueryShouldNotCauseGarbageReferencesWhenCancellingSeco $executor = new FallbackExecutor($primary, $secondary); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('reactphp.org', Message::TYPE_A, Message::CLASS_IN); diff --git a/tests/Query/RetryExecutorTest.php b/tests/Query/RetryExecutorTest.php index 9de9c04b..93b46d50 100644 --- a/tests/Query/RetryExecutorTest.php +++ b/tests/Query/RetryExecutorTest.php @@ -226,8 +226,9 @@ public function queryShouldNotCauseGarbageReferencesOnSuccess() $retryExecutor = new RetryExecutor($executor, 0); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN); $retryExecutor->query($query); @@ -254,8 +255,9 @@ public function queryShouldNotCauseGarbageReferencesOnTimeoutErrors() $retryExecutor = new RetryExecutor($executor, 0); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN); $promise = $retryExecutor->query($query); @@ -288,8 +290,9 @@ public function queryShouldNotCauseGarbageReferencesOnCancellation() $retryExecutor = new RetryExecutor($executor, 0); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN); $promise = $retryExecutor->query($query); @@ -320,8 +323,9 @@ public function queryShouldNotCauseGarbageReferencesOnNonTimeoutErrors() $retryExecutor = new RetryExecutor($executor, 2); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $query = new Query('igor.io', Message::TYPE_A, Message::CLASS_IN); $promise = $retryExecutor->query($query); diff --git a/tests/Query/SelectiveTransportExecutorTest.php b/tests/Query/SelectiveTransportExecutorTest.php index 6b1cc35b..c38dbeb2 100644 --- a/tests/Query/SelectiveTransportExecutorTest.php +++ b/tests/Query/SelectiveTransportExecutorTest.php @@ -162,8 +162,9 @@ public function testCancelPromiseShouldNotCreateAnyGarbageReferences() throw new \RuntimeException('Cancelled'); })); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->executor->query($query); $promise->cancel(); @@ -195,8 +196,9 @@ public function testCancelPromiseAfterTruncatedResponseShouldNotCreateAnyGarbage throw new \RuntimeException('Cancelled'); })); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->executor->query($query); $deferred->reject(new \RuntimeException('', defined('SOCKET_EMSGSIZE') ? SOCKET_EMSGSIZE : 90)); @@ -222,8 +224,9 @@ public function testRejectedPromiseAfterTruncatedResponseShouldNotCreateAnyGarba ->with($query) ->willReturn(\React\Promise\reject(new \RuntimeException())); - gc_collect_cycles(); - gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on + while (gc_collect_cycles()) { + // collect all garbage cycles + } $promise = $this->executor->query($query);