Skip to content

Commit 84e1373

Browse files
committed
Update test environment to report failed assertions
1 parent 1bc5337 commit 84e1373

File tree

6 files changed

+37
-6
lines changed

6 files changed

+37
-6
lines changed

.github/workflows/ci.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
with:
3333
php-version: ${{ matrix.php }}
3434
coverage: xdebug
35+
ini-file: development
3536
- run: composer install
3637
- run: vendor/bin/phpunit --coverage-text
3738
if: ${{ matrix.php >= 7.3 }}
@@ -57,7 +58,7 @@ jobs:
5758
continue-on-error: true
5859
steps:
5960
- uses: actions/checkout@v3
60-
- run: cp `which composer` composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM
61+
- run: cp "$(which composer)" composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM
6162
- name: Run hhvm composer.phar install
6263
uses: docker://hhvm/hhvm:3.30-lts-latest
6364
with:

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"react/stream": "^1.2"
3636
},
3737
"require-dev": {
38-
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
38+
"phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
3939
"react/async": "^4 || ^3 || ^2",
4040
"react/promise-stream": "^1.4"
4141
},

phpunit.xml.dist

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22

3-
<!-- PHPUnit configuration file with new format for PHPUnit 9.3+ -->
4-
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5-
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
3+
<!-- PHPUnit configuration file with new format for PHPUnit 9.5+ -->
4+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
66
bootstrap="vendor/autoload.php"
77
cacheResult="false"
88
colors="true"
@@ -17,4 +17,12 @@
1717
<directory>./src/</directory>
1818
</include>
1919
</coverage>
20+
<php>
21+
<ini name="error_reporting" value="-1" />
22+
<!-- Evaluate assertions, requires running with "php -d zend.assertions=1 vendor/bin/phpunit" -->
23+
<!-- <ini name="zend.assertions=1" value="1" /> -->
24+
<ini name="assert.active" value="1" />
25+
<ini name="assert.exception" value="1" />
26+
<ini name="assert.bail" value="0" />
27+
</php>
2028
</phpunit>

phpunit.xml.legacy

+8
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,12 @@
1515
<directory>./src/</directory>
1616
</whitelist>
1717
</filter>
18+
<php>
19+
<ini name="error_reporting" value="-1" />
20+
<!-- Evaluate assertions, requires running with "php -d zend.assertions=1 vendor/bin/phpunit" -->
21+
<!-- <ini name="zend.assertions=1" value="1" /> -->
22+
<ini name="assert.active" value="1" />
23+
<ini name="assert.exception" value="1" />
24+
<ini name="assert.bail" value="0" />
25+
</php>
1826
</phpunit>

tests/IntegrationTest.php

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace React\Tests\Socket;
44

55
use React\Dns\Resolver\Factory as ResolverFactory;
6+
use React\Socket\ConnectionInterface;
67
use React\Socket\Connector;
78
use React\Socket\DnsConnector;
89
use React\Socket\SecureConnector;
@@ -19,6 +20,7 @@ public function gettingStuffFromGoogleShouldWork()
1920
$connector = new Connector(array());
2021

2122
$conn = \React\Async\await($connector->connect('google.com:80'));
23+
assert($conn instanceof ConnectionInterface);
2224

2325
$this->assertContainsString(':80', $conn->getRemoteAddress());
2426
$this->assertNotEquals('google.com:80', $conn->getRemoteAddress());
@@ -40,6 +42,7 @@ public function gettingEncryptedStuffFromGoogleShouldWork()
4042
$secureConnector = new Connector(array());
4143

4244
$conn = \React\Async\await($secureConnector->connect('tls://google.com:443'));
45+
assert($conn instanceof ConnectionInterface);
4346

4447
$conn->write("GET / HTTP/1.0\r\n\r\n");
4548

@@ -66,6 +69,7 @@ public function gettingEncryptedStuffFromGoogleShouldWorkIfHostIsResolvedFirst()
6669
);
6770

6871
$conn = \React\Async\await($connector->connect('google.com:443'));
72+
assert($conn instanceof ConnectionInterface);
6973

7074
$conn->write("GET / HTTP/1.0\r\n\r\n");
7175

@@ -80,6 +84,7 @@ public function gettingPlaintextStuffFromEncryptedGoogleShouldNotWork()
8084
$connector = new Connector(array());
8185

8286
$conn = \React\Async\await($connector->connect('google.com:443'));
87+
assert($conn instanceof ConnectionInterface);
8388

8489
$this->assertContainsString(':443', $conn->getRemoteAddress());
8590
$this->assertNotEquals('google.com:443', $conn->getRemoteAddress());
@@ -377,6 +382,7 @@ public function testSelfSignedResolvesIfVerificationIsDisabled()
377382
));
378383

379384
$conn = \React\Async\await(\React\Promise\Timer\timeout($connector->connect('tls://self-signed.badssl.com:443'), self::TIMEOUT));
385+
assert($conn instanceof ConnectionInterface);
380386
$conn->close();
381387

382388
// if we reach this, then everything is good

tests/TestCase.php

+9-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ protected function buffer(ReadableStreamInterface $stream, $timeout)
7575
return '';
7676
}
7777

78-
return \React\Async\await(\React\Promise\Timer\timeout(new Promise(
78+
$buffer = \React\Async\await(\React\Promise\Timer\timeout(new Promise(
7979
function ($resolve, $reject) use ($stream) {
8080
$buffer = '';
8181
$stream->on('data', function ($chunk) use (&$buffer) {
@@ -93,6 +93,14 @@ function () use ($stream) {
9393
throw new \RuntimeException();
9494
}
9595
), $timeout));
96+
97+
// let loop tick for reactphp/async v4 to clean up any remaining stream resources
98+
// @link https://github.com/reactphp/async/pull/65 reported upstream // TODO remove me once merged
99+
if (function_exists('React\Async\async')) {
100+
\React\Async\await(\React\Promise\Timer\sleep(0));
101+
}
102+
103+
return $buffer;
96104
}
97105

98106
public function setExpectedException($exception, $exceptionMessage = '', $exceptionCode = null)

0 commit comments

Comments
 (0)