add availability check to DarwinLog event tests

The pexpect-based tests properly checked for the stub reporting
DarwinLog support.  The event-based ones did not.  This is fixed
here.  Swift CI bots are not currently building debugserver on
macOS, so they don't have the DarwinLog support even when they
pass the macOS 10.12 check.

llvm-svn: 281696
This commit is contained in:
Todd Fiala 2016-09-16 03:07:14 +00:00
parent 991c354b01
commit d15aa24a7e
1 changed files with 13 additions and 0 deletions

View File

@ -325,6 +325,11 @@ class DarwinLogEventBasedTestBase(lldbtest.TestBase):
self.runCmd("settings set target.process.extra-startup-command "
"QSetLogging:bitmask=LOG_DARWIN_LOG;")
def darwin_log_available(self):
match = self.match("plugin structured-data darwin-log status",
patterns=[r"Availability: ([\S]+)"])
return match is not None and (match.group(1) == "available")
def do_test(self, enable_options, settings_commands=None,
run_enable_after_breakpoint=False, max_entry_count=None):
"""Runs the test inferior, returning collected events.
@ -401,6 +406,14 @@ class DarwinLogEventBasedTestBase(lldbtest.TestBase):
# And our one and only breakpoint should have been hit.
self.assertEquals(breakpoint.GetHitCount(), 1)
# Check if DarwinLog is available. This check cannot be done
# until after the process has started, as the feature availability
# comes through the stub. The stub isn't running until
# the target process is running. So this is really the earliest
# we can check.
if not self.darwin_log_available():
self.skipTest("DarwinLog not available")
# Now setup the structured data listener.
#
# Grab the broadcaster for the process. We'll be attaching our