diff options
Diffstat (limited to 'test')
3 files changed, 45 insertions, 35 deletions
diff --git a/test/buildtool/build_engine/target_map/result_map.test.cpp b/test/buildtool/build_engine/target_map/result_map.test.cpp index 14bf0638..a0b8f0bc 100644 --- a/test/buildtool/build_engine/target_map/result_map.test.cpp +++ b/test/buildtool/build_engine/target_map/result_map.test.cpp @@ -21,12 +21,12 @@ namespace { [[nodiscard]] auto CreateAnalysedTarget( TargetResult const& result, - std::vector<ActionDescription> const& descs, + std::vector<ActionDescription::Ptr> const& descs, std::vector<std::string> const& blobs) -> AnalysedTargetPtr { return std::make_shared<AnalysedTarget>(result, descs, blobs, - std::vector<Tree>(), + std::vector<Tree::Ptr>(), std::unordered_set<std::string>{}, std::set<std::string>{}); } @@ -54,34 +54,43 @@ TEST_CASE("origins creation", "[result_map]") { using BuildMaps::Base::EntityName; using BuildMaps::Target::ResultTargetMap; - auto foo = - ActionDescription{{}, {}, Action{"run_foo", {"touch", "foo"}, {}}, {}}; - auto bar = - ActionDescription{{}, {}, Action{"run_bar", {"touch", "bar"}, {}}, {}}; - auto baz = - ActionDescription{{}, {}, Action{"run_baz", {"touch", "baz"}, {}}, {}}; + auto foo = std::make_shared<ActionDescription>( + ActionDescription::outputs_t{}, + ActionDescription::outputs_t{}, + Action{"run_foo", {"touch", "foo"}, {}}, + ActionDescription::inputs_t{}); + auto bar = std::make_shared<ActionDescription>( + ActionDescription::outputs_t{}, + ActionDescription::outputs_t{}, + Action{"run_bar", {"touch", "bar"}, {}}, + ActionDescription::inputs_t{}); + auto baz = std::make_shared<ActionDescription>( + ActionDescription::outputs_t{}, + ActionDescription::outputs_t{}, + Action{"run_baz", {"touch", "baz"}, {}}, + ActionDescription::inputs_t{}); ResultTargetMap map{0}; CHECK(map.Add(EntityName{"", ".", "foobar"}, {}, CreateAnalysedTarget( - {}, std::vector<ActionDescription>{foo, bar}, {}))); - CHECK(map.Add( - EntityName{"", ".", "baz"}, - {}, - CreateAnalysedTarget({}, std::vector<ActionDescription>{baz}, {}))); + {}, std::vector<ActionDescription::Ptr>{foo, bar}, {}))); + CHECK(map.Add(EntityName{"", ".", "baz"}, + {}, + CreateAnalysedTarget( + {}, std::vector<ActionDescription::Ptr>{baz}, {}))); auto result = map.ToResult(); REQUIRE(result.actions.size() == 3); CHECK(result.blobs.empty()); - auto expect_foo = foo.ToJson(); - auto expect_bar = bar.ToJson(); - auto expect_baz = baz.ToJson(); + auto expect_foo = foo->ToJson(); + auto expect_bar = bar->ToJson(); + auto expect_baz = baz->ToJson(); CHECK(map.ToJson() == nlohmann::json{{"actions", - {{foo.Id(), expect_foo}, - {bar.Id(), expect_bar}, - {baz.Id(), expect_baz}}}, + {{foo->Id(), expect_foo}, + {bar->Id(), expect_bar}, + {baz->Id(), expect_baz}}}, {"blobs", nlohmann::json::array()}, {"trees", nlohmann::json::object()}}); @@ -101,9 +110,9 @@ TEST_CASE("origins creation", "[result_map]") { nlohmann::json from_file{}; file >> from_file; CHECK(from_file == nlohmann::json{{"actions", - {{foo.Id(), expect_foo}, - {bar.Id(), expect_bar}, - {baz.Id(), expect_baz}}}, + {{foo->Id(), expect_foo}, + {bar->Id(), expect_bar}, + {baz->Id(), expect_baz}}}, {"blobs", nlohmann::json::array()}, {"trees", nlohmann::json::object()}}); } diff --git a/test/buildtool/build_engine/target_map/target_map.test.cpp b/test/buildtool/build_engine/target_map/target_map.test.cpp index a711eef3..3bfdfccd 100644 --- a/test/buildtool/build_engine/target_map/target_map.test.cpp +++ b/test/buildtool/build_engine/target_map/target_map.test.cpp @@ -315,9 +315,9 @@ TEST_CASE("simple targets") { // in the vector is guaranteed. The test rule generates the action by // iterating over the "srcs" field, so we get the actions in the order // of that field, not in alphabetical order. - CHECK(result->Actions()[0].ToJson()["input"]["in"]["data"]["path"] == + CHECK(result->Actions()[0]->ToJson()["input"]["in"]["data"]["path"] == "simple_targets/foo.txt"); - CHECK(result->Actions()[1].ToJson()["input"]["in"]["data"]["path"] == + CHECK(result->Actions()[1]->ToJson()["input"]["in"]["data"]["path"] == "simple_targets/bar.txt"); } } @@ -594,9 +594,9 @@ TEST_CASE("target reference") { CHECK(result->Actions().size() == 1); CHECK(result->Actions()[0] - .ToJson()["input"]["raw_data/hello.txt"]["type"] == "LOCAL"); + ->ToJson()["input"]["raw_data/hello.txt"]["type"] == "LOCAL"); CHECK(result->Actions()[0] - .ToJson()["input"]["raw_data/hello.txt"]["data"]["path"] == + ->ToJson()["input"]["raw_data/hello.txt"]["data"]["path"] == "file_reference/hello.txt"); } @@ -665,16 +665,17 @@ TEST_CASE("trees") { CHECK(!error); CHECK(error_msg == "NONE"); CHECK(result->Actions().size() == 1); - CHECK(result->Actions()[0].ToJson()["input"]["tree"]["type"] == "TREE"); - CHECK(result->Actions()[0].ToJson()["input"]["foo.txt"]["type"] == + CHECK(result->Actions()[0]->ToJson()["input"]["tree"]["type"] == + "TREE"); + CHECK(result->Actions()[0]->ToJson()["input"]["foo.txt"]["type"] == "LOCAL"); - CHECK( - result->Actions()[0].ToJson()["input"]["foo.txt"]["data"]["path"] == - "tree/foo.txt"); + CHECK(result->Actions()[0]->ToJson()["input"]["foo.txt"]["data"]["pat" + "h"] == + "tree/foo.txt"); CHECK(result->Trees().size() == 1); - CHECK(result->Trees()[0].ToJson()["foo.txt"]["type"] == "LOCAL"); - CHECK(result->Trees()[0].ToJson()["bar.txt"]["type"] == "LOCAL"); - CHECK(result->Trees()[0].ToJson()["baz.txt"]["type"] == "LOCAL"); + CHECK(result->Trees()[0]->ToJson()["foo.txt"]["type"] == "LOCAL"); + CHECK(result->Trees()[0]->ToJson()["bar.txt"]["type"] == "LOCAL"); + CHECK(result->Trees()[0]->ToJson()["baz.txt"]["type"] == "LOCAL"); } SECTION("stage into tree") { diff --git a/test/buildtool/common/action_description.test.cpp b/test/buildtool/common/action_description.test.cpp index ac7367e1..ee5c00da 100644 --- a/test/buildtool/common/action_description.test.cpp +++ b/test/buildtool/common/action_description.test.cpp @@ -20,7 +20,7 @@ TEST_CASE("From JSON", "[action_description]") { SECTION("Parse full action") { auto description = ActionDescription::FromJson("id", json); REQUIRE(description); - CHECK(description->ToJson() == json); + CHECK((*description)->ToJson() == json); } SECTION("Parse action without optional input") { |