40
40
#include " arrow/testing/gtest_util.h"
41
41
#include " arrow/testing/util.h"
42
42
#include " arrow/util/base64.h"
43
+ #include " arrow/util/future.h"
43
44
#include " arrow/util/logging.h"
44
45
45
46
#ifdef GRPCPP_GRPCPP_H
@@ -91,9 +92,16 @@ const char kAuthHeader[] = "authorization";
91
92
// ------------------------------------------------------------
92
93
// Common transport tests
93
94
95
+ #ifdef GRPC_ENABLE_ASYNC
96
+ constexpr bool kGrpcSupportsAsync = true ;
97
+ #else
98
+ constexpr bool kGrpcSupportsAsync = false ;
99
+ #endif
100
+
94
101
class GrpcConnectivityTest : public ConnectivityTest , public ::testing::Test {
95
102
protected:
96
103
std::string transport () const override { return " grpc" ; }
104
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
97
105
void SetUp () override { SetUpTest (); }
98
106
void TearDown () override { TearDownTest (); }
99
107
};
@@ -102,6 +110,7 @@ ARROW_FLIGHT_TEST_CONNECTIVITY(GrpcConnectivityTest);
102
110
class GrpcDataTest : public DataTest , public ::testing::Test {
103
111
protected:
104
112
std::string transport () const override { return " grpc" ; }
113
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
105
114
void SetUp () override { SetUpTest (); }
106
115
void TearDown () override { TearDownTest (); }
107
116
};
@@ -110,6 +119,7 @@ ARROW_FLIGHT_TEST_DATA(GrpcDataTest);
110
119
class GrpcDoPutTest : public DoPutTest , public ::testing::Test {
111
120
protected:
112
121
std::string transport () const override { return " grpc" ; }
122
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
113
123
void SetUp () override { SetUpTest (); }
114
124
void TearDown () override { TearDownTest (); }
115
125
};
@@ -118,6 +128,7 @@ ARROW_FLIGHT_TEST_DO_PUT(GrpcDoPutTest);
118
128
class GrpcAppMetadataTest : public AppMetadataTest , public ::testing::Test {
119
129
protected:
120
130
std::string transport () const override { return " grpc" ; }
131
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
121
132
void SetUp () override { SetUpTest (); }
122
133
void TearDown () override { TearDownTest (); }
123
134
};
@@ -126,6 +137,7 @@ ARROW_FLIGHT_TEST_APP_METADATA(GrpcAppMetadataTest);
126
137
class GrpcIpcOptionsTest : public IpcOptionsTest , public ::testing::Test {
127
138
protected:
128
139
std::string transport () const override { return " grpc" ; }
140
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
129
141
void SetUp () override { SetUpTest (); }
130
142
void TearDown () override { TearDownTest (); }
131
143
};
@@ -134,6 +146,7 @@ ARROW_FLIGHT_TEST_IPC_OPTIONS(GrpcIpcOptionsTest);
134
146
class GrpcCudaDataTest : public CudaDataTest , public ::testing::Test {
135
147
protected:
136
148
std::string transport () const override { return " grpc" ; }
149
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
137
150
void SetUp () override { SetUpTest (); }
138
151
void TearDown () override { TearDownTest (); }
139
152
};
@@ -142,11 +155,21 @@ ARROW_FLIGHT_TEST_CUDA_DATA(GrpcCudaDataTest);
142
155
class GrpcErrorHandlingTest : public ErrorHandlingTest , public ::testing::Test {
143
156
protected:
144
157
std::string transport () const override { return " grpc" ; }
158
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
145
159
void SetUp () override { SetUpTest (); }
146
160
void TearDown () override { TearDownTest (); }
147
161
};
148
162
ARROW_FLIGHT_TEST_ERROR_HANDLING (GrpcErrorHandlingTest);
149
163
164
+ class GrpcAsyncClientTest : public AsyncClientTest , public ::testing::Test {
165
+ protected:
166
+ std::string transport () const override { return " grpc" ; }
167
+ bool supports_async () const override { return kGrpcSupportsAsync ; }
168
+ void SetUp () override { SetUpTest (); }
169
+ void TearDown () override { TearDownTest (); }
170
+ };
171
+ ARROW_FLIGHT_TEST_ASYNC_CLIENT (GrpcAsyncClientTest);
172
+
150
173
// ------------------------------------------------------------
151
174
// Ad-hoc gRPC-specific tests
152
175
@@ -443,7 +466,7 @@ class TestTls : public ::testing::Test {
443
466
Location location_;
444
467
std::unique_ptr<FlightClient> client_;
445
468
std::unique_ptr<FlightServerBase> server_;
446
- bool server_is_initialized_;
469
+ bool server_is_initialized_ = false ;
447
470
};
448
471
449
472
// A server middleware that rejects all calls.
0 commit comments