summaryrefslogtreecommitdiff
path: root/test/buildtool
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-02-25 13:42:22 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-27 09:03:30 +0100
commit461312b57d3b49f92861d2c6c5e8a6b13ffa839b (patch)
treec642cd0d3379e6886d1b3847d38661e249e75d58 /test/buildtool
parenteccc7dcfb22fb9c6c42bbcd5566cd044acd1a2f3 (diff)
downloadjustbuild-461312b57d3b49f92861d2c6c5e8a6b13ffa839b.tar.gz
ArtifactBlob: Use static function for construction
Diffstat (limited to 'test/buildtool')
-rw-r--r--test/buildtool/execution_api/bazel/TARGETS7
-rw-r--r--test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp19
-rw-r--r--test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp14
-rw-r--r--test/buildtool/execution_api/bazel/bazel_network.test.cpp35
-rw-r--r--test/buildtool/execution_api/bazel/bytestream_client.test.cpp26
-rw-r--r--test/buildtool/execution_api/common/api_test.hpp26
-rw-r--r--test/buildtool/execution_api/local/local_execution.test.cpp20
-rw-r--r--test/buildtool/execution_engine/executor/TARGETS2
-rw-r--r--test/buildtool/execution_engine/executor/executor_api.test.hpp31
9 files changed, 94 insertions, 86 deletions
diff --git a/test/buildtool/execution_api/bazel/TARGETS b/test/buildtool/execution_api/bazel/TARGETS
index ce5c8077..25fbda81 100644
--- a/test/buildtool/execution_api/bazel/TARGETS
+++ b/test/buildtool/execution_api/bazel/TARGETS
@@ -6,7 +6,6 @@
[ ["@", "catch2", "", "catch2"]
, ["@", "gsl", "", "gsl"]
, ["@", "src", "src/buildtool/common", "artifact_blob"]
- , ["@", "src", "src/buildtool/common", "artifact_digest_factory"]
, ["@", "src", "src/buildtool/common", "common"]
, ["@", "src", "src/buildtool/common/remote", "remote_common"]
, ["@", "src", "src/buildtool/common/remote", "retry_config"]
@@ -14,6 +13,7 @@
, ["@", "src", "src/buildtool/execution_api/remote", "bazel_network"]
, ["@", "src", "src/buildtool/execution_api/remote", "config"]
, ["@", "src", "src/buildtool/file_system", "object_type"]
+ , ["@", "src", "src/utils/cpp", "expected"]
, ["utils", "catch-main-remote-execution"]
, ["utils", "test_auth_config"]
, ["utils", "test_hash_function_type"]
@@ -63,6 +63,7 @@
, ["@", "src", "src/buildtool/execution_api/remote", "bazel_network"]
, ["@", "src", "src/buildtool/execution_api/remote", "config"]
, ["@", "src", "src/buildtool/file_system", "object_type"]
+ , ["@", "src", "src/utils/cpp", "expected"]
, ["utils", "catch-main-remote-execution"]
, ["utils", "execution_bazel"]
, ["utils", "test_auth_config"]
@@ -80,7 +81,6 @@
, ["@", "grpc", "", "grpc"]
, ["@", "gsl", "", "gsl"]
, ["@", "src", "src/buildtool/common", "artifact_blob"]
- , ["@", "src", "src/buildtool/common", "artifact_digest_factory"]
, ["@", "src", "src/buildtool/common", "common"]
, ["@", "src", "src/buildtool/common", "protocol_traits"]
, ["@", "src", "src/buildtool/common/remote", "remote_common"]
@@ -90,6 +90,7 @@
, ["@", "src", "src/buildtool/execution_api/remote", "bazel_network"]
, ["@", "src", "src/buildtool/execution_api/remote", "config"]
, ["@", "src", "src/buildtool/file_system", "object_type"]
+ , ["@", "src", "src/utils/cpp", "expected"]
, ["utils", "catch-main-remote-execution"]
, ["utils", "execution_bazel"]
, ["utils", "test_auth_config"]
@@ -107,7 +108,6 @@
[ ["@", "catch2", "", "catch2"]
, ["@", "src", "src/buildtool/common", "artifact_blob"]
, ["@", "src", "src/buildtool/common", "artifact_description"]
- , ["@", "src", "src/buildtool/common", "artifact_digest_factory"]
, ["@", "src", "src/buildtool/common", "common"]
, ["@", "src", "src/buildtool/crypto", "hash_function"]
, [ "@"
@@ -120,6 +120,7 @@
, ["@", "src", "src/buildtool/execution_engine/dag", "dag"]
, ["@", "src", "src/buildtool/file_system", "file_system_manager"]
, ["@", "src", "src/buildtool/file_system", "object_type"]
+ , ["@", "src", "src/utils/cpp", "expected"]
, ["", "catch-main"]
, ["utils", "test_hash_function_type"]
]
diff --git a/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp b/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp
index 031da8f0..814de567 100644
--- a/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp
+++ b/test/buildtool/execution_api/bazel/bazel_cas_client.test.cpp
@@ -24,13 +24,13 @@
#include "gsl/gsl"
#include "src/buildtool/common/artifact_blob.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/remote/remote_common.hpp"
#include "src/buildtool/common/remote/retry_config.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_capabilities_client.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/file_system/object_type.hpp"
+#include "src/utils/cpp/expected.hpp"
#include "test/utils/hermeticity/test_hash_function_type.hpp"
#include "test/utils/remote_execution/test_auth_config.hpp"
#include "test/utils/remote_execution/test_remote_config.hpp"
@@ -60,25 +60,26 @@ TEST_CASE("Bazel internals: CAS Client", "[execution_api]") {
SECTION("Valid digest and blob") {
// digest of "test"
HashFunction const hash_function{TestHashType::ReadFromEnvironment()};
- auto const digest = ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content);
-
// Valid blob
- ArtifactBlob blob{digest, content, /*is_exec=*/false};
+ auto const blob =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content);
+ REQUIRE(blob.has_value());
// Search blob via digest
- auto digests = cas_client.FindMissingBlobs(instance_name, {digest});
+ auto digests =
+ cas_client.FindMissingBlobs(instance_name, {blob->GetDigest()});
CHECK(digests.size() <= 1);
if (not digests.empty()) {
// Upload blob, if not found
- CHECK(cas_client.BatchUpdateBlobs(instance_name, {blob}) == 1U);
+ CHECK(cas_client.BatchUpdateBlobs(instance_name, {*blob}) == 1U);
}
// Read blob
- auto blobs = cas_client.BatchReadBlobs(instance_name, {digest});
+ auto blobs =
+ cas_client.BatchReadBlobs(instance_name, {blob->GetDigest()});
REQUIRE(blobs.size() == 1);
- CHECK(blobs.begin()->GetDigest() == digest);
+ CHECK(blobs.begin()->GetDigest() == blob->GetDigest());
auto const read_content = blobs.begin()->ReadContent();
CHECK(read_content != nullptr);
CHECK(*read_content == content);
diff --git a/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp b/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp
index 6b106bc7..e4422884 100644
--- a/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp
+++ b/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp
@@ -28,12 +28,12 @@
#include "src/buildtool/common/artifact_blob.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp"
#include "src/buildtool/execution_engine/dag/dag.hpp"
#include "src/buildtool/file_system/file_system_manager.hpp"
#include "src/buildtool/file_system/object_type.hpp"
+#include "src/utils/cpp/expected.hpp"
#include "test/utils/hermeticity/test_hash_function_type.hpp"
namespace {
@@ -46,14 +46,16 @@ namespace {
if (not type) {
return std::nullopt;
}
- auto const content = FileSystemManager::ReadContentAtPath(fpath, *type);
+ auto content = FileSystemManager::ReadContentAtPath(fpath, *type);
if (not content.has_value()) {
return std::nullopt;
}
- return ArtifactBlob{ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, *content),
- *content,
- IsExecutableObject(*type)};
+ auto blob = ArtifactBlob::FromMemory(
+ hash_function, ObjectType::File, *std::move(content));
+ if (not blob.has_value()) {
+ return std::nullopt;
+ }
+ return *std::move(blob);
}
} // namespace
diff --git a/test/buildtool/execution_api/bazel/bazel_network.test.cpp b/test/buildtool/execution_api/bazel/bazel_network.test.cpp
index 3cb0ef35..fd812287 100644
--- a/test/buildtool/execution_api/bazel/bazel_network.test.cpp
+++ b/test/buildtool/execution_api/bazel/bazel_network.test.cpp
@@ -28,7 +28,6 @@
#include "gsl/gsl"
#include "src/buildtool/common/artifact_blob.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/protocol_traits.hpp"
#include "src/buildtool/common/remote/remote_common.hpp"
#include "src/buildtool/common/remote/retry_config.hpp"
@@ -37,6 +36,7 @@
#include "src/buildtool/execution_api/remote/bazel/bazel_network_reader.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/file_system/object_type.hpp"
+#include "src/utils/cpp/expected.hpp"
#include "test/utils/hermeticity/test_hash_function_type.hpp"
#include "test/utils/remote_execution/test_auth_config.hpp"
#include "test/utils/remote_execution/test_remote_config.hpp"
@@ -69,29 +69,26 @@ TEST_CASE("Bazel network: write/read blobs", "[execution_api]") {
std::string content_bar("bar");
std::string content_baz(kLargeSize, 'x'); // single larger blob
- ArtifactBlob foo{ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content_foo),
- content_foo,
- /*is_exec=*/false};
- ArtifactBlob bar{ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content_bar),
- content_bar,
- /*is_exec=*/false};
- ArtifactBlob baz{ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content_baz),
- content_baz,
- /*is_exec=*/false};
+ auto const foo =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content_foo);
+ REQUIRE(foo.has_value());
+ auto const bar =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content_bar);
+ REQUIRE(bar.has_value());
+ auto const baz =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content_baz);
+ REQUIRE(baz.has_value());
// Search blobs via digest
- REQUIRE(network.UploadBlobs({foo, bar, baz}));
+ REQUIRE(network.UploadBlobs({*foo, *bar, *baz}));
// Read blobs in order
auto reader = network.CreateReader();
- std::vector<ArtifactDigest> to_read{foo.GetDigest(),
- bar.GetDigest(),
- baz.GetDigest(),
- bar.GetDigest(),
- foo.GetDigest()};
+ std::vector<ArtifactDigest> to_read{foo->GetDigest(),
+ bar->GetDigest(),
+ baz->GetDigest(),
+ bar->GetDigest(),
+ foo->GetDigest()};
std::vector<ArtifactBlob> blobs{};
for (auto next : reader.ReadIncrementally(&to_read)) {
blobs.insert(blobs.end(), next.begin(), next.end());
diff --git a/test/buildtool/execution_api/bazel/bytestream_client.test.cpp b/test/buildtool/execution_api/bazel/bytestream_client.test.cpp
index 991dcf72..823c317c 100644
--- a/test/buildtool/execution_api/bazel/bytestream_client.test.cpp
+++ b/test/buildtool/execution_api/bazel/bytestream_client.test.cpp
@@ -30,6 +30,7 @@
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/file_system/object_type.hpp"
+#include "src/utils/cpp/expected.hpp"
#include "test/utils/hermeticity/test_hash_function_type.hpp"
#include "test/utils/remote_execution/test_auth_config.hpp"
#include "test/utils/remote_execution/test_remote_config.hpp"
@@ -53,13 +54,14 @@ TEST_CASE("ByteStream Client: Transfer single blob", "[execution_api]") {
std::string content("foobar");
// digest of "foobar"
- auto digest = ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content);
+ auto const blob =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content);
+ REQUIRE(blob.has_value());
- ArtifactBlob const blob{digest, content, /*is_exec=*/false};
- CHECK(stream.Write(instance_name, blob));
+ CHECK(stream.Write(instance_name, *blob));
- auto const downloaded_blob = stream.Read(instance_name, digest);
+ auto const downloaded_blob =
+ stream.Read(instance_name, blob->GetDigest());
REQUIRE(downloaded_blob.has_value());
auto const downloaded_content = downloaded_blob->ReadContent();
@@ -91,14 +93,15 @@ TEST_CASE("ByteStream Client: Transfer single blob", "[execution_api]") {
}
// digest of "instance_nameinstance_nameinstance_..."
- auto digest = ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, content);
- ArtifactBlob const blob{digest, content, /*is_exec=*/false};
+ auto const blob =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, content);
+ REQUIRE(blob.has_value());
- CHECK(stream.Write(instance_name, blob));
+ CHECK(stream.Write(instance_name, *blob));
SECTION("Download large blob") {
- auto const downloaded_blob = stream.Read(instance_name, digest);
+ auto const downloaded_blob =
+ stream.Read(instance_name, blob->GetDigest());
REQUIRE(downloaded_blob.has_value());
auto const downloaded_content = downloaded_blob->ReadContent();
@@ -107,7 +110,8 @@ TEST_CASE("ByteStream Client: Transfer single blob", "[execution_api]") {
}
SECTION("Incrementally download large blob") {
- auto reader = stream.IncrementalRead(instance_name, digest);
+ auto reader =
+ stream.IncrementalRead(instance_name, blob->GetDigest());
std::string data{};
auto chunk = reader.Next();
diff --git a/test/buildtool/execution_api/common/api_test.hpp b/test/buildtool/execution_api/common/api_test.hpp
index 8836181d..f8981434 100644
--- a/test/buildtool/execution_api/common/api_test.hpp
+++ b/test/buildtool/execution_api/common/api_test.hpp
@@ -241,12 +241,13 @@ using ExecProps = std::map<std::string, std::string>;
HashFunction const hash_function{TestHashType::ReadFromEnvironment()};
- auto test_digest = ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, test_content);
+ auto const test_blob =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, test_content);
+ REQUIRE(test_blob.has_value());
- auto input_artifact_opt =
- ArtifactDescription::CreateKnown(test_digest, ObjectType::File)
- .ToArtifact();
+ auto input_artifact_opt = ArtifactDescription::CreateKnown(
+ test_blob->GetDigest(), ObjectType::File)
+ .ToArtifact();
auto input_artifact =
DependencyGraph::ArtifactNode{std::move(input_artifact_opt)};
@@ -254,8 +255,7 @@ using ExecProps = std::map<std::string, std::string>;
std::string output_path{"output_file"};
auto api = api_factory();
- CHECK(api->Upload(
- {ArtifactBlob{test_digest, test_content, /*is_exec=*/false}}, false));
+ CHECK(api->Upload({*test_blob}, false));
auto action =
api->CreateAction(*api->UploadTree({{input_path, &input_artifact}}),
@@ -277,7 +277,8 @@ using ExecProps = std::map<std::string, std::string>;
auto const artifacts = response->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
if (is_hermetic) {
CHECK(not response->IsCached());
@@ -291,7 +292,8 @@ using ExecProps = std::map<std::string, std::string>;
auto const artifacts = response->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
CHECK(response->IsCached());
}
}
@@ -308,7 +310,8 @@ using ExecProps = std::map<std::string, std::string>;
auto const artifacts = response->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
CHECK(not response->IsCached());
SECTION("Rerun execution to verify caching") {
@@ -320,7 +323,8 @@ using ExecProps = std::map<std::string, std::string>;
auto const artifacts = response->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
CHECK(not response->IsCached());
}
}
diff --git a/test/buildtool/execution_api/local/local_execution.test.cpp b/test/buildtool/execution_api/local/local_execution.test.cpp
index a0220761..e1fbec99 100644
--- a/test/buildtool/execution_api/local/local_execution.test.cpp
+++ b/test/buildtool/execution_api/local/local_execution.test.cpp
@@ -273,19 +273,19 @@ TEST_CASE("LocalExecution: One input copied to output", "[execution_api]") {
auto api = LocalApi(&local_context, &repo_config);
std::string test_content("test");
- auto test_digest = ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- storage_config.Get().hash_function, test_content);
- REQUIRE(api.Upload(
- {ArtifactBlob{test_digest, test_content, /*is_exec=*/false}}, false));
+ auto const test_blob = ArtifactBlob::FromMemory(
+ storage_config.Get().hash_function, ObjectType::File, test_content);
+ REQUIRE(test_blob);
+ REQUIRE(api.Upload({*test_blob}, false));
std::string input_path{"dir/subdir/input"};
std::string output_path{"output_file"};
std::vector<std::string> const cmdline = {"cp", input_path, output_path};
- auto local_artifact_opt =
- ArtifactDescription::CreateKnown(test_digest, ObjectType::File)
- .ToArtifact();
+ auto local_artifact_opt = ArtifactDescription::CreateKnown(
+ test_blob->GetDigest(), ObjectType::File)
+ .ToArtifact();
auto local_artifact =
DependencyGraph::ArtifactNode{std::move(local_artifact_opt)};
@@ -310,7 +310,8 @@ TEST_CASE("LocalExecution: One input copied to output", "[execution_api]") {
auto const artifacts = output->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
// ensure result IS in cache
output = action->Execute(nullptr);
@@ -329,7 +330,8 @@ TEST_CASE("LocalExecution: One input copied to output", "[execution_api]") {
auto const artifacts = output->Artifacts();
REQUIRE(artifacts.has_value());
REQUIRE(artifacts.value()->contains(output_path));
- CHECK(artifacts.value()->at(output_path).digest == test_digest);
+ CHECK(artifacts.value()->at(output_path).digest ==
+ test_blob->GetDigest());
// ensure result IS STILL NOT in cache
output = action->Execute(nullptr);
diff --git a/test/buildtool/execution_engine/executor/TARGETS b/test/buildtool/execution_engine/executor/TARGETS
index bb7c43da..c0dcc56f 100644
--- a/test/buildtool/execution_engine/executor/TARGETS
+++ b/test/buildtool/execution_engine/executor/TARGETS
@@ -9,7 +9,6 @@
, ["@", "src", "src/buildtool/common", "action_description"]
, ["@", "src", "src/buildtool/common", "artifact_blob"]
, ["@", "src", "src/buildtool/common", "artifact_description"]
- , ["@", "src", "src/buildtool/common", "artifact_digest_factory"]
, ["@", "src", "src/buildtool/common", "common"]
, ["@", "src", "src/buildtool/common", "config"]
, ["@", "src", "src/buildtool/common", "tree"]
@@ -24,6 +23,7 @@
, ["@", "src", "src/buildtool/file_system", "file_system_manager"]
, ["@", "src", "src/buildtool/file_system", "object_type"]
, ["@", "src", "src/buildtool/progress_reporting", "progress"]
+ , ["@", "src", "src/utils/cpp", "expected"]
, ["utils", "test_api_bundle"]
, ["utils", "test_hash_function_type"]
, ["utils", "test_remote_config"]
diff --git a/test/buildtool/execution_engine/executor/executor_api.test.hpp b/test/buildtool/execution_engine/executor/executor_api.test.hpp
index 20b4a091..6a8f409e 100644
--- a/test/buildtool/execution_engine/executor/executor_api.test.hpp
+++ b/test/buildtool/execution_engine/executor/executor_api.test.hpp
@@ -36,7 +36,6 @@
#include "src/buildtool/common/artifact_blob.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/remote/retry_config.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
@@ -51,6 +50,7 @@
#include "src/buildtool/file_system/file_system_manager.hpp"
#include "src/buildtool/file_system/object_type.hpp"
#include "src/buildtool/progress_reporting/progress.hpp"
+#include "src/utils/cpp/expected.hpp"
#include "test/utils/executor/test_api_bundle.hpp"
#include "test/utils/hermeticity/test_hash_function_type.hpp"
#include "test/utils/remote_execution/test_remote_config.hpp"
@@ -70,12 +70,10 @@ static inline void RunBlobUpload(RepositoryConfig* repo_config,
auto api = factory();
HashFunction const hash_function{TestHashType::ReadFromEnvironment()};
- std::string const blob = "test";
- CHECK(api->Upload(
- {ArtifactBlob{ArtifactDigestFactory::HashDataAs<ObjectType::File>(
- hash_function, blob),
- blob,
- /*is_exec=*/false}}));
+ auto const blob =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, "test");
+ REQUIRE(blob.has_value());
+ CHECK(api->Upload({*blob}));
}
[[nodiscard]] static inline auto GetTestDir() -> std::filesystem::path {
@@ -424,23 +422,22 @@ static inline void TestUploadAndDownloadTrees(
HashFunction const hash_function{TestHashType::ReadFromEnvironment()};
- auto foo = std::string{"foo"};
- auto bar = std::string{"bar"};
- auto const foo_digest =
- ArtifactDigestFactory::HashDataAs<ObjectType::File>(hash_function, foo);
- auto const bar_digest =
- ArtifactDigestFactory::HashDataAs<ObjectType::File>(hash_function, bar);
+ auto const foo =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, "foo");
+ REQUIRE(foo.has_value());
+ auto const bar =
+ ArtifactBlob::FromMemory(hash_function, ObjectType::File, "bar");
+ REQUIRE(bar.has_value());
// upload blobs
auto api = factory();
- REQUIRE(api->Upload({ArtifactBlob{foo_digest, foo, /*is_exec=*/false},
- ArtifactBlob{bar_digest, bar, /*is_exec=*/false}}));
+ REQUIRE(api->Upload({*foo, *bar}));
// define known artifacts
auto foo_desc =
- ArtifactDescription::CreateKnown(foo_digest, ObjectType::File);
+ ArtifactDescription::CreateKnown(foo->GetDigest(), ObjectType::File);
auto bar_desc =
- ArtifactDescription::CreateKnown(bar_digest, ObjectType::Symlink);
+ ArtifactDescription::CreateKnown(bar->GetDigest(), ObjectType::Symlink);
DependencyGraph g{};
auto foo_id = g.AddArtifact(foo_desc);