Skip to content

Commit

Permalink
Only add darwin_log_cmd lit shell test feature when the log can be …
Browse files Browse the repository at this point in the history
…queried.

Summary:
Follow up fix to 445b810. The `log show` command only works for
privileged users so run a quick test of the command during lit config to
see if the command works and only add the `darwin_log_cmd` feature if
this is the case.

Unfortunately this means the `asan/TestCases/Darwin/duplicate_os_log_reports.cpp`
test and any other tests in the future that use this feature won't run
for unprivileged users which is likely the case in CI.

rdar://problem/55986279

Reviewers: kubamracek, yln, dcoughlin

Subscribers: Charusso, #sanitizers, llvm-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D76899
  • Loading branch information
delcypher committed Mar 27, 2020
1 parent 89025da commit 853a1e6
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion compiler-rt/test/lit.common.cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,16 @@ def is_windows_lto_supported():
config.default_sanitizer_opts += ['abort_on_error=0']
config.default_sanitizer_opts += ['log_to_syslog=0']
if lit.util.which('log'):
config.available_features.add('darwin_log_cmd')
# Querying the log can only done by a privileged user so
# so check if we can query the log.
exit_code = -1
with open('/dev/null', 'r') as f:
# Run a `log show` command the should finish fairly quickly and produce very little output.
exit_code = subprocess.call(['log', 'show', '--last', '1m', '--predicate', '1 == 0'], stdout=f, stderr=f)
if exit_code == 0:
config.available_features.add('darwin_log_cmd')
else:
lit_config.warning('log command found but cannot queried')
else:
lit_config.warning('log command not found. Some tests will be skipped.')
elif config.android:
Expand Down

0 comments on commit 853a1e6

Please sign in to comment.