mirror of https://github.com/grpc/grpc-node.git
Merge github.com:grpc/grpc into we-dont-need-no-backup
This commit is contained in:
commit
19dba77736
|
@ -263,6 +263,19 @@ function cancelAfterFirstResponse(client, done) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function timeoutOnSleepingServer(client, done) {
|
||||||
|
var deadline = new Date();
|
||||||
|
deadline.setMilliseconds(deadline.getMilliseconds() + 1);
|
||||||
|
var call = client.fullDuplexCall(null, deadline);
|
||||||
|
call.write({
|
||||||
|
payload: {body: zeroBuffer(27182)}
|
||||||
|
});
|
||||||
|
call.on('error', function(error) {
|
||||||
|
assert.strictEqual(error.code, grpc.status.DEADLINE_EXCEEDED);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run one of the authentication tests.
|
* Run one of the authentication tests.
|
||||||
* @param {string} expected_user The expected username in the response
|
* @param {string} expected_user The expected username in the response
|
||||||
|
@ -271,7 +284,7 @@ function cancelAfterFirstResponse(client, done) {
|
||||||
* @param {function} done Callback to call when the test is completed. Included
|
* @param {function} done Callback to call when the test is completed. Included
|
||||||
* primarily for use with mocha
|
* primarily for use with mocha
|
||||||
*/
|
*/
|
||||||
function authTest(expected_user, client, scope, done) {
|
function authTest(expected_user, scope, client, done) {
|
||||||
(new GoogleAuth()).getApplicationDefault(function(err, credential) {
|
(new GoogleAuth()).getApplicationDefault(function(err, credential) {
|
||||||
assert.ifError(err);
|
assert.ifError(err);
|
||||||
if (credential.createScopedRequired() && scope) {
|
if (credential.createScopedRequired() && scope) {
|
||||||
|
@ -315,6 +328,7 @@ var test_cases = {
|
||||||
empty_stream: emptyStream,
|
empty_stream: emptyStream,
|
||||||
cancel_after_begin: cancelAfterBegin,
|
cancel_after_begin: cancelAfterBegin,
|
||||||
cancel_after_first_response: cancelAfterFirstResponse,
|
cancel_after_first_response: cancelAfterFirstResponse,
|
||||||
|
timeout_on_sleeping_server: timeoutOnSleepingServer,
|
||||||
compute_engine_creds: _.partial(authTest, COMPUTE_ENGINE_USER, null),
|
compute_engine_creds: _.partial(authTest, COMPUTE_ENGINE_USER, null),
|
||||||
service_account_creds: _.partial(authTest, AUTH_USER, AUTH_SCOPE),
|
service_account_creds: _.partial(authTest, AUTH_USER, AUTH_SCOPE),
|
||||||
jwt_token_creds: _.partial(authTest, AUTH_USER, null)
|
jwt_token_creds: _.partial(authTest, AUTH_USER, null)
|
||||||
|
|
|
@ -223,7 +223,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
|
||||||
emitter.cancel = function cancel() {
|
emitter.cancel = function cancel() {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
};
|
};
|
||||||
this.updateMetadata(metadata, function(error, metadata) {
|
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
callback(error);
|
callback(error);
|
||||||
|
@ -289,7 +289,7 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientWritableStream(call, serialize);
|
var stream = new ClientWritableStream(call, serialize);
|
||||||
this.updateMetadata(metadata, function(error, metadata) {
|
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
callback(error);
|
callback(error);
|
||||||
|
@ -360,7 +360,7 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientReadableStream(call, deserialize);
|
var stream = new ClientReadableStream(call, deserialize);
|
||||||
this.updateMetadata(metadata, function(error, metadata) {
|
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
stream.emit('error', error);
|
stream.emit('error', error);
|
||||||
|
@ -427,7 +427,7 @@ function makeBidiStreamRequestFunction(method, serialize, deserialize) {
|
||||||
metadata = {};
|
metadata = {};
|
||||||
}
|
}
|
||||||
var stream = new ClientDuplexStream(call, serialize, deserialize);
|
var stream = new ClientDuplexStream(call, serialize, deserialize);
|
||||||
this.updateMetadata(metadata, function(error, metadata) {
|
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||||
if (error) {
|
if (error) {
|
||||||
call.cancel();
|
call.cancel();
|
||||||
stream.emit('error', error);
|
stream.emit('error', error);
|
||||||
|
@ -503,10 +503,11 @@ function makeClientConstructor(methods, serviceName) {
|
||||||
callback(null, metadata);
|
callback(null, metadata);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
this.server_address = address.replace(/\/$/, '');
|
this.server_address = address.replace(/\/$/, '');
|
||||||
this.channel = new grpc.Channel(address, options);
|
this.channel = new grpc.Channel(address, options);
|
||||||
this.updateMetadata = _.partial(updateMetadata,
|
this.auth_uri = this.server_address + '/' + serviceName;
|
||||||
this.server_address + '/' + serviceName);
|
this.updateMetadata = updateMetadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
_.each(methods, function(attrs, name) {
|
_.each(methods, function(attrs, name) {
|
||||||
|
|
|
@ -86,4 +86,8 @@ describe('Interop tests', function() {
|
||||||
interop_client.runTest(port, name_override, 'cancel_after_first_response',
|
interop_client.runTest(port, name_override, 'cancel_after_first_response',
|
||||||
true, true, done);
|
true, true, done);
|
||||||
});
|
});
|
||||||
|
it('should pass timeout_on_sleeping_server', function(done) {
|
||||||
|
interop_client.runTest(port, name_override, 'timeout_on_sleeping_server',
|
||||||
|
true, true, done);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue