From 93fdd3beba1a44a2d3fd95d01cd2c844709936a8 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Thu, 20 Feb 2025 12:57:58 +0100 Subject: ByteStreamClient: Return ArtifactBlob from Read. --- .../execution_api/remote/bazel/bazel_cas_client.cpp | 5 +---- .../execution_api/remote/bazel/bytestream_client.hpp | 4 ++-- .../buildtool/execution_api/bazel/bytestream_client.test.cpp | 12 +++++++----- 3 files changed, 10 insertions(+), 11 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 91da34ec..3cd9d4a8 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -400,10 +400,7 @@ auto BazelCasClient::IncrementalReadSingleBlob(std::string const& instance_name, auto BazelCasClient::ReadSingleBlob(std::string const& instance_name, ArtifactDigest const& digest) const noexcept -> std::optional { - if (auto data = stream_->Read(instance_name, digest)) { - return ArtifactBlob{digest, std::move(*data), /*is_exec=*/false}; - } - return std::nullopt; + return stream_->Read(instance_name, digest); } auto BazelCasClient::SplitBlob(HashFunction hash_function, diff --git a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp index 213e4793..a85fa565 100644 --- a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp +++ b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp @@ -104,7 +104,7 @@ class ByteStreamClient { [[nodiscard]] auto Read(std::string const& instance_name, ArtifactDigest const& digest) const noexcept - -> std::optional { + -> std::optional { auto reader = IncrementalRead(instance_name, digest); std::string output{}; auto data = reader.Next(); @@ -115,7 +115,7 @@ class ByteStreamClient { if (not data) { return std::nullopt; } - return output; + return ArtifactBlob{digest, std::move(output), /*is_exec=*/false}; } [[nodiscard]] auto Write(std::string const& instance_name, diff --git a/test/buildtool/execution_api/bazel/bytestream_client.test.cpp b/test/buildtool/execution_api/bazel/bytestream_client.test.cpp index f607bc3a..20e00aee 100644 --- a/test/buildtool/execution_api/bazel/bytestream_client.test.cpp +++ b/test/buildtool/execution_api/bazel/bytestream_client.test.cpp @@ -15,6 +15,7 @@ #include "src/buildtool/execution_api/remote/bazel/bytestream_client.hpp" #include +#include #include #include @@ -58,9 +59,9 @@ TEST_CASE("ByteStream Client: Transfer single blob", "[execution_api]") { ArtifactBlob const blob{digest, content, /*is_exec=*/false}; CHECK(stream.Write(instance_name, blob)); - auto const data = stream.Read(instance_name, digest); - - CHECK(data == content); + auto const downloaded_blob = stream.Read(instance_name, digest); + REQUIRE(downloaded_blob.has_value()); + CHECK(*downloaded_blob->data == content); } SECTION("Small blob with wrong digest") { @@ -94,8 +95,9 @@ TEST_CASE("ByteStream Client: Transfer single blob", "[execution_api]") { CHECK(stream.Write(instance_name, blob)); SECTION("Download large blob") { - auto const data = stream.Read(instance_name, digest); - CHECK(data == content); + auto const downloaded_blob = stream.Read(instance_name, digest); + REQUIRE(downloaded_blob.has_value()); + CHECK(*downloaded_blob->data == content); } SECTION("Incrementally download large blob") { -- cgit v1.2.3