32 lines
		
	
	
		
			871 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			871 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'spec_helper'
 | 
						|
 | 
						|
RSpec.describe 'GRPC monkey patch', feature_category: :shared do
 | 
						|
  let(:server) { GRPC::RpcServer.new }
 | 
						|
  let(:stub) do
 | 
						|
    Class.new(Gitaly::CommitService::Service) do
 | 
						|
      def find_all_commits(_request, _call)
 | 
						|
        sleep 1
 | 
						|
 | 
						|
        nil
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  it 'raises DeadlineExceeded on a late server streaming response' do
 | 
						|
    server_port = server.add_http2_port('0.0.0.0:0', :this_port_is_insecure)
 | 
						|
    host = "localhost:#{server_port}"
 | 
						|
    server.handle(stub)
 | 
						|
    thr = Thread.new { server.run }
 | 
						|
 | 
						|
    stub = Gitaly::CommitService::Stub.new(host, :this_channel_is_insecure)
 | 
						|
    request = Gitaly::FindAllCommitsRequest.new
 | 
						|
    response = stub.find_all_commits(request, deadline: Time.now + 0.1)
 | 
						|
    expect { response.to_a }.to raise_error(GRPC::DeadlineExceeded)
 | 
						|
 | 
						|
    server.stop
 | 
						|
    thr.join
 | 
						|
  end
 | 
						|
end
 |