import os import unittest from modules.llvm import LLVMSubproject class TestLLVMSubproject(unittest.TestCase): """Test that we have the right info on LLVM subprojects.""" def test_build_paths(self): subprojects = LLVMSubproject.get_all_subprojects() self.assertEqual(subprojects["clang"].cmake_path, os.path.join("tools", "clang")) self.assertEqual(subprojects["compiler-rt"].cmake_path, os.path.join("projects", "compiler-rt")) self.assertEqual(subprojects["libcxx"].cmake_path, os.path.join("projects", "libcxx")) self.assertEqual(subprojects["libcxxabi"].cmake_path, os.path.join("projects", "libcxxabi")) self.assertEqual(subprojects["libunwind"].cmake_path, os.path.join("projects", "libunwind")) self.assertEqual(subprojects["lld"].cmake_path, os.path.join("tools", "lld")) self.assertEqual(subprojects["lldb"].cmake_path, os.path.join("tools", "lldb")) self.assertEqual(subprojects["test-suite"].cmake_path, os.path.join("projects", "test-suite")) def test_cmake_vars(self): subprojects = LLVMSubproject.get_all_subprojects() self.assertEqual( subprojects["clang"].cmake_var, "LLVM_TOOL_CLANG_BUILD") self.assertEqual(subprojects["compiler-rt"].cmake_var, "LLVM_TOOL_COMPILER_RT_BUILD") self.assertEqual( subprojects["libcxx"].cmake_var, "LLVM_TOOL_LIBCXX_BUILD") self.assertEqual(subprojects["libcxxabi"].cmake_var, "LLVM_TOOL_LIBCXXABI_BUILD") self.assertEqual( subprojects["libunwind"].cmake_var, "LLVM_TOOL_LIBUNWIND_BUILD") self.assertEqual(subprojects["lld"].cmake_var, "LLVM_TOOL_LLD_BUILD") self.assertEqual(subprojects["lldb"].cmake_var, "LLVM_TOOL_LLDB_BUILD") self.assertEqual(subprojects["test-suite"].cmake_var, None) def test_get_cmake_path(self): subproject = LLVMSubproject( os.path.join( "path", "to", "subproj"), None) cmake_path = subproject.get_cmake_path(os.path.join("llvm", "sources")) self.assertEqual( str(cmake_path), os.path.join("llvm", "sources", "path", "to", "subproj")) if __name__ == "__main__": unittest.main()