diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-24 11:31:42 +0100 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-27 15:03:20 +0100 |
commit | cf04253130030bc28866d10aa1f8fe1353643d42 (patch) | |
tree | ef7049624771866455105a8dab7b001840139701 /test/buildtool/build_engine/base_maps/rule_map.test.cpp | |
parent | bc09302c2772c979c45ecc716c36e4a70bb484ac (diff) | |
download | justbuild-cf04253130030bc28866d10aa1f8fe1353643d42.tar.gz |
Refactoring RepositoryConfig
With the introduction of 'just serve', export targets can now be
built also independently from one another based on their
corresponding minimal repository configuration, as stored in the
target cache key.
In this context, this commit changes the RepositoryConfig usage
from one global (static) instance to pointers passed as necessary
throughout the code.
Diffstat (limited to 'test/buildtool/build_engine/base_maps/rule_map.test.cpp')
-rw-r--r-- | test/buildtool/build_engine/base_maps/rule_map.test.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/test/buildtool/build_engine/base_maps/rule_map.test.cpp b/test/buildtool/build_engine/base_maps/rule_map.test.cpp index 4235d1f1..7a3a021f 100644 --- a/test/buildtool/build_engine/base_maps/rule_map.test.cpp +++ b/test/buildtool/build_engine/base_maps/rule_map.test.cpp @@ -14,11 +14,13 @@ #include <filesystem> #include <functional> +#include <memory> #include "catch2/catch_test_macros.hpp" #include "src/buildtool/build_engine/base_maps/expression_map.hpp" #include "src/buildtool/build_engine/base_maps/json_file_map.hpp" #include "src/buildtool/build_engine/base_maps/rule_map.hpp" +#include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/multithreading/task_system.hpp" #include "test/buildtool/build_engine/base_maps/test_repo.hpp" @@ -26,7 +28,7 @@ namespace { using namespace BuildMaps::Base; // NOLINT -void SetupConfig(bool use_git) { +auto SetupConfig(bool use_git) -> RepositoryConfig { auto root = FileRoot{kBasePath / "data_rule"}; if (use_git) { auto repo_path = CreateTestRepo(); @@ -35,19 +37,20 @@ void SetupConfig(bool use_git) { REQUIRE(git_root); root = std::move(*git_root); } - RepositoryConfig::Instance().Reset(); - RepositoryConfig::Instance().SetInfo( - "", RepositoryConfig::RepositoryInfo{root}); + RepositoryConfig repo_config{}; + repo_config.SetInfo("", RepositoryConfig::RepositoryInfo{root}); + return repo_config; } auto ReadUserRule(EntityName const& id, UserRuleMap::Consumer value_checker, bool use_git = false) -> bool { - SetupConfig(use_git); - auto expr_file_map = CreateExpressionFileMap(0); - auto expr_func_map = CreateExpressionMap(&expr_file_map); - auto rule_file_map = CreateRuleFileMap(0); - auto user_rule_map = CreateRuleMap(&rule_file_map, &expr_func_map); + auto repo_config = SetupConfig(use_git); + auto expr_file_map = CreateExpressionFileMap(&repo_config, 0); + auto expr_func_map = CreateExpressionMap(&expr_file_map, &repo_config); + auto rule_file_map = CreateRuleFileMap(&repo_config, 0); + auto user_rule_map = + CreateRuleMap(&rule_file_map, &expr_func_map, &repo_config); bool success{true}; { |