JDevlieghere created this revision. JDevlieghere added reviewers: zturner, labath, davide, aprantl. Herald added subscribers: llvm-commits, mgorny.
This is the initial attempt (v1) to run the lldb test suite with lit, using the custom LLDB test format. Here every`Test*.py` is seen as a single test by lit. As suggested by pavel this circumvents lldb-dotest (though the configuration file now contains part of that logic). Repository: rL LLVM https://reviews.llvm.org/D45333 Files: lit/Suite/lit.cfg lit/Suite/lit.site.cfg.in test/CMakeLists.txt Index: test/CMakeLists.txt =================================================================== --- test/CMakeLists.txt +++ test/CMakeLists.txt @@ -152,6 +152,17 @@ add_custom_target(lldb-dotest) add_dependencies(lldb-dotest ${LLDB_TEST_DEPS}) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/../lit/Suite/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + ) +file(GENERATE + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + INPUT + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + ) + # If we're building with an in-tree clang, then list clang as a dependency # to run tests. if (TARGET clang) Index: lit/Suite/lit.site.cfg.in =================================================================== --- /dev/null +++ lit/Suite/lit.site.cfg.in @@ -0,0 +1,28 @@ +@LIT_SITE_CFG_IN_HEADER@ + +config.test_exec_root = "@LLVM_BINARY_DIR@" +config.llvm_src_root = "@LLVM_SOURCE_DIR@" +config.llvm_obj_root = "@LLVM_BINARY_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.llvm_libs_dir = "@LLVM_LIBS_DIR@" +config.llvm_build_mode = "@LLVM_BUILD_MODE@" +config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" +config.lldb_obj_root = "@LLDB_BINARY_DIR@" +config.lldb_src_root = "@LLDB_SOURCE_DIR@" +config.target_triple = "@TARGET_TRIPLE@" +config.python_executable = "@PYTHON_EXECUTABLE@" +config.dotest_path = "@LLDB_SOURCE_DIR@/test/dotest.py" +config.dotest_args_str = "@LLDB_DOTEST_ARGS@" + +# Support substitution of the tools and libs dirs with user parameters. This is +# used when we can't determine the tool dir at configuration time. +try: + config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params + config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params + config.llvm_build_mode = config.llvm_build_mode % lit_config.params +except KeyError as e: + key, = e.args + lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key)) + +# Let the main config do the real work. +lit_config.load_config(config, "@LLDB_SOURCE_DIR@/lit/Suite/lit.cfg") Index: lit/Suite/lit.cfg =================================================================== --- /dev/null +++ lit/Suite/lit.cfg @@ -0,0 +1,25 @@ +# -*- Python -*- + +# Configuration file for the 'lit' test runner. + +import os + +import lit.formats + +# name: The name of this test suite. +config.name = 'lldb-Suite' + +# suffixes: A list of file extensions to treat as test files. +config.suffixes = ['.py'] + +# test_source_root: The root path where tests are located. +# test_exec_root: The root path where tests should be run. +config.test_source_root = os.path.join(config.lldb_src_root, 'test', 'testcases') +config.test_exec_root = config.test_source_root + +# Build dotest command. +dotest_cmd = [config.dotest_path, '-q'] +dotest_cmd.extend(config.dotest_args_str.split(';')) + +# testFormat: The test format to use to interpret tests. +config.test_format = lit.formats.LLDBTest(dotest_cmd)
Index: test/CMakeLists.txt =================================================================== --- test/CMakeLists.txt +++ test/CMakeLists.txt @@ -152,6 +152,17 @@ add_custom_target(lldb-dotest) add_dependencies(lldb-dotest ${LLDB_TEST_DEPS}) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/../lit/Suite/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + ) +file(GENERATE + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + INPUT + ${CMAKE_CURRENT_BINARY_DIR}/../lit/Suite/lit.site.cfg + ) + # If we're building with an in-tree clang, then list clang as a dependency # to run tests. if (TARGET clang) Index: lit/Suite/lit.site.cfg.in =================================================================== --- /dev/null +++ lit/Suite/lit.site.cfg.in @@ -0,0 +1,28 @@ +@LIT_SITE_CFG_IN_HEADER@ + +config.test_exec_root = "@LLVM_BINARY_DIR@" +config.llvm_src_root = "@LLVM_SOURCE_DIR@" +config.llvm_obj_root = "@LLVM_BINARY_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.llvm_libs_dir = "@LLVM_LIBS_DIR@" +config.llvm_build_mode = "@LLVM_BUILD_MODE@" +config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" +config.lldb_obj_root = "@LLDB_BINARY_DIR@" +config.lldb_src_root = "@LLDB_SOURCE_DIR@" +config.target_triple = "@TARGET_TRIPLE@" +config.python_executable = "@PYTHON_EXECUTABLE@" +config.dotest_path = "@LLDB_SOURCE_DIR@/test/dotest.py" +config.dotest_args_str = "@LLDB_DOTEST_ARGS@" + +# Support substitution of the tools and libs dirs with user parameters. This is +# used when we can't determine the tool dir at configuration time. +try: + config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params + config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params + config.llvm_build_mode = config.llvm_build_mode % lit_config.params +except KeyError as e: + key, = e.args + lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key)) + +# Let the main config do the real work. +lit_config.load_config(config, "@LLDB_SOURCE_DIR@/lit/Suite/lit.cfg") Index: lit/Suite/lit.cfg =================================================================== --- /dev/null +++ lit/Suite/lit.cfg @@ -0,0 +1,25 @@ +# -*- Python -*- + +# Configuration file for the 'lit' test runner. + +import os + +import lit.formats + +# name: The name of this test suite. +config.name = 'lldb-Suite' + +# suffixes: A list of file extensions to treat as test files. +config.suffixes = ['.py'] + +# test_source_root: The root path where tests are located. +# test_exec_root: The root path where tests should be run. +config.test_source_root = os.path.join(config.lldb_src_root, 'test', 'testcases') +config.test_exec_root = config.test_source_root + +# Build dotest command. +dotest_cmd = [config.dotest_path, '-q'] +dotest_cmd.extend(config.dotest_args_str.split(';')) + +# testFormat: The test format to use to interpret tests. +config.test_format = lit.formats.LLDBTest(dotest_cmd)
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits