Skip to content
Permalink
Browse files

test: remove common.port from test-tls-securepair-client

OpenSSL s_server accepts port 0 as an indicator to use an open port
provided by the operating system. Use that instead of common.PORT in the
test.

Remove 500ms delay added in 8e46167.
Hopefully the race condition in OpenSSL s_server has been fixed and/or
the change to port 0 means that the server is listening by the time
the ACCEPT text is printed and the setTimeout() is no longer necessary.

PR-URL: #32024
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
  • Loading branch information
Trott authored and MylesBorins committed Feb 29, 2020
1 parent 6b44df2 commit be9081755816d2fb66d51dafc554c1407e7860a2
Showing with 7 additions and 6 deletions.
  1. +7 −6 test/sequential/test-tls-securepair-client.js
@@ -62,7 +62,7 @@ function test(keyPath, certPath, check, next) {
const cert = fixtures.readSync(certPath).toString();

const server = spawn(common.opensslCli, ['s_server',
'-accept', common.PORT,
'-accept', 0,
'-cert', fixtures.path(certPath),
'-key', fixtures.path(keyPath)]);
server.stdout.pipe(process.stdout);
@@ -78,10 +78,11 @@ function test(keyPath, certPath, check, next) {
console.log(state);
switch (state) {
case 'WAIT-ACCEPT':
if (/ACCEPT/.test(serverStdoutBuffer)) {
// Give s_server half a second to start up.
setTimeout(startClient, 500);
const matches = serverStdoutBuffer.match(/ACCEPT .*?:(\d+)/);
if (matches) {
const port = matches[1];
state = 'WAIT-HELLO';
startClient(port);
}
break;

@@ -117,7 +118,7 @@ function test(keyPath, certPath, check, next) {
});


function startClient() {
function startClient(port) {
const s = new net.Stream();

const sslcontext = tls.createSecureContext({ key, cert });
@@ -131,7 +132,7 @@ function test(keyPath, certPath, check, next) {
pair.encrypted.pipe(s);
s.pipe(pair.encrypted);

s.connect(common.PORT);
s.connect(port);

s.on('connect', function() {
console.log('client connected');

0 comments on commit be90817

Please sign in to comment.
You can’t perform that action at this time.