@ -23,6 +23,8 @@
# include <memory>
# include <string>
# include "absl/log/check.h"
# include <grpc/byte_buffer.h>
# include <grpc/credentials.h>
# include <grpc/grpc.h>
@ -108,15 +110,15 @@ static void prepare_test(int is_client) {
op - > flags = GRPC_INITIAL_METADATA_WAIT_FOR_READY ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_OK = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
GPR_ASSERT ( GRPC_CALL_OK = =
grpc_server_request_call (
g_state . server , & g_state . server_call , & g_state . call_details ,
& g_state . server_initial_metadata_recv , g_state . cq ,
g_state . cq , grpc_core : : CqVerifier : : tag ( 101 ) ) ) ;
CHECK_EQ ( GRPC_CALL_OK ,
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK_EQ ( GRPC_CALL_OK ,
grpc_server_request_call (
g_state . server , & g_state . server_call , & g_state . call_details ,
& g_state . server_initial_metadata_recv , g_state . cq , g_state . cq ,
grpc_core : : CqVerifier : : tag ( 101 ) ) ) ;
g_state . cqv - > Expect ( grpc_core : : CqVerifier : : tag ( 101 ) , true ) ;
g_state . cqv - > Expect ( grpc_core : : CqVerifier : : tag ( 1 ) , true ) ;
g_state . cqv - > Verify ( ) ;
@ -156,9 +158,9 @@ static void test_non_null_reserved_on_start_batch() {
gpr_log ( GPR_INFO , " test_non_null_reserved_on_start_batch " ) ;
prepare_test ( 1 ) ;
GPR_ASSERT ( GRPC_CALL_ERROR = =
grpc_call_start_batch ( g_state . call , nullptr , 0 , nullptr ,
grpc_core : : CqVerifier : : tag ( 1 ) ) ) ;
CHECK ( GRPC_CALL_ERROR = =
grpc_call_start_batch ( g_state . call , nullptr , 0 , nullptr ,
grpc_core : : CqVerifier : : tag ( 1 ) ) ) ;
cleanup_test ( ) ;
}
@ -174,10 +176,10 @@ static void test_non_null_reserved_on_op() {
op - > flags = 0 ;
op - > reserved = grpc_core : : CqVerifier : : tag ( 2 ) ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR = = grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) ,
nullptr ) ) ;
cleanup_test ( ) ;
}
@ -193,10 +195,10 @@ static void test_send_initial_metadata_more_than_once() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_OK = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK_EQ ( GRPC_CALL_OK ,
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
g_state . cqv - > Expect ( grpc_core : : CqVerifier : : tag ( 1 ) , false ) ;
g_state . cqv - > Verify ( ) ;
@ -206,10 +208,10 @@ static void test_send_initial_metadata_more_than_once() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -225,10 +227,10 @@ static void test_too_many_metadata() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -249,10 +251,10 @@ static void test_send_null_message() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_MESSAGE = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_MESSAGE = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -282,10 +284,10 @@ static void test_send_messages_at_the_same_time() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
grpc_byte_buffer_destroy ( request_payload ) ;
cleanup_test ( ) ;
}
@ -305,10 +307,10 @@ static void test_send_server_status_from_client() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_NOT_ON_CLIENT = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_NOT_ON_CLIENT = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -324,10 +326,10 @@ static void test_receive_initial_metadata_twice_at_client() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_OK = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK_EQ ( GRPC_CALL_OK ,
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
g_state . cqv - > Expect ( grpc_core : : CqVerifier : : tag ( 1 ) , false ) ;
g_state . cqv - > Verify ( ) ;
op = g_state . ops ;
@ -337,10 +339,10 @@ static void test_receive_initial_metadata_twice_at_client() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -356,10 +358,10 @@ static void test_receive_message_with_invalid_flags() {
op - > flags = 1 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -380,10 +382,10 @@ static void test_receive_two_messages_at_the_same_time() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -399,10 +401,10 @@ static void test_recv_close_on_server_from_client() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_NOT_ON_CLIENT = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_NOT_ON_CLIENT = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -421,10 +423,10 @@ static void test_recv_status_on_client_twice() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_OK = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK_EQ ( GRPC_CALL_OK ,
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
g_state . cqv - > Expect ( grpc_core : : CqVerifier : : tag ( 1 ) , true ) ;
g_state . cqv - > Verify ( ) ;
@ -436,10 +438,10 @@ static void test_recv_status_on_client_twice() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -454,10 +456,10 @@ static void test_send_close_from_client_on_server() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_NOT_ON_SERVER = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_NOT_ON_SERVER = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -476,10 +478,10 @@ static void test_recv_status_on_client_from_server() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_NOT_ON_SERVER = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_NOT_ON_SERVER = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -498,10 +500,10 @@ static void test_send_status_from_server_with_invalid_flags() {
op - > flags = 1 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -521,10 +523,10 @@ static void test_too_many_trailing_metadata() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -550,10 +552,10 @@ static void test_send_server_status_twice() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -569,10 +571,10 @@ static void test_recv_close_on_server_with_invalid_flags() {
op - > flags = 1 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_FLAGS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -593,10 +595,10 @@ static void test_recv_close_on_server_twice() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . server_call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 2 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -616,10 +618,10 @@ static void test_invalid_initial_metadata_reserved_key() {
op - > flags = 0 ;
op - > reserved = nullptr ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_INVALID_METADATA = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
cleanup_test ( ) ;
}
@ -639,10 +641,10 @@ static void test_multiple_ops_in_a_single_batch() {
op + + ;
op - > op = which ;
op + + ;
GPR_ASSERT ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
CHECK ( GRPC_CALL_ERROR_TOO_MANY_OPERATIONS = =
grpc_call_start_batch ( g_state . call , g_state . ops ,
( size_t ) ( op - g_state . ops ) ,
grpc_core : : CqVerifier : : tag ( 1 ) , nullptr ) ) ;
}
cleanup_test ( ) ;