Hi Pavel, > On Apr 24, 2018, at 3:51 AM, Pavel Labath via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > > Author: labath > Date: Tue Apr 24 03:51:44 2018 > New Revision: 330708 > > URL: http://llvm.org/viewvc/llvm-project?rev=330708&view=rev > Log: > [dotest] Make the set of tests independent of the test configuration > > Summary: > In the magic test duplicator, we were making the decision whether to > create a test variant based on the compiler and the target platform. > This meant that the set of known tests was different for each test > configuration. > > This patch makes the set of generated test variants static and handles > the skipping via runtime checks instead. This is more consistent with > how we do other test-skipping decision (e.g. for libc++ tests), and > makes it easier to expose the full set of tests to lit, which now does > not need to know anything about what things can potentially cause tests > to appear or disappear. > > Reviewers: JDevlieghere, aprantl > > Subscribers: eraman, lldb-commits > > Differential Revision: https://reviews.llvm.org/D45949 > > Modified: > lldb/trunk/packages/Python/lldbsuite/test/dotest.py > lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py > lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py > > Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest.py?rev=330708&r1=330707&r2=330708&view=diff > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Tue Apr 24 03:51:44 > 2018 > @@ -1104,6 +1104,22 @@ def checkLibcxxSupport(): > print("Libc++ tests will not be run because: " + reason) > configuration.skipCategories.append("libc++") > > +def checkDebugInfoSupport(): > + import lldb > + > + platform = lldb.DBG.GetSelectedPlatform().GetTriple().split('-')[2] > + compiler = configuration.compiler > + skipped = [] > + for cat in test_categories.debug_info_categories: > + if cat in configuration.categoriesList: > + continue # Category explicitly requested, let it run.
Is there a missing check here for: if cat in configuration.skipCategories: skip(cat) Without this, I'm not sure how 'dotest --skip-category days' would work on Darwin. > + if test_categories.is_supported_on_platform(cat, platform, compiler): > + continue > + configuration.skipCategories.append(cat) > + skipped.append(cat) > + if skipped: > + print("Skipping following debug info categories:", skipped) > + > def run_suite(): > # On MacOS X, check to make sure that domain for com.apple.DebugSymbols > defaults > # does not exist before proceeding to running the test suite. > @@ -1212,6 +1228,7 @@ def run_suite(): > target_platform = lldb.DBG.GetSelectedPlatform().GetTriple().split('-')[2] > > checkLibcxxSupport() > + checkDebugInfoSupport() > > # Don't do debugserver tests on everything except OS X. > configuration.dont_do_debugserver_test = "linux" in target_platform or > "freebsd" in target_platform or "windows" in target_platform > > Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py?rev=330708&r1=330707&r2=330708&view=diff > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py Tue Apr 24 > 03:51:44 2018 > @@ -241,23 +241,14 @@ def MakeInlineTest(__file, __globals, de > test = type(test_name, (InlineTest,), {'using_dsym': None}) > test.name = test_name > > - target_platform = > lldb.DBG.GetSelectedPlatform().GetTriple().split('-')[2] > - if test_categories.is_supported_on_platform( > - "dsym", target_platform, configuration.compiler): > - test.test_with_dsym = ApplyDecoratorsToFunction( > - test._InlineTest__test_with_dsym, decorators) > - if test_categories.is_supported_on_platform( > - "dwarf", target_platform, configuration.compiler): > - test.test_with_dwarf = ApplyDecoratorsToFunction( > - test._InlineTest__test_with_dwarf, decorators) > - if test_categories.is_supported_on_platform( > - "dwo", target_platform, configuration.compiler): > - test.test_with_dwo = ApplyDecoratorsToFunction( > - test._InlineTest__test_with_dwo, decorators) > - if test_categories.is_supported_on_platform( > - "gmodules", target_platform, configuration.compiler): > - test.test_with_gmodules = ApplyDecoratorsToFunction( > - test._InlineTest__test_with_gmodules, decorators) > + test.test_with_dsym = ApplyDecoratorsToFunction( > + test._InlineTest__test_with_dsym, decorators) > + test.test_with_dwarf = ApplyDecoratorsToFunction( > + test._InlineTest__test_with_dwarf, decorators) > + test.test_with_dwo = ApplyDecoratorsToFunction( > + test._InlineTest__test_with_dwo, decorators) > + test.test_with_gmodules = ApplyDecoratorsToFunction( > + test._InlineTest__test_with_gmodules, decorators) > > # Add the test case to the globals, and hide InlineTest > __globals.update({test_name: test}) > > Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=330708&r1=330707&r2=330708&view=diff > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Tue Apr 24 03:51:44 > 2018 > @@ -1732,14 +1732,11 @@ class LLDBTestCaseFactory(type): > for attrname, attrvalue in attrs.items(): > if attrname.startswith("test") and not getattr( > attrvalue, "__no_debug_info_test__", False): > - target_platform = lldb.DBG.GetSelectedPlatform( > - ).GetTriple().split('-')[2] > > # If any debug info categories were explicitly tagged, assume > that list to be > # authoritative. If none were specified, try with all debug > # info formats. > - all_dbginfo_categories = set( > - test_categories.debug_info_categories) - > set(configuration.skipCategories) > + all_dbginfo_categories = > set(test_categories.debug_info_categories) Ditto. I'm not sure why it shouldn't be possible to skip debug info categories. thanks, vedant > categories = set( > getattr( > attrvalue, > @@ -1748,49 +1745,16 @@ class LLDBTestCaseFactory(type): > if not categories: > categories = all_dbginfo_categories > > - supported_categories = [ > - x for x in categories if > test_categories.is_supported_on_platform( > - x, target_platform, configuration.compiler)] > - > - if "dsym" in supported_categories: > - @decorators.add_test_categories(["dsym"]) > + for cat in categories: > + @decorators.add_test_categories([cat]) > @wraps(attrvalue) > - def dsym_test_method(self, attrvalue=attrvalue): > + def test_method(self, attrvalue=attrvalue): > return attrvalue(self) > - dsym_method_name = attrname + "_dsym" > - dsym_test_method.__name__ = dsym_method_name > - dsym_test_method.debug_info = "dsym" > - newattrs[dsym_method_name] = dsym_test_method > > - if "dwarf" in supported_categories: > - @decorators.add_test_categories(["dwarf"]) > - @wraps(attrvalue) > - def dwarf_test_method(self, attrvalue=attrvalue): > - return attrvalue(self) > - dwarf_method_name = attrname + "_dwarf" > - dwarf_test_method.__name__ = dwarf_method_name > - dwarf_test_method.debug_info = "dwarf" > - newattrs[dwarf_method_name] = dwarf_test_method > - > - if "dwo" in supported_categories: > - @decorators.add_test_categories(["dwo"]) > - @wraps(attrvalue) > - def dwo_test_method(self, attrvalue=attrvalue): > - return attrvalue(self) > - dwo_method_name = attrname + "_dwo" > - dwo_test_method.__name__ = dwo_method_name > - dwo_test_method.debug_info = "dwo" > - newattrs[dwo_method_name] = dwo_test_method > - > - if "gmodules" in supported_categories: > - @decorators.add_test_categories(["gmodules"]) > - @wraps(attrvalue) > - def gmodules_test_method(self, attrvalue=attrvalue): > - return attrvalue(self) > - gmodules_method_name = attrname + "_gmodules" > - gmodules_test_method.__name__ = gmodules_method_name > - gmodules_test_method.debug_info = "gmodules" > - newattrs[gmodules_method_name] = gmodules_test_method > + method_name = attrname + "_" + cat > + test_method.__name__ = method_name > + test_method.debug_info = cat > + newattrs[method_name] = test_method > > else: > newattrs[attrname] = attrvalue > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits