]> granicus.if.org Git - clang/commitdiff
Tweak clang testing.
authorDaniel Dunbar <daniel@zuster.org>
Thu, 17 Sep 2009 19:55:53 +0000 (19:55 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 17 Sep 2009 19:55:53 +0000 (19:55 +0000)
 - Move CMake to using the new test runner.

 - Switch Makefiles to use the lit.site.cfg.in template.

 - Remove explicit --path arguments, instead this gets written into the site
   configuration. This means running lit from the command line should use the
   exact same configuration as is used in 'make test', assuming it can find the
   site configuration file. You still need to run 'make test' (or the cmake
   build target equivalent) at least once.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82160 91177308-0d34-0410-b5e6-96231b3b80d8

test/CMakeLists.txt
test/Makefile
test/lit.cfg
test/lit.site.cfg.in

index e154c0c4d5fa9922f7b4666e3347ad58a2882d94..e6cd13cc2d16bf1c7607d177b8d5e74d8ac9565d 100644 (file)
@@ -28,39 +28,32 @@ if(PYTHONINTERP_FOUND)
   if (MSVC OR XCODE)
     set(CLANG_TEST_EXTRA_ARGS "--no-progress-bar")
   endif()
-  set(all_testdirs)
- foreach(testdir ${CLANG_TEST_DIRECTORIES})
-   add_custom_target(clang-test-${testdir} 
-      ${PYTHON_EXECUTABLE} 
-      ${LLVM_SOURCE_DIR}/tools/clang/utils/test/MultiTestRunner.py
-      "--root=${LLVM_SOURCE_DIR}/tools/clang/test"
-      "--path=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}"
-      "--path=${LLVM_SOURCE_DIR}/test/Scripts"
-      -s ${CLANG_TEST_EXTRA_ARGS}
-      --clang=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}/clang
-      --clang-cc=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}/clang-cc
-     ${CMAKE_CURRENT_SOURCE_DIR}/${testdir}/
-      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-      COMMENT "Running Clang regression tests in ${testdir}")
 
-    list(APPEND all_testdirs ${CMAKE_CURRENT_SOURCE_DIR}/${testdir}/)
+  foreach(testdir ${CLANG_TEST_DIRECTORIES})
+    add_custom_target(clang-test-${testdir} 
+      COMMAND sed -e "s#\@CLANG_SOURCE_DIR\@#${CMAKE_CURRENT_SOURCE_DIR}/..#"
+                  -e "s#\@CLANG_BINARY_DIR\@#${CMAKE_CURRENT_BINARY_DIR}/..#"
+                  -e "s#\@LLVM_TOOLS_DIR\@#${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}#"
+                  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in >
+                  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+      COMMAND ${PYTHON_EXECUTABLE} 
+                  ${LLVM_SOURCE_DIR}/utils/lit/lit.py
+                  -s ${CLANG_TEST_EXTRA_ARGS}
+                  ${CMAKE_CURRENT_BINARY_DIR}/${testdir}
+                  DEPENDS clang clang-cc index-test
+                  COMMENT "Running Clang regression tests in ${testdir}")
   endforeach()
 
   add_custom_target(clang-test
-    ${PYTHON_EXECUTABLE} 
-    ${LLVM_SOURCE_DIR}/tools/clang/utils/test/MultiTestRunner.py
-    "--root=${LLVM_SOURCE_DIR}/tools/clang/test"
-    "--path=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}"
-    "--path=${LLVM_SOURCE_DIR}/test/Scripts"
-    -s ${CLANG_TEST_EXTRA_ARGS}
-    --clang=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}/clang
-    --clang-cc=${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}/clang-cc
-    ${all_testdirs}
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    DEPENDS clang clang-cc index-test
-    COMMENT "Running Clang regression tests")
+    COMMAND sed -e "s#\@CLANG_SOURCE_DIR\@#${CMAKE_CURRENT_SOURCE_DIR}/..#"
+                -e "s#\@CLANG_BINARY_DIR\@#${CMAKE_CURRENT_BINARY_DIR}/..#"
+                -e "s#\@LLVM_TOOLS_DIR\@#${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}#"
+                ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in >
+                ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+    COMMAND ${PYTHON_EXECUTABLE} 
+                ${LLVM_SOURCE_DIR}/utils/lit/lit.py
+                -s ${CLANG_TEST_EXTRA_ARGS}
+                ${CMAKE_CURRENT_BINARY_DIR}
+                DEPENDS clang clang-cc index-test
+                COMMENT "Running Clang regression tests")
 endif()  
-
-# Produce LIT site configuration file.
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
index 1a109758bad94f0c0654e943c360d69ceaf05c42..223fd8380b9fc8ca0311b7ebd8f629add16e8d0b 100644 (file)
@@ -29,8 +29,6 @@ ifdef LIT2
 all:: lit.site.cfg
        @ echo '--- Running clang tests for $(TARGET_TRIPLE) ---'
        @ $(LLVM_SRC_ROOT)/utils/lit/lit.py \
-         --path $(ToolDir) \
-         --path $(LLVM_SRC_ROOT)/test/Scripts \
          $(TESTARGS) $(LIT2_TESTDIRS) $(VGARG)
 else
 all::
@@ -46,14 +44,10 @@ FORCE:
 
 lit.site.cfg: FORCE
        @echo "Making 'lit.site.cfg' file..."
-       @echo "## Autogenerated by Makefile ##" > $@
-       @echo "# Do not edit!" >> $@
-       @echo >> $@
-       @echo "# Preserve some key paths for use by main LLVM test suite config." >> $@
-       @echo "config.clang_obj_root = \"\"\"$(PROJ_OBJ_DIR)/..\"\"\"" >> $@
-       @echo >> $@
-       @echo "# Let the main config do the real work." >> $@
-       @echo "lit.load_config(config, \"\"\"$(PROJ_SRC_DIR)/lit.cfg\"\"\")" >> $@
+       @sed -e "s#@CLANG_SOURCE_DIR@#$(PROJ_SRC_DIR)/..#g" \
+            -e "s#@CLANG_BINARY_DIR@#$(PROJ_OBJ_DIR)/..#g" \
+            -e "s#@LLVM_TOOLS_DIR@#$(ToolDir)#g" \
+            $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
 
 clean::
        @ rm -rf Output/
index 46164f94b18f3285a03d7b0e8105db95286aaedb..bca4d5190a8b8f33071bd857bfc1f093a1961fb2 100644 (file)
@@ -33,6 +33,17 @@ def config_new():
         config.llvm_obj_root = os.path.join(clang_obj_root,
                                             '..', '..')
 
+    # Tweak the PATH to include the tools dir and the scripts dir.
+    if clang_obj_root is not None:
+        llvm_tools_dir = getattr(config, 'llvm_tools_dir', None)
+        if not llvm_tools_dir:
+            lit.fatal('No LLVM tools dir set!')
+        path = os.path.pathsep.join((llvm_tools_dir,
+                                     os.path.join(config.llvm_src_root,
+                                                  'test', 'Scripts'),
+                                     config.environment['PATH']))
+        config.environment['PATH'] = path
+
     ###
 
     # Check that the object root is known.
index 21b75994ae0ebd617c21d00697f83dc5172b5b12..e91fbed5905376de4b7bc182ee44d64bdd702ed7 100644 (file)
@@ -1,6 +1,7 @@
-## Autogenerated by LLVM/Clang configuration. 
+## Autogenerated by LLVM/Clang configuration.
 # Do not edit!
 config.clang_obj_root = "@CLANG_BINARY_DIR@"
+config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
 
 # Let the main config do the real work.
 lit.load_config(config, "@CLANG_SOURCE_DIR@/test/lit.cfg")