This is an automated email from the ASF dual-hosted git repository. chhsiao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 6e73de1d185cf6e9b14f268042e57e3bbaddd68d Author: Chun-Hung Hsiao <[email protected]> AuthorDate: Sun Mar 31 17:17:15 2019 -0700 Extended `CSIClientTest` to test the CSI v1 client wrapper. Review: https://reviews.apache.org/r/70363 --- src/tests/csi_client_tests.cpp | 31 +++ src/tests/mock_csi_plugin.cpp | 208 ++++++++++++++++++--- src/tests/mock_csi_plugin.hpp | 137 +++++++++++++- .../storage_local_resource_provider_tests.cpp | 8 +- 4 files changed, 344 insertions(+), 40 deletions(-) diff --git a/src/tests/csi_client_tests.cpp b/src/tests/csi_client_tests.cpp index a2a181b..992341e 100644 --- a/src/tests/csi_client_tests.cpp +++ b/src/tests/csi_client_tests.cpp @@ -24,6 +24,7 @@ #include <stout/tests/utils.hpp> #include "csi/v0_client.hpp" +#include "csi/v1_client.hpp" #include "tests/mock_csi_plugin.hpp" @@ -126,6 +127,36 @@ INSTANTIATE_TEST_CASE_P( RPCParam::Printer()); +INSTANTIATE_TEST_CASE_P( + V1, + CSIClientTest, + Values( + RPCParam::create(&csi::v1::Client::getPluginInfo), + RPCParam::create(&csi::v1::Client::getPluginCapabilities), + RPCParam::create(&csi::v1::Client::probe), + RPCParam::create(&csi::v1::Client::createVolume), + RPCParam::create(&csi::v1::Client::deleteVolume), + RPCParam::create(&csi::v1::Client::controllerPublishVolume), + RPCParam::create(&csi::v1::Client::controllerUnpublishVolume), + RPCParam::create(&csi::v1::Client::validateVolumeCapabilities), + RPCParam::create(&csi::v1::Client::listVolumes), + RPCParam::create(&csi::v1::Client::getCapacity), + RPCParam::create(&csi::v1::Client::controllerGetCapabilities), + RPCParam::create(&csi::v1::Client::createSnapshot), + RPCParam::create(&csi::v1::Client::deleteSnapshot), + RPCParam::create(&csi::v1::Client::listSnapshots), + RPCParam::create(&csi::v1::Client::controllerExpandVolume), + RPCParam::create(&csi::v1::Client::nodeStageVolume), + RPCParam::create(&csi::v1::Client::nodeUnstageVolume), + RPCParam::create(&csi::v1::Client::nodePublishVolume), + RPCParam::create(&csi::v1::Client::nodeUnpublishVolume), + RPCParam::create(&csi::v1::Client::nodeGetVolumeStats), + RPCParam::create(&csi::v1::Client::nodeExpandVolume), + RPCParam::create(&csi::v1::Client::nodeGetCapabilities), + RPCParam::create(&csi::v1::Client::nodeGetInfo)), + RPCParam::Printer()); + + // This test verifies that the all methods of CSI clients work. TEST_P(CSIClientTest, Call) { diff --git a/src/tests/mock_csi_plugin.cpp b/src/tests/mock_csi_plugin.cpp index 1024570..cbcb59f 100644 --- a/src/tests/mock_csi_plugin.cpp +++ b/src/tests/mock_csi_plugin.cpp @@ -26,13 +26,10 @@ using grpc::ServerBuilder; using grpc::ServerContext; using grpc::Status; -using mesos::csi::v0::Controller; -using mesos::csi::v0::Identity; -using mesos::csi::v0::Node; - using process::grpc::client::Connection; using testing::_; +using testing::A; using testing::Invoke; using testing::Return; @@ -42,12 +39,13 @@ namespace tests { MockCSIPlugin::MockCSIPlugin() { - EXPECT_CALL(*this, GetPluginInfo(_, _, _)) + EXPECT_CALL(*this, GetPluginInfo(_, _, A<csi::v0::GetPluginInfoResponse*>())) .WillRepeatedly(Return(Status::OK)); - // Enable all plugin capabilities by default for testing with the test CSI - // plugin in forwarding mode. - EXPECT_CALL(*this, GetPluginCapabilities(_, _, _)) + // Enable all plugin service capabilities by default for testing with the test + // CSI plugin in forwarding mode. + EXPECT_CALL(*this, GetPluginCapabilities( + _, _, A<csi::v0::GetPluginCapabilitiesResponse*>())) .WillRepeatedly(Invoke([]( ServerContext* context, const csi::v0::GetPluginCapabilitiesRequest* request, @@ -58,33 +56,37 @@ MockCSIPlugin::MockCSIPlugin() return Status::OK; })); - EXPECT_CALL(*this, Probe(_, _, _)) + EXPECT_CALL(*this, Probe(_, _, A<csi::v0::ProbeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, CreateVolume(_, _, _)) + EXPECT_CALL(*this, CreateVolume(_, _, A<csi::v0::CreateVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, DeleteVolume(_, _, _)) + EXPECT_CALL(*this, DeleteVolume(_, _, A<csi::v0::DeleteVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, ControllerPublishVolume(_, _, _)) + EXPECT_CALL(*this, ControllerPublishVolume( + _, _, A<csi::v0::ControllerPublishVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, ControllerUnpublishVolume(_, _, _)) + EXPECT_CALL(*this, ControllerUnpublishVolume( + _, _, A<csi::v0::ControllerUnpublishVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, ValidateVolumeCapabilities(_, _, _)) + EXPECT_CALL(*this, ValidateVolumeCapabilities( + _, _, A<csi::v0::ValidateVolumeCapabilitiesResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, ListVolumes(_, _, _)) + EXPECT_CALL(*this, ListVolumes(_, _, A<csi::v0::ListVolumesResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, GetCapacity(_, _, _)) + EXPECT_CALL(*this, GetCapacity(_, _, A<csi::v0::GetCapacityResponse*>())) .WillRepeatedly(Return(Status::OK)); - // Enable all controller capabilities by default for testing with the test CSI - // plugin in forwarding mode. - EXPECT_CALL(*this, ControllerGetCapabilities(_, _, _)) + // Enable all controller RPC capabilities by default for testing with the test + // CSI plugin in forwarding mode. + EXPECT_CALL(*this, ControllerGetCapabilities( + _, _, A<csi::v0::ControllerGetCapabilitiesResponse*>())) .WillRepeatedly(Invoke([]( ServerContext* context, const csi::v0::ControllerGetCapabilitiesRequest* request, @@ -94,31 +96,36 @@ MockCSIPlugin::MockCSIPlugin() response->add_capabilities()->mutable_rpc()->set_type( csi::v0::ControllerServiceCapability::RPC::PUBLISH_UNPUBLISH_VOLUME); response->add_capabilities()->mutable_rpc()->set_type( - csi::v0::ControllerServiceCapability::RPC::GET_CAPACITY); - response->add_capabilities()->mutable_rpc()->set_type( csi::v0::ControllerServiceCapability::RPC::LIST_VOLUMES); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v0::ControllerServiceCapability::RPC::GET_CAPACITY); return Status::OK; })); - EXPECT_CALL(*this, NodeStageVolume(_, _, _)) + EXPECT_CALL(*this, NodeStageVolume( + _, _, A<csi::v0::NodeStageVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, NodeUnstageVolume(_, _, _)) + EXPECT_CALL(*this, NodeUnstageVolume( + _, _, A<csi::v0::NodeUnstageVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, NodePublishVolume(_, _, _)) + EXPECT_CALL(*this, NodePublishVolume( + _, _, A<csi::v0::NodePublishVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, NodeUnpublishVolume(_, _, _)) + EXPECT_CALL(*this, NodeUnpublishVolume( + _, _, A<csi::v0::NodeUnpublishVolumeResponse*>())) .WillRepeatedly(Return(Status::OK)); - EXPECT_CALL(*this, NodeGetId(_, _, _)) + EXPECT_CALL(*this, NodeGetId(_, _, A<csi::v0::NodeGetIdResponse*>())) .WillRepeatedly(Return(Status::OK)); - // Enable all node capabilities by default for testing with the test CSI + // Enable all node RPC capabilities by default for testing with the test CSI // plugin in forwarding mode. - EXPECT_CALL(*this, NodeGetCapabilities(_, _, _)) + EXPECT_CALL(*this, NodeGetCapabilities( + _, _, A<csi::v0::NodeGetCapabilitiesResponse*>())) .WillRepeatedly(Invoke([]( ServerContext* context, const csi::v0::NodeGetCapabilitiesRequest* request, @@ -128,6 +135,142 @@ MockCSIPlugin::MockCSIPlugin() return Status::OK; })); + + EXPECT_CALL(*this, GetPluginInfo(_, _, A<csi::v1::GetPluginInfoResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + // Enable all plugin service capabilities by default for testing with the test + // CSI plugin in forwarding mode. + EXPECT_CALL(*this, GetPluginCapabilities( + _, _, A<csi::v1::GetPluginCapabilitiesResponse*>())) + .WillRepeatedly(Invoke([]( + ServerContext* context, + const csi::v1::GetPluginCapabilitiesRequest* request, + csi::v1::GetPluginCapabilitiesResponse* response) { + response->add_capabilities()->mutable_service()->set_type( + csi::v1::PluginCapability::Service::CONTROLLER_SERVICE); + response->add_capabilities()->mutable_service()->set_type( + csi::v1::PluginCapability::Service::VOLUME_ACCESSIBILITY_CONSTRAINTS); + + return Status::OK; + })); + + EXPECT_CALL(*this, Probe(_, _, A<csi::v1::ProbeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, CreateVolume(_, _, A<csi::v1::CreateVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, DeleteVolume(_, _, A<csi::v1::DeleteVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ControllerPublishVolume( + _, _, A<csi::v1::ControllerPublishVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ControllerUnpublishVolume( + _, _, A<csi::v1::ControllerUnpublishVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ValidateVolumeCapabilities( + _, _, A<csi::v1::ValidateVolumeCapabilitiesResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ListVolumes(_, _, A<csi::v1::ListVolumesResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, GetCapacity(_, _, A<csi::v1::GetCapacityResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + // Enable all controller RPC capabilities by default for testing with the test + // CSI plugin in forwarding mode. + EXPECT_CALL(*this, ControllerGetCapabilities( + _, _, A<csi::v1::ControllerGetCapabilitiesResponse*>())) + .WillRepeatedly(Invoke([]( + ServerContext* context, + const csi::v1::ControllerGetCapabilitiesRequest* request, + csi::v1::ControllerGetCapabilitiesResponse* response) { + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::CREATE_DELETE_VOLUME); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::PUBLISH_UNPUBLISH_VOLUME); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::LIST_VOLUMES); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::GET_CAPACITY); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::CREATE_DELETE_SNAPSHOT); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::LIST_SNAPSHOTS); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::CLONE_VOLUME); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::PUBLISH_READONLY); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::ControllerServiceCapability::RPC::EXPAND_VOLUME); + + return Status::OK; + })); + + EXPECT_CALL(*this, CreateSnapshot( + _, _, A<csi::v1::CreateSnapshotResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, DeleteSnapshot( + _, _, A<csi::v1::DeleteSnapshotResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ListSnapshots(_, _, A<csi::v1::ListSnapshotsResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, ControllerExpandVolume( + _, _, A<csi::v1::ControllerExpandVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodeStageVolume( + _, _, A<csi::v1::NodeStageVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodeUnstageVolume( + _, _, A<csi::v1::NodeUnstageVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodePublishVolume( + _, _, A<csi::v1::NodePublishVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodeUnpublishVolume( + _, _, A<csi::v1::NodeUnpublishVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodeGetVolumeStats( + _, _, A<csi::v1::NodeGetVolumeStatsResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + EXPECT_CALL(*this, NodeExpandVolume( + _, _, A<csi::v1::NodeExpandVolumeResponse*>())) + .WillRepeatedly(Return(Status::OK)); + + // Enable all node RPC capabilities by default for testing with the test CSI + // plugin in forwarding mode. + EXPECT_CALL(*this, NodeGetCapabilities( + _, _, A<csi::v1::NodeGetCapabilitiesResponse*>())) + .WillRepeatedly(Invoke([]( + ServerContext* context, + const csi::v1::NodeGetCapabilitiesRequest* request, + csi::v1::NodeGetCapabilitiesResponse* response) { + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::NodeServiceCapability::RPC::STAGE_UNSTAGE_VOLUME); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::NodeServiceCapability::RPC::GET_VOLUME_STATS); + response->add_capabilities()->mutable_rpc()->set_type( + csi::v1::NodeServiceCapability::RPC::EXPAND_VOLUME); + + return Status::OK; + })); + + EXPECT_CALL(*this, NodeGetInfo(_, _, A<csi::v1::NodeGetInfoResponse*>())) + .WillRepeatedly(Return(Status::OK)); } @@ -139,9 +282,12 @@ Try<Connection> MockCSIPlugin::startup(const Option<string>& address) builder.AddListeningPort(address.get(), InsecureServerCredentials()); } - builder.RegisterService(static_cast<Identity::Service*>(this)); - builder.RegisterService(static_cast<Controller::Service*>(this)); - builder.RegisterService(static_cast<Node::Service*>(this)); + builder.RegisterService(static_cast<csi::v0::Identity::Service*>(this)); + builder.RegisterService(static_cast<csi::v0::Controller::Service*>(this)); + builder.RegisterService(static_cast<csi::v0::Node::Service*>(this)); + builder.RegisterService(static_cast<csi::v1::Identity::Service*>(this)); + builder.RegisterService(static_cast<csi::v1::Controller::Service*>(this)); + builder.RegisterService(static_cast<csi::v1::Node::Service*>(this)); server = builder.BuildAndStart(); if (!server) { diff --git a/src/tests/mock_csi_plugin.hpp b/src/tests/mock_csi_plugin.hpp index 2e3cbfd..d7da1ed 100644 --- a/src/tests/mock_csi_plugin.hpp +++ b/src/tests/mock_csi_plugin.hpp @@ -14,8 +14,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef __TESTS_MOCKCSIPLUGIN_HPP__ -#define __TESTS_MOCKCSIPLUGIN_HPP__ +#ifndef __TESTS_MOCK_CSI_PLUGIN_HPP__ +#define __TESTS_MOCK_CSI_PLUGIN_HPP__ #include <memory> #include <string> @@ -25,6 +25,7 @@ #include <grpcpp/grpcpp.h> #include <mesos/csi/v0.hpp> +#include <mesos/csi/v1.hpp> #include <process/grpc.hpp> @@ -38,13 +39,19 @@ namespace internal { namespace tests { // Definition of a mock CSI plugin to be used in tests with gmock. -class MockCSIPlugin : public csi::v0::Identity::Service, - public csi::v0::Controller::Service, - public csi::v0::Node::Service +class MockCSIPlugin + : public csi::v0::Identity::Service, + public csi::v0::Controller::Service, + public csi::v0::Node::Service, + public csi::v1::Identity::Service, + public csi::v1::Controller::Service, + public csi::v1::Node::Service { public: MockCSIPlugin(); + // CSI v0 RPCs. + MOCK_METHOD3(GetPluginInfo, grpc::Status( grpc::ServerContext*, const csi::v0::GetPluginInfoRequest*, @@ -130,8 +137,126 @@ public: const csi::v0::NodeGetCapabilitiesRequest*, csi::v0::NodeGetCapabilitiesResponse*)); + // CSI v1 RPCs. + + MOCK_METHOD3(GetPluginInfo, grpc::Status( + grpc::ServerContext*, + const csi::v1::GetPluginInfoRequest*, + csi::v1::GetPluginInfoResponse*)); + + MOCK_METHOD3(GetPluginCapabilities, grpc::Status( + grpc::ServerContext*, + const csi::v1::GetPluginCapabilitiesRequest*, + csi::v1::GetPluginCapabilitiesResponse*)); + + MOCK_METHOD3(Probe, grpc::Status( + grpc::ServerContext*, + const csi::v1::ProbeRequest*, + csi::v1::ProbeResponse*)); + + MOCK_METHOD3(CreateVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::CreateVolumeRequest*, + csi::v1::CreateVolumeResponse*)); + + MOCK_METHOD3(DeleteVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::DeleteVolumeRequest*, + csi::v1::DeleteVolumeResponse*)); + + MOCK_METHOD3(ControllerPublishVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::ControllerPublishVolumeRequest*, + csi::v1::ControllerPublishVolumeResponse*)); + + MOCK_METHOD3(ControllerUnpublishVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::ControllerUnpublishVolumeRequest*, + csi::v1::ControllerUnpublishVolumeResponse*)); + + MOCK_METHOD3(ValidateVolumeCapabilities, grpc::Status( + grpc::ServerContext*, + const csi::v1::ValidateVolumeCapabilitiesRequest*, + csi::v1::ValidateVolumeCapabilitiesResponse*)); + + MOCK_METHOD3(ListVolumes, grpc::Status( + grpc::ServerContext*, + const csi::v1::ListVolumesRequest*, + csi::v1::ListVolumesResponse*)); + + MOCK_METHOD3(GetCapacity, grpc::Status( + grpc::ServerContext*, + const csi::v1::GetCapacityRequest*, + csi::v1::GetCapacityResponse*)); + + MOCK_METHOD3(ControllerGetCapabilities, grpc::Status( + grpc::ServerContext*, + const csi::v1::ControllerGetCapabilitiesRequest*, + csi::v1::ControllerGetCapabilitiesResponse*)); + + MOCK_METHOD3(CreateSnapshot, grpc::Status( + grpc::ServerContext*, + const csi::v1::CreateSnapshotRequest*, + csi::v1::CreateSnapshotResponse*)); + + MOCK_METHOD3(DeleteSnapshot, grpc::Status( + grpc::ServerContext*, + const csi::v1::DeleteSnapshotRequest*, + csi::v1::DeleteSnapshotResponse*)); + + MOCK_METHOD3(ListSnapshots, grpc::Status( + grpc::ServerContext*, + const csi::v1::ListSnapshotsRequest*, + csi::v1::ListSnapshotsResponse*)); + + MOCK_METHOD3(ControllerExpandVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::ControllerExpandVolumeRequest*, + csi::v1::ControllerExpandVolumeResponse*)); + + MOCK_METHOD3(NodeStageVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeStageVolumeRequest*, + csi::v1::NodeStageVolumeResponse*)); + + MOCK_METHOD3(NodeUnstageVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeUnstageVolumeRequest*, + csi::v1::NodeUnstageVolumeResponse*)); + + MOCK_METHOD3(NodePublishVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodePublishVolumeRequest*, + csi::v1::NodePublishVolumeResponse*)); + + MOCK_METHOD3(NodeUnpublishVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeUnpublishVolumeRequest*, + csi::v1::NodeUnpublishVolumeResponse*)); + + MOCK_METHOD3(NodeGetVolumeStats, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeGetVolumeStatsRequest*, + csi::v1::NodeGetVolumeStatsResponse*)); + + MOCK_METHOD3(NodeExpandVolume, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeExpandVolumeRequest*, + csi::v1::NodeExpandVolumeResponse*)); + + MOCK_METHOD3(NodeGetCapabilities, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeGetCapabilitiesRequest*, + csi::v1::NodeGetCapabilitiesResponse*)); + + MOCK_METHOD3(NodeGetInfo, grpc::Status( + grpc::ServerContext*, + const csi::v1::NodeGetInfoRequest*, + csi::v1::NodeGetInfoResponse*)); + Try<process::grpc::client::Connection> startup( const Option<std::string>& address = None()); + Try<Nothing> shutdown(); private: @@ -142,4 +267,4 @@ private: } // namespace internal { } // namespace mesos { -#endif // __TESTS_MOCKCSIPLUGIN_HPP__ +#endif // __TESTS_MOCK_CSI_PLUGIN_HPP__ diff --git a/src/tests/storage_local_resource_provider_tests.cpp b/src/tests/storage_local_resource_provider_tests.cpp index da8db41..bd35150 100644 --- a/src/tests/storage_local_resource_provider_tests.cpp +++ b/src/tests/storage_local_resource_provider_tests.cpp @@ -87,6 +87,8 @@ using process::reap; using process::grpc::StatusError; +using testing::_; +using testing::A; using testing::AllOf; using testing::AtMost; using testing::Between; @@ -4793,7 +4795,7 @@ TEST_F(StorageLocalResourceProviderTest, RetryRpcWithExponentialBackoff) MockCSIPlugin plugin; ASSERT_SOME(plugin.startup(mockCsiEndpoint)); - EXPECT_CALL(plugin, GetCapacity(_, _, _)) + EXPECT_CALL(plugin, GetCapacity(_, _, A<csi::v0::GetCapacityResponse*>())) .WillRepeatedly(Invoke([]( grpc::ServerContext* context, const csi::v0::GetCapacityRequest* request, @@ -4805,7 +4807,7 @@ TEST_F(StorageLocalResourceProviderTest, RetryRpcWithExponentialBackoff) Queue<csi::v0::CreateVolumeRequest> createVolumeRequests; Queue<Try<csi::v0::CreateVolumeResponse, StatusError>> createVolumeResults; - EXPECT_CALL(plugin, CreateVolume(_, _, _)) + EXPECT_CALL(plugin, CreateVolume(_, _, A<csi::v0::CreateVolumeResponse*>())) .WillRepeatedly(Invoke([&]( grpc::ServerContext* context, const csi::v0::CreateVolumeRequest* request, @@ -4830,7 +4832,7 @@ TEST_F(StorageLocalResourceProviderTest, RetryRpcWithExponentialBackoff) Queue<csi::v0::DeleteVolumeRequest> deleteVolumeRequests; Queue<Try<csi::v0::DeleteVolumeResponse, StatusError>> deleteVolumeResults; - EXPECT_CALL(plugin, DeleteVolume(_, _, _)) + EXPECT_CALL(plugin, DeleteVolume(_, _, A<csi::v0::DeleteVolumeResponse*>())) .WillRepeatedly(Invoke([&]( grpc::ServerContext* context, const csi::v0::DeleteVolumeRequest* request,
