diff options
-rw-r--r-- | src/buildtool/common/artifact_factory.hpp | 9 | ||||
-rw-r--r-- | test/buildtool/common/TARGETS | 2 | ||||
-rw-r--r-- | test/buildtool/common/artifact_description.test.cpp | 30 | ||||
-rw-r--r-- | test/buildtool/common/artifact_factory.test.cpp | 20 | ||||
-rw-r--r-- | test/buildtool/execution_api/bazel/TARGETS | 2 | ||||
-rw-r--r-- | test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp | 32 | ||||
-rw-r--r-- | test/buildtool/execution_api/common/TARGETS | 2 | ||||
-rw-r--r-- | test/buildtool/execution_api/common/api_test.hpp | 9 | ||||
-rw-r--r-- | test/buildtool/execution_api/local/TARGETS | 2 | ||||
-rw-r--r-- | test/buildtool/execution_api/local/local_execution.test.cpp | 9 |
10 files changed, 44 insertions, 73 deletions
diff --git a/src/buildtool/common/artifact_factory.hpp b/src/buildtool/common/artifact_factory.hpp index dccbe221..b109171c 100644 --- a/src/buildtool/common/artifact_factory.hpp +++ b/src/buildtool/common/artifact_factory.hpp @@ -34,15 +34,6 @@ class ArtifactFactory { public: - [[nodiscard]] static auto FromDescription(nlohmann::json const& description) - -> std::optional<Artifact> { - auto desc = ArtifactDescription::FromJson(description); - if (desc) { - return desc->ToArtifact(); - } - return std::nullopt; - } - [[nodiscard]] static auto DescribeLocalArtifact( std::filesystem::path const& src_path, std::string repository) noexcept -> nlohmann::json { diff --git a/test/buildtool/common/TARGETS b/test/buildtool/common/TARGETS index d174de5b..986dea0c 100644 --- a/test/buildtool/common/TARGETS +++ b/test/buildtool/common/TARGETS @@ -6,7 +6,7 @@ [ ["@", "catch2", "", "catch2"] , ["", "catch-main"] , ["@", "json", "", "json"] - , ["@", "src", "src/buildtool/common", "artifact_factory"] + , ["@", "src", "src/buildtool/common", "artifact_description"] , ["@", "src", "src/buildtool/file_system", "object_type"] ] , "stage": ["test", "buildtool", "common"] diff --git a/test/buildtool/common/artifact_description.test.cpp b/test/buildtool/common/artifact_description.test.cpp index d07efa93..c8fffc46 100644 --- a/test/buildtool/common/artifact_description.test.cpp +++ b/test/buildtool/common/artifact_description.test.cpp @@ -30,10 +30,8 @@ TEST_CASE("Local artifact", "[artifact_description]") { auto local_desc = ArtifactDescription::CreateLocal( std::filesystem::path{"local_path"}, "repo"); - auto local = local_desc.ToArtifact(); - auto local_from_factory = - ArtifactFactory::FromDescription(local_desc.ToJson()); - CHECK(local == *local_from_factory); + auto from_json = ArtifactDescription::FromJson(local_desc.ToJson()); + CHECK(local_desc == *from_json); } TEST_CASE("Known artifact", "[artifact_description]") { @@ -41,38 +39,30 @@ TEST_CASE("Known artifact", "[artifact_description]") { auto known_desc = ArtifactDescription::CreateKnown( ArtifactDigest{std::string{"f_fake_hash"}, 0, /*is_tree=*/false}, ObjectType::File); - auto known = known_desc.ToArtifact(); - auto known_from_factory = - ArtifactFactory::FromDescription(known_desc.ToJson()); - CHECK(known == *known_from_factory); + auto from_json = ArtifactDescription::FromJson(known_desc.ToJson()); + CHECK(known_desc == *from_json); } SECTION("Executable object") { auto known_desc = ArtifactDescription::CreateKnown( ArtifactDigest{std::string{"x_fake_hash"}, 1, /*is_tree=*/false}, ObjectType::Executable); - auto known = known_desc.ToArtifact(); - auto known_from_factory = - ArtifactFactory::FromDescription(known_desc.ToJson()); - CHECK(known == *known_from_factory); + auto from_json = ArtifactDescription::FromJson(known_desc.ToJson()); + CHECK(known_desc == *from_json); } SECTION("Symlink object") { auto known_desc = ArtifactDescription::CreateKnown( ArtifactDigest{std::string{"l_fake_hash"}, 2, /*is_tree=*/false}, ObjectType::Symlink); - auto known = known_desc.ToArtifact(); - auto known_from_factory = - ArtifactFactory::FromDescription(known_desc.ToJson()); - CHECK(known == *known_from_factory); + auto from_json = ArtifactDescription::FromJson(known_desc.ToJson()); + CHECK(known_desc == *from_json); } } TEST_CASE("Action artifact", "[artifact_description]") { auto action_desc = ArtifactDescription::CreateAction( "action_id", std::filesystem::path{"out_path"}); - auto action = action_desc.ToArtifact(); - auto action_from_factory = - ArtifactFactory::FromDescription(action_desc.ToJson()); - CHECK(action == *action_from_factory); + auto from_json = ArtifactDescription::FromJson(action_desc.ToJson()); + CHECK(action_desc == *from_json); } TEST_CASE("From JSON", "[artifact_description]") { diff --git a/test/buildtool/common/artifact_factory.test.cpp b/test/buildtool/common/artifact_factory.test.cpp index 64a6c782..222ffd2b 100644 --- a/test/buildtool/common/artifact_factory.test.cpp +++ b/test/buildtool/common/artifact_factory.test.cpp @@ -16,23 +16,22 @@ #include "catch2/catch_test_macros.hpp" #include "nlohmann/json.hpp" -#include "src/buildtool/common/artifact_factory.hpp" +#include "src/buildtool/common/artifact_description.hpp" #include "src/buildtool/file_system/object_type.hpp" TEST_CASE("Description missing mandatory key/value pair", "[artifact_factory]") { - nlohmann::json const missing_type = {{"data", {{"path", "some/path"}}}}; - CHECK(not ArtifactFactory::FromDescription(missing_type)); + CHECK(not ArtifactDescription::FromJson(missing_type)); nlohmann::json const missing_data = {{"type", "LOCAL"}}; - CHECK(not ArtifactFactory::FromDescription(missing_data)); + CHECK(not ArtifactDescription::FromJson(missing_data)); } TEST_CASE("Local artifact description contains incorrect value for \"data\"", "[artifact_factory]") { nlohmann::json const local_art_missing_path = { {"type", "LOCAL"}, {"data", nlohmann::json::object()}}; - CHECK(not ArtifactFactory::FromDescription(local_art_missing_path)); + CHECK(not ArtifactDescription::FromJson(local_art_missing_path)); } TEST_CASE("Known artifact description contains incorrect value for \"data\"", @@ -43,20 +42,19 @@ TEST_CASE("Known artifact description contains incorrect value for \"data\"", nlohmann::json const known_art_missing_id = { {"type", "KNOWN"}, {"data", {{"size", 15}, {"file_type", file_type}}}}; - CHECK(not ArtifactFactory::FromDescription(known_art_missing_id)); + CHECK(not ArtifactDescription::FromJson(known_art_missing_id)); } SECTION("missing \"size\"") { nlohmann::json const known_art_missing_size = { {"type", "KNOWN"}, {"data", {{"id", "known_input"}, {"file_type", file_type}}}}; - CHECK(not ArtifactFactory::FromDescription(known_art_missing_size)); + CHECK(not ArtifactDescription::FromJson(known_art_missing_size)); } SECTION("missing \"file_type\"") { nlohmann::json const known_art_missing_file_type = { {"type", "KNOWN"}, {"data", {{"id", "known_input"}, {"size", 15}}}}; - CHECK( - not ArtifactFactory::FromDescription(known_art_missing_file_type)); + CHECK(not ArtifactDescription::FromJson(known_art_missing_file_type)); } } @@ -64,9 +62,9 @@ TEST_CASE("Action artifact description contains incorrect value for \"data\"", "[artifact_factory]") { nlohmann::json const action_art_missing_id = { {"type", "ACTION"}, {"data", {{"path", "output/path"}}}}; - CHECK(not ArtifactFactory::FromDescription(action_art_missing_id)); + CHECK(not ArtifactDescription::FromJson(action_art_missing_id)); nlohmann::json const action_art_missing_path = { {"type", "ACTION"}, {"data", {{"id", "action_id"}}}}; - CHECK(not ArtifactFactory::FromDescription(action_art_missing_path)); + CHECK(not ArtifactDescription::FromJson(action_art_missing_path)); } diff --git a/test/buildtool/execution_api/bazel/TARGETS b/test/buildtool/execution_api/bazel/TARGETS index d3e42c6d..f9caa7ee 100644 --- a/test/buildtool/execution_api/bazel/TARGETS +++ b/test/buildtool/execution_api/bazel/TARGETS @@ -74,7 +74,7 @@ , "private-deps": [ ["@", "catch2", "", "catch2"] , ["", "catch-main"] - , ["@", "src", "src/buildtool/common", "artifact_factory"] + , ["@", "src", "src/buildtool/common", "artifact_description"] , [ "@" , "src" , "src/buildtool/execution_api/bazel_msg" 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 71dd67e3..b56021c8 100644 --- a/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp +++ b/test/buildtool/execution_api/bazel/bazel_msg_factory.test.cpp @@ -16,7 +16,7 @@ #include <unordered_map> #include "catch2/catch_test_macros.hpp" -#include "src/buildtool/common/artifact_factory.hpp" +#include "src/buildtool/common/artifact_description.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" @@ -51,28 +51,22 @@ TEST_CASE("Bazel internals: MessageFactory", "[execution_api]") { // create known artifacts auto artifact1_opt = - ArtifactFactory::FromDescription(ArtifactFactory::DescribeKnownArtifact( - NativeSupport::Unprefix(file1_blob->digest.hash()), - static_cast<std::size_t>(file1_blob->digest.size_bytes()), - ObjectType::File)); - CHECK(artifact1_opt.has_value()); - auto artifact1 = DependencyGraph::ArtifactNode{std::move(*artifact1_opt)}; + ArtifactDescription::CreateKnown(ArtifactDigest{file1_blob->digest}, + ObjectType::File) + .ToArtifact(); + auto artifact1 = DependencyGraph::ArtifactNode{std::move(artifact1_opt)}; auto artifact2_opt = - ArtifactFactory::FromDescription(ArtifactFactory::DescribeKnownArtifact( - NativeSupport::Unprefix(file2_blob->digest.hash()), - static_cast<std::size_t>(file2_blob->digest.size_bytes()), - ObjectType::File)); - CHECK(artifact2_opt.has_value()); - auto artifact2 = DependencyGraph::ArtifactNode{std::move(*artifact2_opt)}; + ArtifactDescription::CreateKnown(ArtifactDigest{file2_blob->digest}, + ObjectType::File) + .ToArtifact(); + auto artifact2 = DependencyGraph::ArtifactNode{std::move(artifact2_opt)}; auto artifact3_opt = - ArtifactFactory::FromDescription(ArtifactFactory::DescribeKnownArtifact( - NativeSupport::Unprefix(link_blob->digest.hash()), - static_cast<std::size_t>(link_blob->digest.size_bytes()), - ObjectType::Symlink)); - CHECK(artifact3_opt.has_value()); - auto artifact3 = DependencyGraph::ArtifactNode{std::move(*artifact3_opt)}; + ArtifactDescription::CreateKnown(ArtifactDigest{link_blob->digest}, + ObjectType::Symlink) + .ToArtifact(); + auto artifact3 = DependencyGraph::ArtifactNode{std::move(artifact3_opt)}; // create directory tree auto tree = diff --git a/test/buildtool/execution_api/common/TARGETS b/test/buildtool/execution_api/common/TARGETS index f49f65fc..b4e2c4a9 100644 --- a/test/buildtool/execution_api/common/TARGETS +++ b/test/buildtool/execution_api/common/TARGETS @@ -4,7 +4,7 @@ , "hdrs": ["api_test.hpp"] , "deps": [ ["@", "catch2", "", "catch2"] - , ["@", "src", "src/buildtool/common", "artifact_factory"] + , ["@", "src", "src/buildtool/common", "artifact_description"] , ["@", "src", "src/buildtool/execution_api/common", "common"] , ["@", "src", "src/buildtool/execution_api/local", "config"] , ["@", "src", "src/buildtool/file_system", "file_system_manager"] diff --git a/test/buildtool/execution_api/common/api_test.hpp b/test/buildtool/execution_api/common/api_test.hpp index 413ed7fd..d43c850d 100644 --- a/test/buildtool/execution_api/common/api_test.hpp +++ b/test/buildtool/execution_api/common/api_test.hpp @@ -20,7 +20,7 @@ #include <vector> #include "catch2/catch_test_macros.hpp" -#include "src/buildtool/common/artifact_factory.hpp" +#include "src/buildtool/common/artifact_description.hpp" #include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" @@ -207,11 +207,10 @@ inline void SetLauncher() { auto test_digest = ArtifactDigest::Create<ObjectType::File>(test_content); auto input_artifact_opt = - ArtifactFactory::FromDescription(ArtifactFactory::DescribeKnownArtifact( - test_digest.hash(), test_digest.size(), ObjectType::File)); - CHECK(input_artifact_opt.has_value()); + ArtifactDescription::CreateKnown(test_digest, ObjectType::File) + .ToArtifact(); auto input_artifact = - DependencyGraph::ArtifactNode{std::move(*input_artifact_opt)}; + DependencyGraph::ArtifactNode{std::move(input_artifact_opt)}; std::string input_path{"dir/subdir/input"}; std::string output_path{"output_file"}; diff --git a/test/buildtool/execution_api/local/TARGETS b/test/buildtool/execution_api/local/TARGETS index eb23c99a..09b88419 100644 --- a/test/buildtool/execution_api/local/TARGETS +++ b/test/buildtool/execution_api/local/TARGETS @@ -5,7 +5,7 @@ , "private-deps": [ ["@", "catch2", "", "catch2"] , ["", "catch-main"] - , ["@", "src", "src/buildtool/common", "artifact_factory"] + , ["@", "src", "src/buildtool/common", "artifact_description"] , ["@", "src", "src/buildtool/common", "config"] , ["@", "src", "src/buildtool/execution_api/local", "config"] , ["@", "src", "src/buildtool/execution_api/local", "local"] diff --git a/test/buildtool/execution_api/local/local_execution.test.cpp b/test/buildtool/execution_api/local/local_execution.test.cpp index bbd48ddc..4c2e309c 100644 --- a/test/buildtool/execution_api/local/local_execution.test.cpp +++ b/test/buildtool/execution_api/local/local_execution.test.cpp @@ -19,7 +19,7 @@ #include <vector> #include "catch2/catch_test_macros.hpp" -#include "src/buildtool/common/artifact_factory.hpp" +#include "src/buildtool/common/artifact_description.hpp" #include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/execution_api/local/config.hpp" #include "src/buildtool/execution_api/local/local_api.hpp" @@ -233,11 +233,10 @@ TEST_CASE("LocalExecution: One input copied to output", "[execution_api]") { std::vector<std::string> const cmdline = {"cp", input_path, output_path}; auto local_artifact_opt = - ArtifactFactory::FromDescription(ArtifactFactory::DescribeKnownArtifact( - test_digest.hash(), test_digest.size(), ObjectType::File)); - REQUIRE(local_artifact_opt); + ArtifactDescription::CreateKnown(test_digest, ObjectType::File) + .ToArtifact(); auto local_artifact = - DependencyGraph::ArtifactNode{std::move(*local_artifact_opt)}; + DependencyGraph::ArtifactNode{std::move(local_artifact_opt)}; auto action = api.CreateAction(*api.UploadTree({{input_path, &local_artifact}}), |