tfiala added a comment.

@aprantl, the lldbsuite/support/gmodules.py file didn't make it into your patch 
set here.  (It was the top file in the -v6 diff).

I'm going to adjust per comments above.  @labath, see question on 
add_test_categories.

I may end up filing this as a separate review since I'm WFH and we can probably 
iterate faster without getting @aprantl to have to keep putting up patch sets 
for me.  (I didn't see a way for phabricator to allow multiple people to put up 
a diff set on the same review - if that existed I'd use that).

@zturner, with the changes @labath suggested, that one decorator that was used 
by that one test will go away, and then the is_supported-style check for 
gmodules (as currently written) will not permit gmodules on Windows.  It is set 
to support macosx, ios, linux and freebsd.


================
Comment at: packages/Python/lldbsuite/support/gmodules.py:19
@@ -19,2 +19,2 @@
         compiler = os.path.basename(compiler_path)
         if "clang" not in compiler:
----------------
labath wrote:
> This diff looks broken. This appears to be a new file (I certainly don't have 
> it in my tree), and it is being shown as a diff. Could you reupload a correct 
> diff against the current top of tree?
Yes it is missing from the patch set.  It is in the -v6.diff file I attached 
earlier (top entry in the diff).  We'll get this updated.

================
Comment at: packages/Python/lldbsuite/support/gmodules.py:22
@@ -21,3 +21,3 @@
             return False
-        clang_help = os.popen("%s --help" % compiler_path).read()
-        return GMODULES_HELP_REGEX.search(clang_help, re.DOTALL) is not None
+        elif os.name == "nt":
+            # gmodules support is broken on Windows
----------------
labath wrote:
> This check should be folded into `test_categories.is_supported_on_platform`. 
> (Also, it is incorrect as it should presumably be checking against the target 
> platform and not the host.)
It actually is in is_supported_on_platform (by virtue of windows not being 
included).

I had misunderstood your earlier comment on how add_categories worked.  I did 
not know that I could make a debuginfo-specific test work by adding the 
category.  That makes sense now, but I had kept the other decorator around only 
because I didn't see this as an option.

I get it now.  Good idea.

================
Comment at: packages/Python/lldbsuite/test/decorators.py:527
@@ -525,3 +526,3 @@
 
-def skipUnlessClangModules():
+def skipUnlessClangModules(func):
     """Decorate the item to skip test unless Clang -gmodules flag is 
supported."""
----------------
labath wrote:
> This whole decorator can be removed. It's invocations can be replaced with 
> `add_test_categories(["gmodules"])` (cf. `lldbtest.py:1453`, it will avoid 
> duplicating the test if it is already annotated with categories).
Yes, I see now.  I did not understand add_test_categories(["gmodules"]) was a 
valid way to mark a test as gmodules-only.

It does look a little weird that we need to do:
@no_debug_info_test
@add_test_categories(["gmodules"])

I wonder if we want a combined decorator that is effectively:
@valid_debug_info([...])

that specifies that this test is only valid for those debug info entries 
specified.  Then the entry becomes a single decorator:
@valid_debug_info(["gmodules"])

What do you think?

================
Comment at: 
packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py:13
@@ -12,1 +12,3 @@
+    @skipUnlessClangModules
     def test_specialized_typedef_from_pch(self):
+        self.buildGModules()
----------------
labath wrote:
> replace these two decorators with `add_test_categories(["gmodules"])`
Yup.

Well we would need @no_debug_info_test still, wouldn't we?  Otherwise we'll fan 
out to all the debug info variants?  (Or is add_test_categories() replace all 
test categories?  I assumed it was additive since it starts with "add_", in 
which case I'd expect we'd still have all the normal debug info entries show 
up).

================
Comment at: packages/Python/lldbsuite/test/lldbinline.py:148
@@ +147,3 @@
+        self.BuildMakefile()
+        self.buildDwarf()
+        self.do_test()
----------------
labath wrote:
> `buildGModules()` ?
Yeah that's wrong.  Good catch.

That also means the testing I did on OS X and Linux failed to do real gmodule 
debugging for inline tests.  I'll need to rerun.


http://reviews.llvm.org/D19998



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to