diff options
5 files changed, 19 insertions, 26 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp index 70ff27c4..36265890 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -128,16 +128,14 @@ auto BazelCasClient::FindMissingBlobs( auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, std::vector<BazelBlob>::const_iterator const& begin, - std::vector<BazelBlob>::const_iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + std::vector<BazelBlob>::const_iterator const& end) noexcept -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, BlobContainer::iterator const& begin, - BlobContainer::iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + BlobContainer::iterator const& end) noexcept -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } @@ -145,7 +143,7 @@ auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, BlobContainer::RelatedBlobList::iterator const& begin, BlobContainer::RelatedBlobList::iterator const& end) noexcept - -> std::vector<bazel_re::Digest> { + -> std::size_t { return DoBatchUpdateBlobs(instance_name, begin, end); } @@ -401,11 +399,11 @@ template <class T_OutputIter> auto BazelCasClient::DoBatchUpdateBlobs(std::string const& instance_name, T_OutputIter const& start, T_OutputIter const& end) noexcept - -> std::vector<bazel_re::Digest> { - std::vector<bazel_re::Digest> result; + -> std::size_t { if (start == end) { - return result; + return 0; } + std::vector<bazel_re::Digest> result; try { auto requests = CreateBatchRequestsMaxSize<bazel_re::BatchUpdateBlobsRequest>( @@ -476,7 +474,7 @@ auto BazelCasClient::DoBatchUpdateBlobs(std::string const& instance_name, return oss.str(); }); - return result; + return result.size(); } namespace detail { diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp index 51cfbb50..c2567472 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp @@ -64,7 +64,7 @@ class BazelCasClient { std::string const& instance_name, std::vector<BazelBlob>::const_iterator const& begin, std::vector<BazelBlob>::const_iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; /// \brief Upload multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -74,8 +74,7 @@ class BazelCasClient { [[nodiscard]] auto BatchUpdateBlobs( std::string const& instance_name, BlobContainer::iterator const& begin, - BlobContainer::iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + BlobContainer::iterator const& end) noexcept -> std::size_t; /// \brief Upload multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -86,7 +85,7 @@ class BazelCasClient { std::string const& instance_name, BlobContainer::RelatedBlobList::iterator const& begin, BlobContainer::RelatedBlobList::iterator const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; /// \brief Read multiple blobs in batch transfer /// \param[in] instance_name Name of the CAS instance @@ -152,7 +151,7 @@ class BazelCasClient { [[nodiscard]] auto DoBatchUpdateBlobs(std::string const& instance_name, T_OutputIter const& start, T_OutputIter const& end) noexcept - -> std::vector<bazel_re::Digest>; + -> std::size_t; template <typename T_Request, typename T_ForwardIter> [[nodiscard]] auto CreateBatchRequestsMaxSize( diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp index d6a5f78d..223960cb 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp @@ -174,10 +174,10 @@ auto BazelNetwork::DoUploadBlobs(T_Iter const& first, sorted.begin(), sorted.end(), [](auto const& x) { return x.data.size() <= kMaxBatchTransferSize; }); - auto digests = + auto digests_count = cas_->BatchUpdateBlobs(instance_name_, sorted.begin(), it); - return digests.size() == std::distance(sorted.begin(), it) && + return digests_count == std::distance(sorted.begin(), it) && std::all_of(it, sorted.end(), [this](auto const& x) { return cas_->UpdateSingleBlob(instance_name_, x); }); diff --git a/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp b/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp index 8d21dbb3..d120360b 100644 --- a/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp +++ b/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp @@ -42,10 +42,8 @@ TEST_CASE("Bazel internals: CAS Client", "[execution_api]") { if (!digests.empty()) { // Upload blob, if not found std::vector<BazelBlob> to_upload{blob}; - CHECK(cas_client - .BatchUpdateBlobs( - instance_name, to_upload.begin(), to_upload.end()) - .size() == 1); + CHECK(cas_client.BatchUpdateBlobs( + instance_name, to_upload.begin(), to_upload.end()) == 1U); } // Read blob @@ -73,10 +71,8 @@ TEST_CASE("Bazel internals: CAS Client", "[execution_api]") { // Try upload faulty blob std::vector<BazelBlob> to_upload{faulty_blob}; - CHECK(cas_client - .BatchUpdateBlobs( - instance_name, to_upload.begin(), to_upload.end()) - .empty()); + CHECK(cas_client.BatchUpdateBlobs( + instance_name, to_upload.begin(), to_upload.end()) == 0U); // Read blob via faulty digest std::vector<bazel_re::Digest> to_read{faulty_digest}; diff --git a/test/utils/remote_execution/bazel_action_creator.hpp b/test/utils/remote_execution/bazel_action_creator.hpp index 0ee251c8..1fdc86c2 100644 --- a/test/utils/remote_execution/bazel_action_creator.hpp +++ b/test/utils/remote_execution/bazel_action_creator.hpp @@ -79,8 +79,8 @@ BazelCasClient cas_client(info->host, info->port); - if (cas_client.BatchUpdateBlobs(instance_name, blobs.begin(), blobs.end()) - .size() == blobs.size()) { + if (cas_client.BatchUpdateBlobs( + instance_name, blobs.begin(), blobs.end()) == blobs.size()) { return std::make_unique<bazel_re::Digest>(action_id); } return nullptr; |