From fefc4dbba7ba7a892359e3840bdf2590a4ecd432 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 9 May 2019 16:36:08 -0700 Subject: [PATCH] Add resolver tests --- package.json | 2 +- .../grpc-native-core/test/resolver_test.js | 69 +++++++++++++++++++ run-tests.bat | 1 + 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 packages/grpc-native-core/test/resolver_test.js diff --git a/package.json b/package.json index 00c647ef..e910715a 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "all": true }, "scripts": { - "test": "nyc gulp test", + "test": "nyc gulp test && GRPC_DNS_RESOLVER=ares nyc gulp nativeTestOnly", "coverage": "nyc report --reporter=text-lcov | coveralls" } } diff --git a/packages/grpc-native-core/test/resolver_test.js b/packages/grpc-native-core/test/resolver_test.js new file mode 100644 index 00000000..ea6324ba --- /dev/null +++ b/packages/grpc-native-core/test/resolver_test.js @@ -0,0 +1,69 @@ +/* + * + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +'use strict'; + +var assert = require('assert'); +var _ = require('lodash'); + +var grpc = require('..'); + +const insecureCreds = grpc.credentials.createInsecure(); + +describe('Name resolver', function() { + let server; + let port; + before(function(done) { + const insecureServerCreds = grpc.ServerCredentials.createInsecure(); + server = new grpc.Server(); + server.bindAsync('localhost:0', insecureServerCreds, (error, portVal) => { + port = portVal; + done(error); + }); + }); + after(function() { + server.forceShutdown(); + }); + it('Should resolve a target to IPv4 addresses', function(done) { + const client = new grpc.Client(`loopback4.unittest.grpc.io:${port}`, insecureCreds); + let deadline = new Date(); + deadline.setSeconds(deadline.getSeconds() + 1); + client.waitForReady(deadline, (error) => { + assert.ifError(error); + done(); + }); + }); + it('Should resolve a target to IPv6 addresses', function(done) { + const client = new grpc.Client(`loopback6.unittest.grpc.io:${port}`, insecureCreds); + let deadline = new Date(); + deadline.setSeconds(deadline.getSeconds() + 1); + client.waitForReady(deadline, (error) => { + assert.ifError(error); + done(); + }); + }); + it('Should resolve a target to IPv4 and IPv6 addresses', function(done) { + const client = new grpc.Client(`loopback46.unittest.grpc.io:${port}`, insecureCreds); + let deadline = new Date(); + deadline.setSeconds(deadline.getSeconds() + 1); + client.waitForReady(deadline, (error) => { + assert.ifError(error); + done(); + }); + }); +}); \ No newline at end of file diff --git a/run-tests.bat b/run-tests.bat index fa2b7183..d2484ae3 100644 --- a/run-tests.bat +++ b/run-tests.bat @@ -56,6 +56,7 @@ for %%v in (6 7 8 9 10 11 12) do ( call .\node_modules\.bin\gulp cleanAll || SET FAILED=1 call .\node_modules\.bin\gulp setupWindows || SET FAILED=1 call .\node_modules\.bin\gulp test || SET FAILED=1 + cmd.exe /c "SET GRPC_DNS_RESOLVER=ares& call .\node_modules\.bin\gulp nativeTestOnly" || SET FAILED=1 ) node merge_kokoro_logs.js