diff options
5 files changed, 28 insertions, 36 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp index 15353a42..27e07c12 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp @@ -89,22 +89,22 @@ template <class T> /// \brief Create protobuf message 'FileNode'. [[nodiscard]] auto CreateFileNode(std::string const& file_name, ObjectType type, - bazel_re::Digest const& digest) noexcept + ArtifactDigest const& digest) noexcept -> bazel_re::FileNode { bazel_re::FileNode node; node.set_name(file_name); node.set_is_executable(IsExecutableObject(type)); - (*node.mutable_digest()) = digest; + (*node.mutable_digest()) = static_cast<bazel_re::Digest>(digest); return node; } /// \brief Create protobuf message 'DirectoryNode'. [[nodiscard]] auto CreateDirectoryNode(std::string const& dir_name, - bazel_re::Digest const& digest) noexcept + ArtifactDigest const& digest) noexcept -> bazel_re::DirectoryNode { bazel_re::DirectoryNode node; node.set_name(dir_name); - (*node.mutable_digest()) = digest; + (*node.mutable_digest()) = static_cast<bazel_re::Digest>(digest); return node; } @@ -315,7 +315,7 @@ auto BazelMsgFactory::CreateDirectoryDigestFromLocalTree( FileStoreFunc const& store_file, TreeStoreFunc const& store_dir, SymlinkStoreFunc const& store_symlink) noexcept - -> std::optional<bazel_re::Digest> { + -> std::optional<ArtifactDigest> { std::vector<bazel_re::FileNode> files{}; std::vector<bazel_re::DirectoryNode> dirs{}; std::vector<bazel_re::SymlinkNode> symlinks{}; @@ -396,7 +396,7 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree( FileStoreFunc const& store_file, TreeStoreFunc const& store_tree, SymlinkStoreFunc const& store_symlink) noexcept - -> std::optional<bazel_re::Digest> { + -> std::optional<ArtifactDigest> { GitRepo::tree_entries_t entries{}; auto dir_reader = [&entries, &root, @@ -408,8 +408,7 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree( // create and store sub directory if (auto digest = CreateGitTreeDigestFromLocalTree( full_name, store_file, store_tree, store_symlink)) { - if (auto raw_id = FromHexString( - NativeSupport::Unprefix(digest->hash()))) { + if (auto raw_id = FromHexString(digest->hash())) { entries[std::move(*raw_id)].emplace_back(name.string(), ObjectType::Tree); return true; @@ -425,8 +424,7 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree( auto content = FileSystemManager::ReadSymlink(full_name); if (content) { if (auto digest = store_symlink(*content)) { - if (auto raw_id = FromHexString( - NativeSupport::Unprefix(digest->hash()))) { + if (auto raw_id = FromHexString(digest->hash())) { entries[std::move(*raw_id)].emplace_back( name.string(), type); return true; @@ -445,8 +443,7 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree( } // create and store file if (auto digest = store_file(full_name, IsExecutableObject(type))) { - if (auto raw_id = FromHexString( - NativeSupport::Unprefix(digest->hash()))) { + if (auto raw_id = FromHexString(digest->hash())) { entries[std::move(*raw_id)].emplace_back(name.string(), type); return true; diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp index 0b006273..0e209153 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp @@ -46,11 +46,11 @@ class BazelMsgFactory { std::function<void(std::vector<bazel_re::Digest> const&, std::vector<std::string>*)>; using FileStoreFunc = std::function< - std::optional<bazel_re::Digest>(std::filesystem::path const&, bool)>; + std::optional<ArtifactDigest>(std::filesystem::path const&, bool)>; using SymlinkStoreFunc = - std::function<std::optional<bazel_re::Digest>(std::string const&)>; + std::function<std::optional<ArtifactDigest>(std::string const&)>; using TreeStoreFunc = - std::function<std::optional<bazel_re::Digest>(std::string const&)>; + std::function<std::optional<ArtifactDigest>(std::string const&)>; /// \brief Create Directory digest from artifact tree structure. Uses /// compatible HashFunction for hashing. Recursively traverse entire tree @@ -77,7 +77,7 @@ class BazelMsgFactory { FileStoreFunc const& store_file, TreeStoreFunc const& store_dir, SymlinkStoreFunc const& store_symlink) noexcept - -> std::optional<bazel_re::Digest>; + -> std::optional<ArtifactDigest>; /// \brief Create Git tree digest from local file root. /// Recursively traverse entire root and store files and directories. @@ -91,7 +91,7 @@ class BazelMsgFactory { FileStoreFunc const& store_file, TreeStoreFunc const& store_tree, SymlinkStoreFunc const& store_symlink) noexcept - -> std::optional<bazel_re::Digest>; + -> std::optional<ArtifactDigest>; struct ActionDigestRequest; /// \brief Creates Action digest from command line. diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp index ad106c6f..fd742f76 100644 --- a/src/buildtool/execution_api/local/local_action.cpp +++ b/src/buildtool/execution_api/local/local_action.cpp @@ -61,15 +61,15 @@ class BuildCleanupAnchor { std::filesystem::path const& dir_path) -> std::optional<bazel_re::Digest> { auto const& cas = storage.CAS(); auto store_blob = [&cas](std::filesystem::path const& path, - auto is_exec) -> std::optional<bazel_re::Digest> { + auto is_exec) -> std::optional<ArtifactDigest> { return cas.StoreBlob</*kOwner=*/true>(path, is_exec); }; auto store_tree = - [&cas](std::string const& content) -> std::optional<bazel_re::Digest> { + [&cas](std::string const& content) -> std::optional<ArtifactDigest> { return cas.StoreTree(content); }; auto store_symlink = - [&cas](std::string const& content) -> std::optional<bazel_re::Digest> { + [&cas](std::string const& content) -> std::optional<ArtifactDigest> { return cas.StoreBlob(content); }; return Compatibility::IsCompatible() diff --git a/src/buildtool/main/add_to_cas.cpp b/src/buildtool/main/add_to_cas.cpp index 7a20af65..73f19502 100644 --- a/src/buildtool/main/add_to_cas.cpp +++ b/src/buildtool/main/add_to_cas.cpp @@ -78,15 +78,15 @@ auto AddArtifactsToCas(ToAddArguments const& clargs, } auto store_blob = [&cas](std::filesystem::path const& path, - auto is_exec) -> std::optional<bazel_re::Digest> { + auto is_exec) -> std::optional<ArtifactDigest> { return cas.StoreBlob</*kOwner=*/true>(path, is_exec); }; auto store_tree = [&cas](std::string const& content) - -> std::optional<bazel_re::Digest> { + -> std::optional<ArtifactDigest> { return cas.StoreTree(content); }; auto store_symlink = [&cas](std::string const& content) - -> std::optional<bazel_re::Digest> { + -> std::optional<ArtifactDigest> { return cas.StoreBlob(content); }; digest = BazelMsgFactory::CreateGitTreeDigestFromLocalTree( diff --git a/test/buildtool/storage/large_object_cas.test.cpp b/test/buildtool/storage/large_object_cas.test.cpp index 8199ee85..f0644694 100644 --- a/test/buildtool/storage/large_object_cas.test.cpp +++ b/test/buildtool/storage/large_object_cas.test.cpp @@ -708,28 +708,23 @@ auto Tree::StoreRaw(LocalCAS<kDefaultDoGlobalUplink> const& cas, } auto store_blob = [&cas](std::filesystem::path const& path, - auto is_exec) -> std::optional<bazel_re::Digest> { + auto is_exec) -> std::optional<ArtifactDigest> { return cas.StoreBlob</*kOwner=*/true>(path, is_exec); }; auto store_tree = - [&cas](std::string const& content) -> std::optional<bazel_re::Digest> { + [&cas](std::string const& content) -> std::optional<ArtifactDigest> { return cas.StoreTree(content); }; auto store_symlink = - [&cas](std::string const& content) -> std::optional<bazel_re::Digest> { + [&cas](std::string const& content) -> std::optional<ArtifactDigest> { return cas.StoreBlob(content); }; - auto bazel_digest = - Compatibility::IsCompatible() - ? BazelMsgFactory::CreateDirectoryDigestFromLocalTree( - directory, store_blob, store_tree, store_symlink) - : BazelMsgFactory::CreateGitTreeDigestFromLocalTree( - directory, store_blob, store_tree, store_symlink); - if (bazel_digest.has_value()) { - return static_cast<ArtifactDigest>(*bazel_digest); - } - return std::nullopt; + return Compatibility::IsCompatible() + ? BazelMsgFactory::CreateDirectoryDigestFromLocalTree( + directory, store_blob, store_tree, store_symlink) + : BazelMsgFactory::CreateGitTreeDigestFromLocalTree( + directory, store_blob, store_tree, store_symlink); } } // namespace LargeTestUtils |