Skip to content

Commit 24c7fbe

Browse files
committed
Use stunnel to test SecureConnector on Travis
1 parent b96d107 commit 24c7fbe

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

.travis.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ matrix:
1212

1313
before_script:
1414
- composer install --dev --prefer-source
15+
- sudo apt-get install -y openssl stunnel
16+
- openssl genrsa 1024 > stunnel.key
17+
- openssl req -batch -new -x509 -nodes -sha1 -days 365 -key stunnel.key > stunnel.cert
18+
- cat stunnel.key stunnel.cert > stunnel.pem
19+
- sudo stunnel -f -p stunnel.pem -d 6001 -r 6000 &
1520

1621
script:
17-
- phpunit --coverage-text
22+
- phpunit --coverage-text --verbose

tests/SecureConnectorTest.php

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ public function testA()
3737
$resolver = $dnsResolverFactory->createCached('8.8.8.8', $loop);
3838

3939
$connector = new Connector($loop, $resolver);
40+
41+
// verify server is listening by creating an unencrypted connection once
42+
$promise = $connector->create('127.0.0.1', 6001);
43+
try {
44+
$client = $this->waitFor($promise, $loop);
45+
/* @var $client Stream */
46+
$client->close();
47+
} catch (\Exception $e) {
48+
$this->markTestSkipped('stunnel not reachable?');
49+
}
50+
51+
$this->assertEquals(0, $connected);
52+
4053
$secureConnector = new SecureConnector($connector, $loop);
4154

4255
$promise = $secureConnector->create('127.0.0.1', 6001);
@@ -76,14 +89,23 @@ public function testA()
7689
private function waitFor(PromiseInterface $promise, LoopInterface $loop)
7790
{
7891
$ret = null;
79-
$promise->then(function ($value) use (&$ret) {
80-
$ret = $value;
81-
});
92+
$promise->then(
93+
function ($value) use (&$ret) {
94+
$ret = $value;
95+
},
96+
function ($error) use (&$ret) {
97+
$ret = $error;
98+
}
99+
);
82100

83101
while ($ret === null) {
84102
$loop->tick();
85103
}
86104

105+
if ($ret instanceof \Exception) {
106+
throw $ret;
107+
}
108+
87109
return $ret;
88110
}
89111
}

0 commit comments

Comments
 (0)