[PATCH] D76899: Only add `darwin_log_cmd` lit shell test feature when the log can be queried.

Dan Liew via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 26 18:30:25 PDT 2020


delcypher created this revision.
delcypher added reviewers: kubamracek, yln, dcoughlin.
Herald added subscribers: Sanitizers, Charusso.
Herald added a project: Sanitizers.

Follow up fix to 445b810fbd4 <https://reviews.llvm.org/rG445b810fbd4f1dad71fbdf96ba1c3b947417b884>. 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


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D76899

Files:
  compiler-rt/test/lit.common.cfg.py


Index: compiler-rt/test/lit.common.cfg.py
===================================================================
--- compiler-rt/test/lit.common.cfg.py
+++ compiler-rt/test/lit.common.cfg.py
@@ -534,7 +534,16 @@
   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:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76899.253027.patch
Type: text/x-patch
Size: 1043 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200327/f3140f63/attachment.bin>


More information about the llvm-commits mailing list