[compiler-rt] r318471 - [asan] Properly mark or disable tests that only work with shadow scale of 3

Walter Lee via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 16 15:29:19 PST 2017


Author: waltl
Date: Thu Nov 16 15:29:19 2017
New Revision: 318471

URL: http://llvm.org/viewvc/llvm-project?rev=318471&view=rev
Log:
[asan] Properly mark or disable tests that only work with shadow scale of 3

Differential Revision: https://reviews.llvm.org/D39774

Modified:
    compiler-rt/trunk/lib/asan/tests/asan_asm_test.cc
    compiler-rt/trunk/lib/asan/tests/asan_interface_test.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/allocator_oom_test.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/asan_prelink_test.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/cuda_test.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/kernel-area.cc
    compiler-rt/trunk/test/asan/TestCases/Linux/nohugepage_test.cc
    compiler-rt/trunk/test/asan/TestCases/intra-object-overflow.cc
    compiler-rt/trunk/test/asan/TestCases/small_memcpy_test.cc
    compiler-rt/trunk/test/asan/TestCases/stack-buffer-overflow-with-position.cc
    compiler-rt/trunk/test/asan/TestCases/strtol_strict.c
    compiler-rt/trunk/test/asan/TestCases/strtoll_strict.c

Modified: compiler-rt/trunk/lib/asan/tests/asan_asm_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/asan_asm_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/tests/asan_asm_test.cc (original)
+++ compiler-rt/trunk/lib/asan/tests/asan_asm_test.cc Thu Nov 16 15:29:19 2017
@@ -12,7 +12,8 @@
 //===----------------------------------------------------------------------===//
 #include "asan_test_utils.h"
 
-#if defined(__linux__)
+#if defined(__linux__) &&                                                      \
+    (!defined(ASAN_SHADOW_SCALE) || ASAN_SHADOW_SCALE == 3)
 
 // Assembly instrumentation is broken on x86 Android (x86 + PIC + shared runtime
 // library). See https://github.com/google/sanitizers/issues/353

Modified: compiler-rt/trunk/lib/asan/tests/asan_interface_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/asan_interface_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/tests/asan_interface_test.cc (original)
+++ compiler-rt/trunk/lib/asan/tests/asan_interface_test.cc Thu Nov 16 15:29:19 2017
@@ -153,14 +153,15 @@ TEST(AddressSanitizerInterface, DeathCal
   __asan_set_death_callback(NULL);
 }
 
-static const char* kUseAfterPoisonErrorMessage = "use-after-poison";
-
 #define GOOD_ACCESS(ptr, offset)  \
     EXPECT_FALSE(__asan_address_is_poisoned(ptr + offset))
 
 #define BAD_ACCESS(ptr, offset) \
     EXPECT_TRUE(__asan_address_is_poisoned(ptr + offset))
 
+#if !defined(ASAN_SHADOW_SCALE) || ASAN_SHADOW_SCALE == 3
+static const char* kUseAfterPoisonErrorMessage = "use-after-poison";
+
 TEST(AddressSanitizerInterface, SimplePoisonMemoryRegionTest) {
   char *array = Ident((char*)malloc(120));
   // poison array[40..80)
@@ -199,6 +200,7 @@ TEST(AddressSanitizerInterface, Overlapp
   BAD_ACCESS(array, 96);
   free(array);
 }
+#endif  // !defined(ASAN_SHADOW_SCALE) || ASAN_SHADOW_SCALE == 3
 
 TEST(AddressSanitizerInterface, PushAndPopWithPoisoningTest) {
   // Vector of capacity 20
@@ -219,6 +221,7 @@ TEST(AddressSanitizerInterface, PushAndP
   free(vec);
 }
 
+#if !defined(ASAN_SHADOW_SCALE) || ASAN_SHADOW_SCALE == 3
 // Make sure that each aligned block of size "2^granularity" doesn't have
 // "true" value before "false" value.
 static void MakeShadowValid(bool *shadow, int length, int granularity) {
@@ -272,6 +275,7 @@ TEST(AddressSanitizerInterface, Poisonin
   }
   free(arr);
 }
+#endif  // !defined(ASAN_SHADOW_SCALE) || ASAN_SHADOW_SCALE == 3
 
 TEST(AddressSanitizerInterface, GlobalRedzones) {
   GOOD_ACCESS(glob1, 1 - 1);

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/allocator_oom_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/allocator_oom_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/allocator_oom_test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/allocator_oom_test.cc Thu Nov 16 15:29:19 2017
@@ -31,6 +31,7 @@
 // ASan shadow memory on s390 is too large for this test.
 // AArch64 bots fail on this test.
 // TODO(alekseys): Android lit do not run ulimit on device.
+// REQUIRES: shadow-scale-3
 // UNSUPPORTED: s390,android,arm,aarch64
 
 #include <stdlib.h>

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc Thu Nov 16 15:29:19 2017
@@ -1,7 +1,7 @@
 // Check that a stack unwinding algorithm works corretly even with the assembly
 // instrumentation.
 
-// REQUIRES: x86_64-target-arch
+// REQUIRES: x86_64-target-arch, shadow-scale-3
 // RUN: %clangxx_asan -g -O1 %s -fno-inline-functions -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mllvm -asan-instrument-assembly -o %t && not %run %t 2>&1 | FileCheck %s
 // RUN: %clangxx_asan -g -O1 %s -fno-inline-functions -fomit-frame-pointer -momit-leaf-frame-pointer -mllvm -asan-instrument-assembly -o %t && not %run %t 2>&1 | FileCheck %s
 // RUN: %clangxx_asan -g0 -O1 %s -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-exceptions -fno-inline-functions -fomit-frame-pointer -momit-leaf-frame-pointer -mllvm -asan-instrument-assembly -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-nounwind

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/asan_prelink_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/asan_prelink_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/asan_prelink_test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/asan_prelink_test.cc Thu Nov 16 15:29:19 2017
@@ -10,7 +10,7 @@
 // RUN: %env_asan_opts=verbosity=1 %run %t 2>&1 | FileCheck %s
 
 // GNU driver doesn't handle .so files properly.
-// REQUIRES: x86_64-target-arch, Clang
+// REQUIRES: x86_64-target-arch, shadow-scale-3, Clang
 #if BUILD_SO
 int G;
 int *getG() {

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/cuda_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/cuda_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/cuda_test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/cuda_test.cc Thu Nov 16 15:29:19 2017
@@ -1,7 +1,7 @@
 // Emulate the behavior of the NVIDIA CUDA driver
 // that mmaps memory inside the asan's shadow gap.
 //
-// REQUIRES: x86_64-target-arch
+// REQUIRES: x86_64-target-arch, shadow-scale-3
 //
 // RUN: %clangxx_asan %s -o %t
 // RUN: not %env_asan_opts=protect_shadow_gap=1 %t 2>&1 | FileCheck %s  --check-prefix=CHECK-PROTECT1
@@ -33,5 +33,3 @@ int main(void) {
   *(char*)(Base + 1234) = 1;
   // CHECK-PROTECT0: AddressSanitizer: use-after-poison on address 0x0002000004d2
 }
-
-

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/kernel-area.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/kernel-area.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/kernel-area.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/kernel-area.cc Thu Nov 16 15:29:19 2017
@@ -16,9 +16,8 @@
 // CHECK-kernel-64-bits: || `[0x28{{0+}}, 0x3{{f+}}]` || HighShadow ||
 // CHECK-kernel-64-bits: || `[0x24{{0+}}, 0x27{{f+}}]` || ShadowGap  ||
 //
-// REQUIRES: i386-target-arch
+// REQUIRES: i386-target-arch, shadow-scale-3
 
 int main() {
   return 0;
 }
-

Modified: compiler-rt/trunk/test/asan/TestCases/Linux/nohugepage_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Linux/nohugepage_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/Linux/nohugepage_test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/Linux/nohugepage_test.cc Thu Nov 16 15:29:19 2017
@@ -9,7 +9,7 @@
 // Would be great to run the test with no_huge_pages_for_shadow=0, but
 // the result will depend on the OS version and settings...
 //
-// REQUIRES: x86_64-target-arch
+// REQUIRES: x86_64-target-arch, shadow-scale-3
 //
 // WARNING: this test is very subtle and may nto work on some systems.
 // If this is the case we'll need to futher improve it or disable it.

Modified: compiler-rt/trunk/test/asan/TestCases/intra-object-overflow.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/intra-object-overflow.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/intra-object-overflow.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/intra-object-overflow.cc Thu Nov 16 15:29:19 2017
@@ -3,7 +3,7 @@
 // RUN: %run %t 10
 //
 // FIXME: fix 32-bits.
-// REQUIRES: asan-64-bits
+// REQUIRES: asan-64-bits, shadow-scale-3
 // FIXME: Implement ASan intra-object padding in Clang's MS record layout
 // UNSUPPORTED: win32
 #include <stdio.h>

Modified: compiler-rt/trunk/test/asan/TestCases/small_memcpy_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/small_memcpy_test.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/small_memcpy_test.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/small_memcpy_test.cc Thu Nov 16 15:29:19 2017
@@ -7,6 +7,7 @@
 // RUN: not %run %t 32 48 2>&1 | FileCheck %s --check-prefix=CHECK
 // RUN: not %run %t 40 56 2>&1 | FileCheck %s --check-prefix=CHECK
 // RUN: not %run %t 48 64 2>&1 | FileCheck %s --check-prefix=CHECK
+// REQUIRES: shadow-scale-3
 #include <assert.h>
 #include <string.h>
 #include <stdlib.h>

Modified: compiler-rt/trunk/test/asan/TestCases/stack-buffer-overflow-with-position.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/stack-buffer-overflow-with-position.cc?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/stack-buffer-overflow-with-position.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/stack-buffer-overflow-with-position.cc Thu Nov 16 15:29:19 2017
@@ -42,3 +42,4 @@ int main(int argc, char **argv) {
 // CHECK-63: 'CCC'{{.*}} <== {{.*}}partially underflows this variable
 // CHECK-73: 'CCC'{{.*}} <== {{.*}}partially overflows this variable
 // CHECK-74: 'CCC'{{.*}} <== {{.*}}overflows this variable
+// REQUIRES: shadow-scale-3

Modified: compiler-rt/trunk/test/asan/TestCases/strtol_strict.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/strtol_strict.c?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/strtol_strict.c (original)
+++ compiler-rt/trunk/test/asan/TestCases/strtol_strict.c Thu Nov 16 15:29:19 2017
@@ -21,6 +21,7 @@
 // RUN: %run %t test7 2>&1
 // RUN: %env_asan_opts=strict_string_checks=false %run %t test7 2>&1
 // RUN: %env_asan_opts=strict_string_checks=true not %run %t test7 2>&1 | FileCheck %s --check-prefix=CHECK7
+// REQUIRES: shadow-scale-3
 
 #include <assert.h>
 #include <stdlib.h>

Modified: compiler-rt/trunk/test/asan/TestCases/strtoll_strict.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/strtoll_strict.c?rev=318471&r1=318470&r2=318471&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/strtoll_strict.c (original)
+++ compiler-rt/trunk/test/asan/TestCases/strtoll_strict.c Thu Nov 16 15:29:19 2017
@@ -23,6 +23,7 @@
 // RUN: %env_asan_opts=strict_string_checks=true not %run %t test7 2>&1 | FileCheck %s --check-prefix=CHECK7
 
 // FIXME: Enable strtoll interceptor.
+// REQUIRES: shadow-scale-3
 // XFAIL: win32
 
 #include <assert.h>




More information about the llvm-commits mailing list