brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.5 KiB · fe1bf07 Raw
443 lines · python
1# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.2# See https://llvm.org/LICENSE.txt for license information.3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4"""Tests for compute_projects.py"""5 6import unittest7 8import compute_projects9 10 11class TestComputeProjects(unittest.TestCase):12    def test_llvm(self):13        env_variables = compute_projects.get_env_variables(14            ["llvm/CMakeLists.txt"], "Linux"15        )16        self.assertEqual(17            env_variables["projects_to_build"],18            "bolt;clang;clang-tools-extra;flang;lld;lldb;llvm;mlir;polly",19        )20        self.assertEqual(21            env_variables["project_check_targets"],22            "check-bolt check-clang check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",23        )24        self.assertEqual(25            env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"26        )27        self.assertEqual(28            env_variables["runtimes_check_targets"],29            "",30        )31        self.assertEqual(32            env_variables["runtimes_check_targets_needs_reconfig"],33            "check-cxx check-cxxabi check-unwind",34        )35 36    def test_llvm_windows(self):37        env_variables = compute_projects.get_env_variables(38            ["llvm/CMakeLists.txt"], "Windows"39        )40        self.assertEqual(41            env_variables["projects_to_build"],42            "clang;clang-tools-extra;lld;llvm;mlir;polly",43        )44        self.assertEqual(45            env_variables["project_check_targets"],46            "check-clang check-clang-tools check-lld check-llvm check-mlir check-polly",47        )48        self.assertEqual(env_variables["runtimes_to_build"], "")49        self.assertEqual(50            env_variables["runtimes_check_targets"],51            "",52        )53        self.assertEqual(54            env_variables["runtimes_check_targets_needs_reconfig"],55            "",56        )57 58    def test_llvm_mac(self):59        env_variables = compute_projects.get_env_variables(60            ["llvm/CMakeLists.txt"], "Darwin"61        )62        self.assertEqual(63            env_variables["projects_to_build"],64            "clang;clang-tools-extra;lld;llvm;mlir",65        )66        self.assertEqual(67            env_variables["project_check_targets"],68            "check-clang check-clang-tools check-lld check-llvm check-mlir",69        )70        self.assertEqual(env_variables["runtimes_to_build"], "")71        self.assertEqual(72            env_variables["runtimes_check_targets"],73            "",74        )75        self.assertEqual(76            env_variables["runtimes_check_targets_needs_reconfig"],77            "",78        )79 80    def test_clang(self):81        env_variables = compute_projects.get_env_variables(82            ["clang/CMakeLists.txt"], "Linux"83        )84        self.assertEqual(85            env_variables["projects_to_build"],86            "clang;clang-tools-extra;lld;lldb;llvm",87        )88        self.assertEqual(89            env_variables["project_check_targets"],90            "check-clang check-clang-tools check-lldb",91        )92        self.assertEqual(93            env_variables["runtimes_to_build"], "compiler-rt;libcxx;libcxxabi;libunwind"94        )95        self.assertEqual(96            env_variables["runtimes_check_targets"],97            "check-compiler-rt",98        )99        self.assertEqual(100            env_variables["runtimes_check_targets_needs_reconfig"],101            "check-cxx check-cxxabi check-unwind",102        )103        self.assertEqual(104            env_variables["enable_cir"],105            "OFF",106        )107 108    def test_clang_windows(self):109        env_variables = compute_projects.get_env_variables(110            ["clang/CMakeLists.txt"], "Windows"111        )112        self.assertEqual(113            env_variables["projects_to_build"], "clang;clang-tools-extra;lld;llvm"114        )115        self.assertEqual(116            env_variables["project_check_targets"], "check-clang check-clang-tools"117        )118        self.assertEqual(env_variables["runtimes_to_build"], "compiler-rt")119        self.assertEqual(120            env_variables["runtimes_check_targets"],121            "check-compiler-rt",122        )123        self.assertEqual(124            env_variables["runtimes_check_targets_needs_reconfig"],125            "",126        )127        self.assertEqual(env_variables["enable_cir"], "OFF")128 129    def test_compiler_rt(self):130        env_variables = compute_projects.get_env_variables(131            ["compiler-rt/lib/asan/asan_allocator.cpp"], "Linux"132        )133        self.assertEqual(134            env_variables["projects_to_build"],135            "clang;lld",136        )137        self.assertEqual(138            env_variables["project_check_targets"],139            "",140        )141        self.assertEqual(env_variables["runtimes_to_build"], "compiler-rt")142        self.assertEqual(143            env_variables["runtimes_check_targets"],144            "check-compiler-rt",145        )146        self.assertEqual(147            env_variables["runtimes_check_targets_needs_reconfig"],148            "",149        )150        self.assertEqual(151            env_variables["enable_cir"],152            "OFF",153        )154 155    def test_cir(self):156        env_variables = compute_projects.get_env_variables(157            ["clang/lib/CIR/CMakeLists.txt"], "Linux"158        )159        self.assertEqual(160            env_variables["projects_to_build"],161            "clang;clang-tools-extra;lld;lldb;llvm;mlir",162        )163        self.assertEqual(164            env_variables["project_check_targets"],165            "check-clang check-clang-cir check-clang-tools check-lldb",166        )167        self.assertEqual(168            env_variables["runtimes_to_build"], "compiler-rt;libcxx;libcxxabi;libunwind"169        )170        self.assertEqual(171            env_variables["runtimes_check_targets"],172            "check-compiler-rt",173        )174        self.assertEqual(175            env_variables["runtimes_check_targets_needs_reconfig"],176            "check-cxx check-cxxabi check-unwind",177        )178        self.assertEqual(env_variables["enable_cir"], "ON")179 180    def test_bolt(self):181        env_variables = compute_projects.get_env_variables(182            ["bolt/CMakeLists.txt"], "Linux"183        )184        self.assertEqual(env_variables["projects_to_build"], "bolt;clang;lld;llvm")185        self.assertEqual(env_variables["project_check_targets"], "check-bolt")186        self.assertEqual(env_variables["runtimes_to_build"], "")187        self.assertEqual(env_variables["runtimes_check_targets"], "")188        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")189 190    def test_lldb(self):191        env_variables = compute_projects.get_env_variables(192            ["lldb/CMakeLists.txt"], "Linux"193        )194        self.assertEqual(env_variables["projects_to_build"], "clang;lldb;llvm")195        self.assertEqual(env_variables["project_check_targets"], "check-lldb")196        self.assertEqual(env_variables["runtimes_to_build"], "")197        self.assertEqual(env_variables["runtimes_check_targets"], "")198        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")199 200    def test_mlir(self):201        env_variables = compute_projects.get_env_variables(202            ["mlir/CMakeLists.txt"], "Linux"203        )204        self.assertEqual(env_variables["projects_to_build"], "clang;flang;llvm;mlir")205        self.assertEqual(206            env_variables["project_check_targets"], "check-flang check-mlir"207        )208        self.assertEqual(env_variables["runtimes_to_build"], "")209        self.assertEqual(env_variables["runtimes_check_targets"], "")210        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")211        self.assertEqual(env_variables["enable_cir"], "OFF")212 213    def test_flang(self):214        env_variables = compute_projects.get_env_variables(215            ["flang/CMakeLists.txt"], "Linux"216        )217        self.assertEqual(env_variables["projects_to_build"], "clang;flang;llvm")218        self.assertEqual(env_variables["project_check_targets"], "check-flang")219        self.assertEqual(env_variables["runtimes_to_build"], "flang-rt")220        self.assertEqual(env_variables["runtimes_check_targets"], "check-flang-rt")221        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")222        self.assertEqual(env_variables["enable_cir"], "OFF")223 224    def test_invalid_subproject(self):225        env_variables = compute_projects.get_env_variables(226            ["llvm-libgcc/CMakeLists.txt"], "Linux"227        )228        self.assertEqual(env_variables["projects_to_build"], "")229        self.assertEqual(env_variables["project_check_targets"], "")230        self.assertEqual(env_variables["runtimes_to_build"], "")231        self.assertEqual(env_variables["runtimes_check_targets"], "")232        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")233 234    def test_top_level_file(self):235        env_variables = compute_projects.get_env_variables(["README.md"], "Linux")236        self.assertEqual(env_variables["projects_to_build"], "")237        self.assertEqual(env_variables["project_check_targets"], "")238        self.assertEqual(env_variables["runtimes_to_build"], "")239        self.assertEqual(env_variables["runtimes_check_targets"], "")240        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")241 242    def test_exclude_libcxx_in_projects(self):243        env_variables = compute_projects.get_env_variables(244            ["libcxx/CMakeLists.txt"], "Linux"245        )246        self.assertEqual(env_variables["projects_to_build"], "")247        self.assertEqual(env_variables["project_check_targets"], "")248        self.assertEqual(env_variables["runtimes_to_build"], "")249        self.assertEqual(env_variables["runtimes_check_targets"], "")250        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")251 252    def test_include_libc_in_runtimes(self):253        env_variables = compute_projects.get_env_variables(254            ["libc/CMakeLists.txt"], "Linux"255        )256        self.assertEqual(env_variables["projects_to_build"], "clang;lld")257        self.assertEqual(env_variables["project_check_targets"], "")258        self.assertEqual(env_variables["runtimes_to_build"], "libc")259        self.assertEqual(env_variables["runtimes_check_targets"], "check-libc")260        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")261 262    def test_exclude_docs(self):263        env_variables = compute_projects.get_env_variables(264            ["llvm/docs/CIBestPractices.rst"], "Linux"265        )266        self.assertEqual(env_variables["projects_to_build"], "")267        self.assertEqual(env_variables["project_check_targets"], "")268        self.assertEqual(env_variables["runtimes_to_build"], "")269        self.assertEqual(env_variables["runtimes_check_targets"], "")270        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")271 272    def test_exclude_gn(self):273        env_variables = compute_projects.get_env_variables(274            ["llvm/utils/gn/build/BUILD.gn"], "Linux"275        )276        self.assertEqual(env_variables["projects_to_build"], "")277        self.assertEqual(env_variables["project_check_targets"], "")278        self.assertEqual(env_variables["runtimes_to_build"], "")279        self.assertEqual(env_variables["runtimes_check_targets"], "")280        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")281 282    def test_ci(self):283        env_variables = compute_projects.get_env_variables(284            [".ci/compute_projects.py"], "Linux"285        )286        self.assertEqual(287            env_variables["projects_to_build"],288            "bolt;clang;clang-tools-extra;flang;libclc;lld;lldb;llvm;mlir;polly",289        )290        self.assertEqual(291            env_variables["project_check_targets"],292            "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",293        )294        self.assertEqual(295            env_variables["runtimes_to_build"],296            "compiler-rt;flang-rt;libc;libcxx;libcxxabi;libunwind",297        )298        self.assertEqual(299            env_variables["runtimes_check_targets"],300            "check-compiler-rt check-flang-rt check-libc",301        )302        self.assertEqual(303            env_variables["runtimes_check_targets_needs_reconfig"],304            "check-cxx check-cxxabi check-unwind",305        )306 307    def test_windows_ci(self):308        env_variables = compute_projects.get_env_variables(309            [".ci/compute_projects.py"], "Windows"310        )311        self.assertEqual(312            env_variables["projects_to_build"],313            "clang;clang-tools-extra;libclc;lld;llvm;mlir;polly",314        )315        self.assertEqual(316            env_variables["project_check_targets"],317            "check-clang check-clang-cir check-clang-tools check-lld check-llvm check-mlir check-polly",318        )319        self.assertEqual(320            env_variables["runtimes_to_build"],321            "compiler-rt",322        )323        self.assertEqual(324            env_variables["runtimes_check_targets"],325            "check-compiler-rt",326        )327        self.assertEqual(328            env_variables["runtimes_check_targets_needs_reconfig"],329            "",330        )331 332    def test_lldb(self):333        env_variables = compute_projects.get_env_variables(334            ["lldb/CMakeLists.txt"], "Linux"335        )336        self.assertEqual(env_variables["projects_to_build"], "clang;lldb;llvm")337        self.assertEqual(env_variables["project_check_targets"], "check-lldb")338        self.assertEqual(339            env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"340        )341        self.assertEqual(env_variables["runtimes_check_targets"], "")342        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")343 344    def test_clang_tools_extra(self):345        env_variables = compute_projects.get_env_variables(346            ["clang-tools-extra/CMakeLists.txt"], "Linux"347        )348        self.assertEqual(349            env_variables["projects_to_build"], "clang;clang-tools-extra;lld;llvm"350        )351        self.assertEqual(env_variables["project_check_targets"], "check-clang-tools")352        self.assertEqual(env_variables["runtimes_to_build"], "libc")353        self.assertEqual(env_variables["runtimes_check_targets"], "check-libc")354        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")355 356    def test_premerge_workflow(self):357        env_variables = compute_projects.get_env_variables(358            [".github/workflows/premerge.yaml"], "Linux"359        )360        self.assertEqual(361            env_variables["projects_to_build"],362            "bolt;clang;clang-tools-extra;flang;libclc;lld;lldb;llvm;mlir;polly",363        )364        self.assertEqual(365            env_variables["project_check_targets"],366            "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",367        )368        self.assertEqual(369            env_variables["runtimes_to_build"],370            "compiler-rt;flang-rt;libc;libcxx;libcxxabi;libunwind",371        )372        self.assertEqual(373            env_variables["runtimes_check_targets"],374            "check-compiler-rt check-flang-rt check-libc",375        )376        self.assertEqual(377            env_variables["runtimes_check_targets_needs_reconfig"],378            "check-cxx check-cxxabi check-unwind",379        )380 381    def test_other_github_workflow(self):382        env_variables = compute_projects.get_env_variables(383            [".github/workflows/docs.yml"], "Linux"384        )385        self.assertEqual(env_variables["projects_to_build"], "")386        self.assertEqual(env_variables["project_check_targets"], "")387        self.assertEqual(env_variables["runtimes_to_build"], "")388        self.assertEqual(env_variables["runtimes_check_targets"], "")389        self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")390 391    def test_third_party_benchmark(self):392        env_variables = compute_projects.get_env_variables(393            ["third-party/benchmark/CMakeLists.txt"], "Linux"394        )395        self.assertEqual(396            env_variables["projects_to_build"],397            "bolt;clang;clang-tools-extra;flang;libclc;lld;lldb;llvm;mlir;polly",398        )399        self.assertEqual(400            env_variables["project_check_targets"],401            "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",402        )403        self.assertEqual(404            env_variables["runtimes_to_build"],405            "compiler-rt;flang-rt;libc;libcxx;libcxxabi;libunwind",406        )407        self.assertEqual(408            env_variables["runtimes_check_targets"],409            "check-compiler-rt check-flang-rt check-libc",410        )411        self.assertEqual(412            env_variables["runtimes_check_targets_needs_reconfig"],413            "check-cxx check-cxxabi check-unwind",414        )415 416    def test_lit(self):417        env_variables = compute_projects.get_env_variables(418            ["llvm/utils/lit/CMakeLists.txt"], "Linux"419        )420        self.assertEqual(421            env_variables["projects_to_build"],422            "bolt;clang;clang-tools-extra;flang;lld;lldb;llvm;mlir;polly",423        )424        self.assertEqual(425            env_variables["project_check_targets"],426            "check-bolt check-clang check-clang-tools check-flang check-lit check-lld check-lldb check-llvm check-mlir check-polly",427        )428        self.assertEqual(429            env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"430        )431        self.assertEqual(432            env_variables["runtimes_check_targets"],433            "",434        )435        self.assertEqual(436            env_variables["runtimes_check_targets_needs_reconfig"],437            "check-cxx check-cxxabi check-unwind",438        )439 440 441if __name__ == "__main__":442    unittest.main()443