diff --git a/.ci/compute_projects.py b/.ci/compute_projects.py index a4cfecf0cef90..d1d4770f48677 100644 --- a/.ci/compute_projects.py +++ b/.ci/compute_projects.py @@ -32,6 +32,7 @@ "lld": {"llvm"}, "mlir": {"llvm"}, "polly": {"llvm"}, + "libcxx": {"clang"}, } # This mapping describes the additional projects that should be tested when a @@ -67,6 +68,7 @@ "libclc", "openmp", }, + "libcxx": {"lldb"}, } # This mapping describes runtimes that should be enabled for a specific project, @@ -89,6 +91,7 @@ "llvm": {"libcxx", "libcxxabi", "libunwind"}, "clang": {"libcxx", "libcxxabi", "libunwind"}, ".ci": {"libcxx", "libcxxabi", "libunwind"}, + "libcxx": {"libcxx"}, } EXCLUDE_LINUX = { @@ -206,20 +209,19 @@ def _exclude_projects(current_projects: Set[str], platform: str) -> Set[str]: def _compute_projects_to_test(modified_projects: Set[str], platform: str) -> Set[str]: projects_to_test = set() for modified_project in modified_projects: + if modified_project in DEPENDENTS_TO_TEST: + for dependent_project in DEPENDENTS_TO_TEST[modified_project]: + if ( + platform == "Windows" + and dependent_project in EXCLUDE_DEPENDENTS_WINDOWS + ): + continue + projects_to_test.add(dependent_project) if modified_project in RUNTIMES: continue # Skip all projects where we cannot run tests. if modified_project in PROJECT_CHECK_TARGETS: projects_to_test.add(modified_project) - if modified_project not in DEPENDENTS_TO_TEST: - continue - for dependent_project in DEPENDENTS_TO_TEST[modified_project]: - if ( - platform == "Windows" - and dependent_project in EXCLUDE_DEPENDENTS_WINDOWS - ): - continue - projects_to_test.add(dependent_project) projects_to_test = _exclude_projects(projects_to_test, platform) return projects_to_test diff --git a/.ci/compute_projects_test.py b/.ci/compute_projects_test.py index fe1bf07eae8ff..817ce22767df6 100644 --- a/.ci/compute_projects_test.py +++ b/.ci/compute_projects_test.py @@ -239,16 +239,6 @@ def test_top_level_file(self): self.assertEqual(env_variables["runtimes_check_targets"], "") self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "") - def test_exclude_libcxx_in_projects(self): - env_variables = compute_projects.get_env_variables( - ["libcxx/CMakeLists.txt"], "Linux" - ) - self.assertEqual(env_variables["projects_to_build"], "") - self.assertEqual(env_variables["project_check_targets"], "") - self.assertEqual(env_variables["runtimes_to_build"], "") - self.assertEqual(env_variables["runtimes_check_targets"], "") - self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "") - def test_include_libc_in_runtimes(self): env_variables = compute_projects.get_env_variables( ["libc/CMakeLists.txt"], "Linux" @@ -437,6 +427,28 @@ def test_lit(self): "check-cxx check-cxxabi check-unwind", ) + def test_libcxx_linux(self): + env_variables = compute_projects.get_env_variables( + ["libcxx/CMakeLists.txt"], "Linux" + ) + self.assertEqual(env_variables["projects_to_build"], "clang;lldb;llvm") + self.assertEqual(env_variables["project_check_targets"], "check-lldb") + self.assertEqual(env_variables["runtimes_to_build"], "libcxx") + self.assertEqual(env_variables["runtimes_check_targets"], "") + self.assertEqual( + env_variables["runtimes_check_targets_needs_reconfig"], "check-cxx" + ) + + def test_libxx_windows(self): + env_variables = compute_projects.get_env_variables( + ["libcxx/CMakeLists.txt"], "Windows" + ) + self.assertEqual(env_variables["projects_to_build"], "") + self.assertEqual(env_variables["project_check_targets"], "") + self.assertEqual(env_variables["runtimes_to_build"], "") + self.assertEqual(env_variables["runtimes_check_targets"], "") + self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "") + if __name__ == "__main__": unittest.main()