diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-03 14:56:55 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-09 13:07:13 +0200 |
commit | 9fbc8d2985fbb930fd02498238a3fb2ddfb4512e (patch) | |
tree | 5f0e85ce8a46369ff0532d802e9a86eaef697391 | |
parent | 4cecbc2873cd4ce464a8bf3b3c529830fcd29d0d (diff) | |
download | justbuild-9fbc8d2985fbb930fd02498238a3fb2ddfb4512e.tar.gz |
Use ArtifactDigestFactory casts in Storage
-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; }(); |