|
|
|
@ -35,6 +35,7 @@ |
|
|
|
|
#include <grpcpp/server_context.h> |
|
|
|
|
|
|
|
|
|
#include "src/core/lib/gpr/env.h" |
|
|
|
|
#include "src/core/lib/iomgr/iomgr.h" |
|
|
|
|
#include "src/core/lib/security/credentials/credentials.h" |
|
|
|
|
#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" |
|
|
|
|
#include "src/proto/grpc/testing/echo.grpc.pb.h" |
|
|
|
@ -52,6 +53,17 @@ using grpc::testing::EchoResponse; |
|
|
|
|
using grpc::testing::kTlsCredentialsType; |
|
|
|
|
using std::chrono::system_clock; |
|
|
|
|
|
|
|
|
|
// MAYBE_SKIP_TEST is a macro to determine if this particular test configuration
|
|
|
|
|
// should be skipped based on a decision made at SetUp time. In particular,
|
|
|
|
|
// tests that use the callback server can only be run if the iomgr can run in
|
|
|
|
|
// the background or if the transport is in-process.
|
|
|
|
|
#define MAYBE_SKIP_TEST \ |
|
|
|
|
do { \
|
|
|
|
|
if (do_not_test_) { \
|
|
|
|
|
return; \
|
|
|
|
|
} \
|
|
|
|
|
} while (0) |
|
|
|
|
|
|
|
|
|
namespace grpc { |
|
|
|
|
namespace testing { |
|
|
|
|
namespace { |
|
|
|
@ -237,6 +249,14 @@ class End2endTest : public ::testing::TestWithParam<TestScenario> { |
|
|
|
|
GetParam().Log(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SetUp() override { |
|
|
|
|
if (GetParam().callback_server && !GetParam().inproc && |
|
|
|
|
!grpc_iomgr_run_in_background()) { |
|
|
|
|
do_not_test_ = true; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void TearDown() override { |
|
|
|
|
if (is_server_started_) { |
|
|
|
|
server_->Shutdown(); |
|
|
|
@ -361,6 +381,7 @@ class End2endTest : public ::testing::TestWithParam<TestScenario> { |
|
|
|
|
DummyInterceptor::Reset(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool do_not_test_{false}; |
|
|
|
|
bool is_server_started_; |
|
|
|
|
std::shared_ptr<Channel> channel_; |
|
|
|
|
std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; |
|
|
|
@ -416,6 +437,7 @@ class End2endServerTryCancelTest : public End2endTest { |
|
|
|
|
// NOTE: Do not call this function with server_try_cancel == DO_NOT_CANCEL.
|
|
|
|
|
void TestRequestStreamServerCancel( |
|
|
|
|
ServerTryCancelRequestPhase server_try_cancel, int num_msgs_to_send) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
RestartServer(std::shared_ptr<AuthMetadataProcessor>()); |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
@ -494,6 +516,7 @@ class End2endServerTryCancelTest : public End2endTest { |
|
|
|
|
// NOTE: Do not call this function with server_try_cancel == DO_NOT_CANCEL.
|
|
|
|
|
void TestResponseStreamServerCancel( |
|
|
|
|
ServerTryCancelRequestPhase server_try_cancel) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
RestartServer(std::shared_ptr<AuthMetadataProcessor>()); |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
@ -575,6 +598,7 @@ class End2endServerTryCancelTest : public End2endTest { |
|
|
|
|
// NOTE: Do not call this function with server_try_cancel == DO_NOT_CANCEL.
|
|
|
|
|
void TestBidiStreamServerCancel(ServerTryCancelRequestPhase server_try_cancel, |
|
|
|
|
int num_messages) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
RestartServer(std::shared_ptr<AuthMetadataProcessor>()); |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
@ -650,6 +674,7 @@ class End2endServerTryCancelTest : public End2endTest { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
TEST_P(End2endServerTryCancelTest, RequestEchoServerCancel) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -712,6 +737,7 @@ TEST_P(End2endServerTryCancelTest, BidiStreamServerCancelAfter) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, SimpleRpcWithCustomUserAgentPrefix) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
// User-Agent is an HTTP header for HTTP transports only
|
|
|
|
|
if (GetParam().inproc) { |
|
|
|
|
return; |
|
|
|
@ -735,6 +761,7 @@ TEST_P(End2endTest, SimpleRpcWithCustomUserAgentPrefix) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, MultipleRpcsWithVariedBinaryMetadataValue) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
std::vector<std::thread> threads; |
|
|
|
|
threads.reserve(10); |
|
|
|
@ -747,6 +774,7 @@ TEST_P(End2endTest, MultipleRpcsWithVariedBinaryMetadataValue) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, MultipleRpcs) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
std::vector<std::thread> threads; |
|
|
|
|
threads.reserve(10); |
|
|
|
@ -759,6 +787,7 @@ TEST_P(End2endTest, MultipleRpcs) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, EmptyBinaryMetadata) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -771,6 +800,7 @@ TEST_P(End2endTest, EmptyBinaryMetadata) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, ReconnectChannel) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
if (GetParam().inproc) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
@ -796,6 +826,7 @@ TEST_P(End2endTest, ReconnectChannel) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RequestStreamOneRequest) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -812,6 +843,7 @@ TEST_P(End2endTest, RequestStreamOneRequest) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RequestStreamOneRequestWithCoalescingApi) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -827,6 +859,7 @@ TEST_P(End2endTest, RequestStreamOneRequestWithCoalescingApi) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RequestStreamTwoRequests) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -843,6 +876,7 @@ TEST_P(End2endTest, RequestStreamTwoRequests) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RequestStreamTwoRequestsWithWriteThrough) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -859,6 +893,7 @@ TEST_P(End2endTest, RequestStreamTwoRequestsWithWriteThrough) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RequestStreamTwoRequestsWithCoalescingApi) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -875,6 +910,7 @@ TEST_P(End2endTest, RequestStreamTwoRequestsWithCoalescingApi) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, ResponseStream) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -893,6 +929,7 @@ TEST_P(End2endTest, ResponseStream) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, ResponseStreamWithCoalescingApi) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -914,6 +951,7 @@ TEST_P(End2endTest, ResponseStreamWithCoalescingApi) { |
|
|
|
|
// This was added to prevent regression from issue:
|
|
|
|
|
// https://github.com/grpc/grpc/issues/11546
|
|
|
|
|
TEST_P(End2endTest, ResponseStreamWithEverythingCoalesced) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -935,6 +973,7 @@ TEST_P(End2endTest, ResponseStreamWithEverythingCoalesced) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, BidiStream) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -959,6 +998,7 @@ TEST_P(End2endTest, BidiStream) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, BidiStreamWithCoalescingApi) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -994,6 +1034,7 @@ TEST_P(End2endTest, BidiStreamWithCoalescingApi) { |
|
|
|
|
// This was added to prevent regression from issue:
|
|
|
|
|
// https://github.com/grpc/grpc/issues/11546
|
|
|
|
|
TEST_P(End2endTest, BidiStreamWithEverythingCoalesced) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1019,6 +1060,7 @@ TEST_P(End2endTest, BidiStreamWithEverythingCoalesced) { |
|
|
|
|
// Talk to the two services with the same name but different package names.
|
|
|
|
|
// The two stubs are created on the same channel.
|
|
|
|
|
TEST_P(End2endTest, DiffPackageServices) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1047,6 +1089,7 @@ void CancelRpc(ClientContext* context, int delay_us, ServiceType* service) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, CancelRpcBeforeStart) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1063,6 +1106,7 @@ TEST_P(End2endTest, CancelRpcBeforeStart) { |
|
|
|
|
|
|
|
|
|
// Client cancels request stream after sending two messages
|
|
|
|
|
TEST_P(End2endTest, ClientCancelsRequestStream) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1086,6 +1130,7 @@ TEST_P(End2endTest, ClientCancelsRequestStream) { |
|
|
|
|
|
|
|
|
|
// Client cancels server stream after sending some messages
|
|
|
|
|
TEST_P(End2endTest, ClientCancelsResponseStream) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1121,6 +1166,7 @@ TEST_P(End2endTest, ClientCancelsResponseStream) { |
|
|
|
|
|
|
|
|
|
// Client cancels bidi stream after sending some messages
|
|
|
|
|
TEST_P(End2endTest, ClientCancelsBidi) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1156,6 +1202,7 @@ TEST_P(End2endTest, ClientCancelsBidi) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, RpcMaxMessageSize) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1178,6 +1225,7 @@ void ReaderThreadFunc(ClientReaderWriter<EchoRequest, EchoResponse>* stream, |
|
|
|
|
|
|
|
|
|
// Run a Read and a WritesDone simultaneously.
|
|
|
|
|
TEST_P(End2endTest, SimultaneousReadWritesDone) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
ClientContext context; |
|
|
|
|
gpr_event ev; |
|
|
|
@ -1192,6 +1240,7 @@ TEST_P(End2endTest, SimultaneousReadWritesDone) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, ChannelState) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
if (GetParam().inproc) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
@ -1242,6 +1291,7 @@ TEST_P(End2endTest, ChannelStateTimeout) { |
|
|
|
|
|
|
|
|
|
// Talking to a non-existing service.
|
|
|
|
|
TEST_P(End2endTest, NonExistingService) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetChannel(); |
|
|
|
|
std::unique_ptr<grpc::testing::UnimplementedEchoService::Stub> stub; |
|
|
|
|
stub = grpc::testing::UnimplementedEchoService::NewStub(channel_); |
|
|
|
@ -1259,6 +1309,7 @@ TEST_P(End2endTest, NonExistingService) { |
|
|
|
|
// Ask the server to send back a serialized proto in trailer.
|
|
|
|
|
// This is an example of setting error details.
|
|
|
|
|
TEST_P(End2endTest, BinaryTrailerTest) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1285,6 +1336,7 @@ TEST_P(End2endTest, BinaryTrailerTest) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(End2endTest, ExpectErrorTest) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
|
|
|
|
|
std::vector<ErrorStatus> expected_status; |
|
|
|
@ -1336,11 +1388,13 @@ class ProxyEnd2endTest : public End2endTest { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
TEST_P(ProxyEnd2endTest, SimpleRpc) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
SendRpc(stub_.get(), 1, false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProxyEnd2endTest, SimpleRpcWithEmptyMessages) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1351,6 +1405,7 @@ TEST_P(ProxyEnd2endTest, SimpleRpcWithEmptyMessages) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProxyEnd2endTest, MultipleRpcs) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
std::vector<std::thread> threads; |
|
|
|
|
threads.reserve(10); |
|
|
|
@ -1364,6 +1419,7 @@ TEST_P(ProxyEnd2endTest, MultipleRpcs) { |
|
|
|
|
|
|
|
|
|
// Set a 10us deadline and make sure proper error is returned.
|
|
|
|
|
TEST_P(ProxyEnd2endTest, RpcDeadlineExpires) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1389,6 +1445,7 @@ TEST_P(ProxyEnd2endTest, RpcDeadlineExpires) { |
|
|
|
|
|
|
|
|
|
// Set a long but finite deadline.
|
|
|
|
|
TEST_P(ProxyEnd2endTest, RpcLongDeadline) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1405,6 +1462,7 @@ TEST_P(ProxyEnd2endTest, RpcLongDeadline) { |
|
|
|
|
|
|
|
|
|
// Ask server to echo back the deadline it sees.
|
|
|
|
|
TEST_P(ProxyEnd2endTest, EchoDeadline) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1430,6 +1488,7 @@ TEST_P(ProxyEnd2endTest, EchoDeadline) { |
|
|
|
|
|
|
|
|
|
// Ask server to echo back the deadline it sees. The rpc has no deadline.
|
|
|
|
|
TEST_P(ProxyEnd2endTest, EchoDeadlineForNoDeadlineRpc) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1445,6 +1504,7 @@ TEST_P(ProxyEnd2endTest, EchoDeadlineForNoDeadlineRpc) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProxyEnd2endTest, UnimplementedRpc) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1460,6 +1520,7 @@ TEST_P(ProxyEnd2endTest, UnimplementedRpc) { |
|
|
|
|
|
|
|
|
|
// Client cancels rpc after 10ms
|
|
|
|
|
TEST_P(ProxyEnd2endTest, ClientCancelsRpc) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1494,6 +1555,7 @@ TEST_P(ProxyEnd2endTest, ClientCancelsRpc) { |
|
|
|
|
|
|
|
|
|
// Server cancels rpc after 1ms
|
|
|
|
|
TEST_P(ProxyEnd2endTest, ServerCancelsRpc) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1508,6 +1570,7 @@ TEST_P(ProxyEnd2endTest, ServerCancelsRpc) { |
|
|
|
|
|
|
|
|
|
// Make the response larger than the flow control window.
|
|
|
|
|
TEST_P(ProxyEnd2endTest, HugeResponse) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1525,6 +1588,7 @@ TEST_P(ProxyEnd2endTest, HugeResponse) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProxyEnd2endTest, Peer) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
// Peer is not meaningful for inproc
|
|
|
|
|
if (GetParam().inproc) { |
|
|
|
|
return; |
|
|
|
@ -1553,6 +1617,7 @@ class SecureEnd2endTest : public End2endTest { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, SimpleRpcWithHost) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
|
|
|
|
|
EchoRequest request; |
|
|
|
@ -1584,6 +1649,7 @@ bool MetadataContains( |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginAndProcessorSuccess) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
auto* processor = new TestAuthMetadataProcessor(true); |
|
|
|
|
StartServer(std::shared_ptr<AuthMetadataProcessor>(processor)); |
|
|
|
|
ResetStub(); |
|
|
|
@ -1609,6 +1675,7 @@ TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginAndProcessorSuccess) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginAndProcessorFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
auto* processor = new TestAuthMetadataProcessor(true); |
|
|
|
|
StartServer(std::shared_ptr<AuthMetadataProcessor>(processor)); |
|
|
|
|
ResetStub(); |
|
|
|
@ -1624,6 +1691,7 @@ TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginAndProcessorFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, SetPerCallCredentials) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1646,6 +1714,7 @@ TEST_P(SecureEnd2endTest, SetPerCallCredentials) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, OverridePerCallCredentials) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1677,6 +1746,7 @@ TEST_P(SecureEnd2endTest, OverridePerCallCredentials) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, AuthMetadataPluginKeyFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1694,6 +1764,7 @@ TEST_P(SecureEnd2endTest, AuthMetadataPluginKeyFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, AuthMetadataPluginValueFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1711,6 +1782,7 @@ TEST_P(SecureEnd2endTest, AuthMetadataPluginValueFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1732,6 +1804,7 @@ TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginAndProcessorSuccess) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
auto* processor = new TestAuthMetadataProcessor(false); |
|
|
|
|
StartServer(std::shared_ptr<AuthMetadataProcessor>(processor)); |
|
|
|
|
ResetStub(); |
|
|
|
@ -1757,6 +1830,7 @@ TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginAndProcessorSuccess) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginAndProcessorFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
auto* processor = new TestAuthMetadataProcessor(false); |
|
|
|
|
StartServer(std::shared_ptr<AuthMetadataProcessor>(processor)); |
|
|
|
|
ResetStub(); |
|
|
|
@ -1772,6 +1846,7 @@ TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginAndProcessorFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginFailure) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1793,6 +1868,7 @@ TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginFailure) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, CompositeCallCreds) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1821,6 +1897,7 @@ TEST_P(SecureEnd2endTest, CompositeCallCreds) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(SecureEnd2endTest, ClientAuthContext) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
EchoRequest request; |
|
|
|
|
EchoResponse response; |
|
|
|
@ -1865,6 +1942,7 @@ class ResourceQuotaEnd2endTest : public End2endTest { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
TEST_P(ResourceQuotaEnd2endTest, SimpleRequest) { |
|
|
|
|
MAYBE_SKIP_TEST; |
|
|
|
|
ResetStub(); |
|
|
|
|
|
|
|
|
|
EchoRequest request; |
|
|
|
@ -1899,11 +1977,17 @@ std::vector<TestScenario> CreateTestScenarios(bool use_proxy, |
|
|
|
|
credentials_types.push_back(kInsecureCredentialsType); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// For now test callback server only with inproc
|
|
|
|
|
// Test callback with inproc or if the event-engine allows it
|
|
|
|
|
GPR_ASSERT(!credentials_types.empty()); |
|
|
|
|
for (const auto& cred : credentials_types) { |
|
|
|
|
scenarios.emplace_back(false, false, false, cred, false); |
|
|
|
|
scenarios.emplace_back(true, false, false, cred, false); |
|
|
|
|
if (test_callback_server) { |
|
|
|
|
// Note that these scenarios will be dynamically disabled if the event
|
|
|
|
|
// engine doesn't run in the background
|
|
|
|
|
scenarios.emplace_back(false, false, false, cred, true); |
|
|
|
|
scenarios.emplace_back(true, false, false, cred, true); |
|
|
|
|
} |
|
|
|
|
if (use_proxy) { |
|
|
|
|
scenarios.emplace_back(false, true, false, cred, false); |
|
|
|
|
scenarios.emplace_back(true, true, false, cred, false); |
|
|
|
|