[Lldb-commits] [PATCH] D134344: [WIP][lldb][test] 1 - Remove gmodules debug_info variant: add decorator for API tests that explicitly test gmodules

Michael Buch via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 21 15:38:07 PDT 2022


Michael137 added a comment.

In D134344#3806509 <https://reviews.llvm.org/D134344#3806509>, @aprantl wrote:

> In D134344#3805953 <https://reviews.llvm.org/D134344#3805953>, @Michael137 wrote:
>
>>> teach the debug info replication to ignore tests with the gmodules category (just like it does for @no_debug_info_test_case tests). This step wouldn't be necessary if we made debug info replication opt-in instead of opt-out, as discussed on one of the previous patches (@JDevlieghere might remember which one it was)
>>
>> That's an interesting idea. @JDevlieghere @aprantl How much appetite is there for changing the replication to be opt-in (that would require an audit of each API test right?). Otherwise, an alternative that comes to mind without hard-coding a `category == gmodules` into the replication logic would be to make `debug_info_categories` a `dictionary<category: string, replicable: bool>` and keep `gmodules` in there. Then we wouldn't need to make changes to `getBuildCommand` either.
>
> That's such a big change (we also need to make the change in all downstream branches like swift-lldb) that I probably wouldn't want to roll it into this patch series right now, but I'm open to having a separate discussion about it. But I'm also missing the context as to why this would be desirable, so if there's a good reason, let me know!

Just to clarify, any solution will have to support the following points (which Pavel mentioned in his suggestion):
(1) Make sure we *don't* run a test with all debug-info variants if we only want `gmodules`
(2) Be able to explicitly compile with `gmodules` support when we add the `gmodules` category to a test

Currently the options are:
(A) Currently the test-replication works by checking all the categories on a test-case and if it finds no debug_info categories it will replicate the test once for each variant. If we made `gmodules` not a debug_info category this means tagging a test with `add_test_categories(["gmodules"])` would not work as expected. Pavel suggests making it opt-in, in which case this loop would never do the unexpected thing. We would still have to solve (2), but we would get (1) as a consequence of the opt-in (Correct me if I misunderstood @labath).

(B) Keep the `gmodules` category in the debug_info categories but add an indicator (e.g., by making the `debug_info_categories` a dictionary) that will skip replication if set. That would solve (1) and (2) would work as it does today without changes.

(C) The approach in this patch. Remove the `gmodules` category entirely and add a decorator that is responsible for skipping the test and adding a debug_info category to the decorated test-case (to prevent replication from kicking in). Unfortunately this also requires the user to add `MAKE_GMODULES`/`MAKE_DSYM` to the test's Makefile; that's how this patch addresses the issue of (2), i.e., it bypasses it entirely


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134344/new/

https://reviews.llvm.org/D134344



More information about the lldb-commits mailing list