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.
|
||||
* @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
|
||||
* 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) {
|
||||
assert.ifError(err);
|
||||
if (credential.createScopedRequired() && scope) {
|
||||
|
@ -315,6 +328,7 @@ var test_cases = {
|
|||
empty_stream: emptyStream,
|
||||
cancel_after_begin: cancelAfterBegin,
|
||||
cancel_after_first_response: cancelAfterFirstResponse,
|
||||
timeout_on_sleeping_server: timeoutOnSleepingServer,
|
||||
compute_engine_creds: _.partial(authTest, COMPUTE_ENGINE_USER, null),
|
||||
service_account_creds: _.partial(authTest, AUTH_USER, AUTH_SCOPE),
|
||||
jwt_token_creds: _.partial(authTest, AUTH_USER, null)
|
||||
|
|
|
@ -223,7 +223,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
|
|||
emitter.cancel = function cancel() {
|
||||
call.cancel();
|
||||
};
|
||||
this.updateMetadata(metadata, function(error, metadata) {
|
||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||
if (error) {
|
||||
call.cancel();
|
||||
callback(error);
|
||||
|
@ -289,7 +289,7 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
|
|||
metadata = {};
|
||||
}
|
||||
var stream = new ClientWritableStream(call, serialize);
|
||||
this.updateMetadata(metadata, function(error, metadata) {
|
||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||
if (error) {
|
||||
call.cancel();
|
||||
callback(error);
|
||||
|
@ -360,7 +360,7 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) {
|
|||
metadata = {};
|
||||
}
|
||||
var stream = new ClientReadableStream(call, deserialize);
|
||||
this.updateMetadata(metadata, function(error, metadata) {
|
||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||
if (error) {
|
||||
call.cancel();
|
||||
stream.emit('error', error);
|
||||
|
@ -427,7 +427,7 @@ function makeBidiStreamRequestFunction(method, serialize, deserialize) {
|
|||
metadata = {};
|
||||
}
|
||||
var stream = new ClientDuplexStream(call, serialize, deserialize);
|
||||
this.updateMetadata(metadata, function(error, metadata) {
|
||||
this.updateMetadata(this.auth_uri, metadata, function(error, metadata) {
|
||||
if (error) {
|
||||
call.cancel();
|
||||
stream.emit('error', error);
|
||||
|
@ -503,10 +503,11 @@ function makeClientConstructor(methods, serviceName) {
|
|||
callback(null, metadata);
|
||||
};
|
||||
}
|
||||
|
||||
this.server_address = address.replace(/\/$/, '');
|
||||
this.channel = new grpc.Channel(address, options);
|
||||
this.updateMetadata = _.partial(updateMetadata,
|
||||
this.server_address + '/' + serviceName);
|
||||
this.auth_uri = this.server_address + '/' + serviceName;
|
||||
this.updateMetadata = updateMetadata;
|
||||
}
|
||||
|
||||
_.each(methods, function(attrs, name) {
|
||||
|
|
|
@ -86,4 +86,8 @@ describe('Interop tests', function() {
|
|||
interop_client.runTest(port, name_override, 'cancel_after_first_response',
|
||||
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