summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp5
-rw-r--r--src/buildtool/execution_api/remote/bazel/bytestream_client.hpp4
-rw-r--r--test/buildtool/execution_api/bazel/bytestream_client.test.cpp12
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<ArtifactBlob> {
- 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::string> {
+ -> std::optional<ArtifactBlob> {
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 <cstddef>
+#include <memory>
#include <optional>
#include <string>
@@ -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") {