diff --git a/test/api/connectivity_test.js b/test/api/connectivity_test.js index 4051777a..a3cd383b 100644 --- a/test/api/connectivity_test.js +++ b/test/api/connectivity_test.js @@ -62,14 +62,18 @@ describe('Reconnection', function() { let server1; let server2; let port; - before(function() { + before(function(done) { server1 = new serverGrpc.Server(); server1.addService(TestService, serviceImpl); server2 = new serverGrpc.Server(); server2.addService(TestService, serviceImpl); - port = server1.bind('localhost:0', serverCreds); - server1.start(); - client = new TestServiceClient(`localhost:${port}`, clientCreds); + server1.bindAsync('localhost:0', serverCreds, (err, _port) => { + assert.ifError(err); + server1.start(); + port = _port; + client = new TestServiceClient(`localhost:${port}`, clientCreds); + done(); + }); }); after(function() { server1.forceShutdown(); @@ -78,6 +82,7 @@ describe('Reconnection', function() { it('Should end with either OK or UNAVAILABLE when querying a server that is shutting down', function(done) { let pendingCalls = 0; let testDone = false; + let callInterval; function maybeDone() { if (testDone && pendingCalls === 0) { done(); @@ -86,16 +91,18 @@ describe('Reconnection', function() { client.unary({}, (err, data) => { assert.ifError(err); server1.tryShutdown(() => { - server2.bind(`localhost:${port}`, serverCreds); - server2.start(); - client.unary({}, (err, data) => { + server2.bindAsync(`localhost:${port}`, serverCreds, (err) => { assert.ifError(err); - clearInterval(callInterval); - testDone = true; - maybeDone(); + server2.start(); + client.unary({}, (err, data) => { + assert.ifError(err); + clearInterval(callInterval); + testDone = true; + maybeDone(); + }); }); }); - let callInterval = setInterval(() => { + callInterval = setInterval(() => { pendingCalls += 1; client.unary({}, (err, data) => { pendingCalls -= 1; @@ -107,4 +114,4 @@ describe('Reconnection', function() { }, 0); }); }); -}); \ No newline at end of file +}); diff --git a/test/api/error_test.js b/test/api/error_test.js index 33965eee..8c07c662 100644 --- a/test/api/error_test.js +++ b/test/api/error_test.js @@ -37,7 +37,7 @@ describe('Client malformed response handling', function() { var server; var client; var badArg = Buffer.from([0xFF]); - before(function() { + before(function(done) { var malformed_test_service = { unary: { path: '/TestService/Unary', @@ -93,9 +93,12 @@ describe('Client malformed response handling', function() { }); } }); - var port = server.bind('localhost:0', serverInsecureCreds); - client = new TestServiceClient('localhost:' + port, clientInsecureCreds); - server.start(); + server.bindAsync('localhost:0', serverInsecureCreds, (err, port) => { + assert.ifError(err); + client = new TestServiceClient('localhost:' + port, clientInsecureCreds); + server.start(); + done(); + }); }); after(function() { server.forceShutdown(); @@ -141,7 +144,7 @@ describe('Client malformed response handling', function() { } var client; var server; - before(function() { + before(function(done) { var malformed_test_service = { unary: { path: '/TestService/Unary', @@ -197,9 +200,12 @@ describe('Client malformed response handling', function() { }); } }); - var port = server.bind('localhost:0', serverInsecureCreds); - client = new TestServiceClient('localhost:' + port, clientInsecureCreds); - server.start(); + server.bindAsync('localhost:0', serverInsecureCreds, (err, port) => { + assert.ifError(err); + client = new TestServiceClient('localhost:' + port, clientInsecureCreds); + server.start(); + done(); + }); }); after(function() { server.forceShutdown(); @@ -244,7 +250,7 @@ describe('Client malformed response handling', function() { var client; var server; var port; - before(function() { + before(function(done) { server = new serverGrpc.Server(); var trailer_metadata = new serverGrpc.Metadata(); trailer_metadata.add('trailer-present', 'yes'); @@ -323,9 +329,13 @@ describe('Client malformed response handling', function() { }); } }); - port = server.bind('localhost:0', serverInsecureCreds); - client = new TestServiceClient('localhost:' + port, clientInsecureCreds); - server.start(); + server.bindAsync('localhost:0', serverInsecureCreds, (err, _port) => { + assert.ifError(err); + port = _port; + client = new TestServiceClient('localhost:' + port, clientInsecureCreds); + server.start(); + done(); + }); }); after(function() { server.forceShutdown(); diff --git a/test/api/interop_helper/server.js b/test/api/interop_helper/server.js index 7d6536a1..984aa896 100644 --- a/test/api/interop_helper/server.js +++ b/test/api/interop_helper/server.js @@ -18,12 +18,15 @@ 'use strict'; +const assert = require('assert'); const interopServer = require('../../interop/interop_server.js'); -const serverObj = interopServer.getServer(0, true); -serverObj.server.start(); -process.send({port: serverObj.port}); -// The only message from the driver should be to stop the server -process.on('message', (message) => { - serverObj.server.forceShutdown(); +interopServer.getServer(0, true, (err, serverObj) => { + assert.ifError(err); + serverObj.server.start(); + process.send({port: serverObj.port}); + // The only message from the driver should be to stop the server + process.on('message', (message) => { + serverObj.server.forceShutdown(); + }); }); diff --git a/test/api/metadata_test.js b/test/api/metadata_test.js index 3499ebcd..16d7216b 100644 --- a/test/api/metadata_test.js +++ b/test/api/metadata_test.js @@ -58,8 +58,7 @@ const clientOptions = { describe('Sending metadata', function() { let server; - let port; - before(function() { + before(function(done) { server = new serverGrpc.Server(); server.addService(TestService, { unary: function(call, cb) { @@ -81,9 +80,12 @@ describe('Sending metadata', function() { }); } }); - port = server.bind('localhost:0', serverCreds); - server.start(); - client = new TestServiceClient(`localhost:${port}`, combinedClientCreds, clientOptions); + server.bindAsync('localhost:0', serverCreds, (err, port) => { + assert.ifError(err); + server.start(); + client = new TestServiceClient(`localhost:${port}`, combinedClientCreds, clientOptions); + done(); + }); }); after(function() { server.forceShutdown(); @@ -98,4 +100,4 @@ describe('Sending metadata', function() { }); }); }); -}); \ No newline at end of file +}); diff --git a/test/interop/interop_server.js b/test/interop/interop_server.js index a924f20b..1f00af20 100644 --- a/test/interop/interop_server.js +++ b/test/interop/interop_server.js @@ -18,6 +18,7 @@ 'use strict'; +var assert = require('assert'); var fs = require('fs'); var path = require('path'); var _ = require('lodash'); @@ -199,10 +200,10 @@ function handleHalfDuplex(call) { * Get a server object bound to the given port * @param {string} port Port to which to bind * @param {boolean} tls Indicates that the bound port should use TLS - * @return {{server: Server, port: number}} Server object bound to the support, - * and port number that the server is bound to + * @param {function(Error, {{server: Server, port: number}})} callback Callback + * to call with result or error */ -function getServer(port, tls) { +function getServer(port, tls, callback) { // TODO(mlumish): enable TLS functionality var options = {}; var server_creds; @@ -227,8 +228,13 @@ function getServer(port, tls) { fullDuplexCall: handleFullDuplex, halfDuplexCall: handleHalfDuplex }); - var port_num = server.bind('0.0.0.0:' + port, server_creds); - return {server: server, port: port_num}; + server.bindAsync('0.0.0.0:' + port, server_creds, (err, port_num) => { + if (err) { + return callback(err); + } + + callback(null, {server: server, port: port_num}); + }); } if (require.main === module) { @@ -236,9 +242,11 @@ if (require.main === module) { var argv = parseArgs(process.argv, { string: ['port', 'use_tls'] }); - var server_obj = getServer(argv.port, argv.use_tls === 'true'); - console.log('Server attaching to port ' + argv.port); - server_obj.server.start(); + getServer(argv.port, argv.use_tls === 'true', (err, server_obj) => { + assert.ifError(err); + console.log('Server attaching to port ' + argv.port); + server_obj.server.start(); + }); } /** diff --git a/test/performance/benchmark_server.js b/test/performance/benchmark_server.js index 3b5ef625..013f8181 100644 --- a/test/performance/benchmark_server.js +++ b/test/performance/benchmark_server.js @@ -23,6 +23,7 @@ 'use strict'; +var assert = require('assert'); var fs = require('fs'); var path = require('path'); var EventEmitter = require('events'); @@ -129,7 +130,7 @@ function BenchmarkServer(host, port, tls, generic, response_size) { }; var server = new grpc.Server(options); - this.port = server.bind(host + ':' + port, server_creds); + if (generic) { server.addService(genericService, { unaryCall: makeUnaryGenericCall(response_size), @@ -142,6 +143,9 @@ function BenchmarkServer(host, port, tls, generic, response_size) { }); } this.server = server; + this.host = host; + this.port = port; + this.creds = server_creds; } util.inherits(BenchmarkServer, EventEmitter); @@ -150,10 +154,13 @@ util.inherits(BenchmarkServer, EventEmitter); * Start the benchmark server. */ BenchmarkServer.prototype.start = function() { - this.server.start(); - this.last_wall_time = process.hrtime(); - this.last_usage = process.cpuUsage(); - this.emit('started'); + this.server.bindAsync(this.host + ':' + this.port, this.creds, (err) => { + assert.ifError(err); + this.server.start(); + this.last_wall_time = process.hrtime(); + this.last_usage = process.cpuUsage(); + this.emit('started'); + }); }; /** diff --git a/test/performance/worker.js b/test/performance/worker.js index 2376ef52..df1fb05a 100644 --- a/test/performance/worker.js +++ b/test/performance/worker.js @@ -18,6 +18,7 @@ 'use strict'; +var assert = require('assert'); var console = require('console'); var WorkerServiceImpl = require('./worker_service_impl'); @@ -32,16 +33,21 @@ var protoPackage = protoLoader.loadSync( includeDirs: [__dirname + '/../../packages/grpc-native-core/deps/grpc']}); var serviceProto = grpc.loadPackageDefinition(protoPackage).grpc.testing; -function runServer(port, benchmark_impl) { +function runServer(port, benchmark_impl, callback) { var server_creds = grpc.ServerCredentials.createInsecure(); var server = new grpc.Server(); server.addService(serviceProto.WorkerService.service, new WorkerServiceImpl(benchmark_impl, server)); var address = '0.0.0.0:' + port; - server.bind(address, server_creds); - server.start(); - console.log('running QPS worker on %s', address); - return server; + server.bindAsync(address, server_creds, (err) => { + if (err) { + return callback(err); + } + + server.start(); + console.log('running QPS worker on %s', address); + callback(null, server); + }); } if (require.main === module) { @@ -50,7 +56,9 @@ if (require.main === module) { var argv = parseArgs(process.argv, { string: ['driver_port', 'benchmark_impl'] }); - runServer(argv.driver_port, argv.benchmark_impl); + runServer(argv.driver_port, argv.benchmark_impl, (err, server) => { + assert.ifError(err); + }); } exports.runServer = runServer;