diff options
-rw-r--r-- | src/buildtool/storage/local_ac.tpp | 16 | ||||
-rw-r--r-- | src/buildtool/storage/local_cas.tpp | 16 | ||||
-rw-r--r-- | test/buildtool/storage/local_ac.test.cpp | 3 |
3 files changed, 25 insertions, 10 deletions
diff --git a/src/buildtool/storage/local_ac.tpp b/src/buildtool/storage/local_ac.tpp index 8cc55638..e58c7fb9 100644 --- a/src/buildtool/storage/local_ac.tpp +++ b/src/buildtool/storage/local_ac.tpp @@ -77,9 +77,13 @@ auto LocalAC<kDoGlobalUplink>::LocalUplinkEntry( // Uplink result content for (auto const& file : result->output_files()) { - ArtifactDigest const a_digest{file.digest()}; + auto const digest = ArtifactDigestFactory::FromBazel( + cas_.GetHashFunction().GetType(), file.digest()); + if (not digest) { + return false; + } if (not cas_.LocalUplinkBlob( - latest.cas_, a_digest, file.is_executable())) { + latest.cas_, *digest, file.is_executable())) { return false; } } @@ -102,8 +106,12 @@ auto LocalAC<kDoGlobalUplink>::LocalUplinkEntry( } } for (auto const& directory : result->output_directories()) { - ArtifactDigest const a_digest{directory.tree_digest()}; - if (not cas_.LocalUplinkTree(latest.cas_, a_digest)) { + auto const digest = ArtifactDigestFactory::FromBazel( + cas_.GetHashFunction().GetType(), directory.tree_digest()); + if (not digest) { + return false; + } + if (not cas_.LocalUplinkTree(latest.cas_, *digest)) { return false; } } diff --git a/src/buildtool/storage/local_cas.tpp b/src/buildtool/storage/local_cas.tpp index d43bd18b..8b91f7e4 100644 --- a/src/buildtool/storage/local_cas.tpp +++ b/src/buildtool/storage/local_cas.tpp @@ -217,14 +217,22 @@ auto LocalCAS<kDoGlobalUplink>::LocalUplinkBazelDirectory( // Uplink bazel directory entries. for (auto const& file : dir.files()) { - ArtifactDigest const a_digest{file.digest()}; - if (not LocalUplinkBlob(latest, a_digest, file.is_executable())) { + auto const digest = ArtifactDigestFactory::FromBazel( + hash_function_.GetType(), file.digest()); + if (not digest) { + return false; + } + if (not LocalUplinkBlob(latest, *digest, file.is_executable())) { return false; } } for (auto const& directory : dir.directories()) { - ArtifactDigest const a_digest{directory.digest()}; - if (not LocalUplinkBazelDirectory(latest, a_digest, seen)) { + auto const digest = ArtifactDigestFactory::FromBazel( + hash_function_.GetType(), directory.digest()); + if (not digest) { + return false; + } + if (not LocalUplinkBazelDirectory(latest, *digest, seen)) { return false; } } diff --git a/test/buildtool/storage/local_ac.test.cpp b/test/buildtool/storage/local_ac.test.cpp index 543a09b5..73320ce4 100644 --- a/test/buildtool/storage/local_ac.test.cpp +++ b/test/buildtool/storage/local_ac.test.cpp @@ -144,8 +144,7 @@ auto RunDummyExecution(gsl::not_null<LocalAC<true> const*> const& ac, bazel_re::OutputFile out{}; out.set_path(seed); auto digest = cas_->StoreBlob(""); - out.set_allocated_digest( - gsl::owner<bazel_re::Digest*>{new bazel_re::Digest{*digest}}); + *out.mutable_digest() = ArtifactDigestFactory::ToBazel(*digest); out.set_is_executable(false); return out; }(); |