[PATCH] D17928: [sanitizer_common tests] Make Darwin a Posix system and bring the stable-runtime definition from ASan tests.

Filipe Cabecinhas via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 9 07:47:39 PST 2016


filcab updated this revision to Diff 50141.
filcab added a comment.

Address Samsonov's comments.


http://reviews.llvm.org/D17928

Files:
  test/sanitizer_common/TestCases/Linux/decorate_proc_maps.cc
  test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc
  test/sanitizer_common/TestCases/Posix/lit.local.cfg
  test/sanitizer_common/lit.common.cfg

Index: test/sanitizer_common/lit.common.cfg
===================================================================
--- test/sanitizer_common/lit.common.cfg
+++ test/sanitizer_common/lit.common.cfg
@@ -9,9 +9,14 @@
 if config.tool_name == "asan":
   tool_cflags = ["-fsanitize=address"]
   tool_options = "ASAN_OPTIONS"
+  # Get the same definition from asan's lit.cfg
+  if config.target_arch != 'arm' and config.target_arch != 'armhf' and config.target_arch != 'aarch64':
+    config.available_features.add('stable-runtime')
 elif config.tool_name == "tsan":
   tool_cflags = ["-fsanitize=thread"]
   tool_options = "TSAN_OPTIONS"
+  if config.target_arch != 'aarch64':
+    config.available_features.add('stable-runtime')
 elif config.tool_name == "msan":
   tool_cflags = ["-fsanitize=memory"]
   tool_options = "MSAN_OPTIONS"
Index: test/sanitizer_common/TestCases/Posix/lit.local.cfg
===================================================================
--- test/sanitizer_common/TestCases/Posix/lit.local.cfg
+++ test/sanitizer_common/TestCases/Posix/lit.local.cfg
@@ -5,5 +5,5 @@
 
 root = getRoot(config)
 
-if root.host_os in ['Windows', 'Darwin']:
+if root.host_os in ['Windows']:
   config.unsupported = True
Index: test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc
===================================================================
--- /dev/null
+++ test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc
@@ -1,61 +0,0 @@
-// RUN: %clangxx -g %s -o %t
-// RUN: %env_tool_opts=decorate_proc_maps=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%tool_name
-// REQUIRES: stable-runtime
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-bool CopyFdToFd(int in_fd, int out_fd) {
-  const size_t kBufSize = 0x10000;
-  static char buf[kBufSize];
-  while (true) {
-    ssize_t got = read(in_fd, buf, kBufSize);
-    if (got > 0) {
-      write(out_fd, buf, got);
-    } else if (got == 0) {
-      break;
-    } else if (errno != EAGAIN || errno != EWOULDBLOCK || errno != EINTR) {
-      fprintf(stderr, "error reading file, errno %d\n", errno);
-      return false;
-    }
-  }
-  return true;
-}
-
-void *ThreadFn(void *arg) {
-  (void)arg;
-  int fd = open("/proc/self/maps", O_RDONLY);
-  bool res = CopyFdToFd(fd, 2);
-  close(fd);
-  return (void *)!res;
-}
-
-int main(void) {
-  pthread_t t;
-  void *res;
-  pthread_create(&t, 0, ThreadFn, 0);
-  pthread_join(t, &res);
-  return (int)(size_t)res;
-}
-
-// CHECK-asan: rw-p {{.*}} [low shadow]
-// CHECK-asan: ---p {{.*}} [shadow gap]
-// CHECK-asan: rw-p {{.*}} [high shadow]
-
-// CHECK-msan: ---p {{.*}} [invalid]
-// CHECK-msan: rw-p {{.*}} [shadow{{.*}}]
-// CHECK-msan: ---p {{.*}} [origin{{.*}}]
-
-// CHECK-tsan: rw-p {{.*}} [shadow]
-// CHECK-tsan: rw-p {{.*}} [meta shadow]
-// CHECK-tsan: rw-p {{.*}} [trace 0]
-// CHECK-tsan: rw-p {{.*}} [trace header 0]
-// CHECK-tsan: rw-p {{.*}} [trace 1]
-// CHECK-tsan: rw-p {{.*}} [trace header 1]
-
-// Nothing interesting with standalone LSan.
-// CHECK-lsan: decorate_proc_maps


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17928.50141.patch
Type: text/x-patch
Size: 3116 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160309/52d85207/attachment-0001.bin>


More information about the llvm-commits mailing list