diff options
author | Alberto Sartori <alberto.sartori@huawei.com> | 2023-12-20 16:52:23 +0100 |
---|---|---|
committer | Alberto Sartori <alberto.sartori@huawei.com> | 2023-12-21 10:11:11 +0100 |
commit | 8ee25f5ac4b1ecda1d5ce262fc48ad0c0e03a308 (patch) | |
tree | c54faf42ee85909dc4459ce6bdc6e44cddce33b4 | |
parent | 6c8230f3e3f48c7d02d7f885eeadfefe8545839f (diff) | |
download | justbuild-8ee25f5ac4b1ecda1d5ce262fc48ad0c0e03a308.tar.gz |
BazelCasClient::DoUploadBlobs: returns the count of the uploaded blobs...
...instead of the vector containing the digests of the uploaded
blobs. The returned vector was never inspected by the callers, except
for its size.
The tests have been accordingly amended.
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; |