[compiler-rt] r273464 - [asan] Add a test case for global registration

Mike Aizatsky via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 23 15:51:02 PDT 2016


Ryan,

This test breaks the bot:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/24502

@@@BUILD_STEP run asan lit tests [arm/hammerhead-userdebug/LMY48T]@@@
+ echo @@@BUILD_STEP run asan lit tests
'[arm/hammerhead-userdebug/LMY48T]@@@'
+ cd
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm
+ ninja check-asan
[1/1] Running the AddressSanitizer tests
-- Testing: 364 tests, 16 threads --
Testing: 0 .. 10.. 20..
FAIL: AddressSanitizer-arm-android :: TestCases/Posix/global-registration.c
(112 of 364)
******************** TEST 'AddressSanitizer-arm-android ::
TestCases/Posix/global-registration.c' FAILED ********************
Script:
--
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/android_commands/android_compile.py
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm_build64/bin/clang
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only
--target=armv7-linux-androideabi
--sysroot=/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm/sysroot
-B/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm
-lm -shared-libasan -c -o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp-one.o
-DDYNAMICLIB=\"/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/
global-registration.c.tmp-dynamic.so\" -DMAIN_FILE
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/android_commands/android_compile.py
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm_build64/bin/clang
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only
--target=armv7-linux-androideabi
--sysroot=/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm/sysroot
-B/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm
-lm -shared-libasan -c -o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp-two.o
-DSECONDARY_FILE
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/android_commands/android_compile.py
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm_build64/bin/clang
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only
--target=armv7-linux-androideabi
--sysroot=/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm/sysroot
-B/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm
-lm -shared-libasan -o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp-one.o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp-two.o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/android_commands/android_compile.py
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm_build64/bin/clang
-fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
-fno-optimize-sibling-calls -gline-tables-only
--target=armv7-linux-androideabi
--sysroot=/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm/sysroot
-B/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/../../../android-ndk/standalone-arm
-lm -shared-libasan -shared -fPIC -o
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/
global-registration.c.tmp-dynamic.so -DSHARED_LIBRARY_FILE
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
not
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp
1 2>&1 | FileCheck --check-prefix ASAN-CHECK-1
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
not
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp
2 2>&1 | FileCheck --check-prefix ASAN-CHECK-2
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
not
 /mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig/TestCases/Posix/Output/global-registration.c.tmp
3 2>&1 | FileCheck --check-prefix ASAN-CHECK-3
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c
--
Exit Code: 2

Command Output (stderr):
--
clang-3.9: warning: -lm: 'linker' input unused
clang-3.9: warning: -lm: 'linker' input unused
FileCheck error: '-' is empty.
FileCheck command line:  FileCheck --check-prefix ASAN-CHECK-3
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/projects/compiler-rt/test/asan/TestCases/Posix/global-registration.c

--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
Testing Time: 537.93s
********************
Failing Tests (1):
    AddressSanitizer-arm-android :: TestCases/Posix/global-registration.c

  Expected Passes    : 165
  Expected Failures  : 40
  Unsupported Tests  : 158
  Unexpected Failures: 1
FAILED: cd
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan
&& /usr/bin/python2.7
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/utils/lit/lit.py
-sv
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/compiler_rt_build_android_arm/test/asan/ARMAndroidConfig
ninja: build stopped: subcommand failed.
@@@STEP_FAILURE@@@
+ echo @@@STEP_FAILURE@@@
+ echo @@@BUILD_STEP run sanitizer_common tests
'[arm/hammerhead-userdebug/LMY48T]@@@'


--------------------------------------------------------------------------------
started: Thu Jun 23 13:34:17 2016
ended: Thu Jun 23 15:20:10 2016
duration: 1 hrs, 45 mins, 53 secs

On Wed, Jun 22, 2016 at 1:06 PM Ryan Govostes via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rgov
> Date: Wed Jun 22 14:59:10 2016
> New Revision: 273464
>
> URL: http://llvm.org/viewvc/llvm-project?rev=273464&view=rev
> Log:
> [asan] Add a test case for global registration
>
> This test case checks that globals from all object files are being
> registered
> after they've been linked together. It also checks that globals from
> libraries
> loaded at runtime are registered.
>
>
> Added:
>     compiler-rt/trunk/test/asan/TestCases/Posix/global-registration.c
>
> Added: compiler-rt/trunk/test/asan/TestCases/Posix/global-registration.c
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Posix/global-registration.c?rev=273464&view=auto
>
> ==============================================================================
> --- compiler-rt/trunk/test/asan/TestCases/Posix/global-registration.c
> (added)
> +++ compiler-rt/trunk/test/asan/TestCases/Posix/global-registration.c Wed
> Jun 22 14:59:10 2016
> @@ -0,0 +1,56 @@
> +// Test that globals from different shared objects all get registered.
> +
> +// This source file is compiled into three different source object files.
> Each
> +// object file declares a global buffer. The first two are linked
> together, and
> +// the third is loaded at runtime. We make sure that out-of-bounds
> accesses
> +// are caught for all three buffers.
> +
> +// RUN: %clang_asan -c -o %t-one.o -DDYNAMICLIB=\"%t-dynamic.so\"
> -DMAIN_FILE %s
> +// RUN: %clang_asan -c -o %t-two.o -DSECONDARY_FILE %s
> +// RUN: %clang_asan -o %t %t-one.o %t-two.o
> +// RUN: %clang_asan -shared -o %t-dynamic.so -DSHARED_LIBRARY_FILE %s
> +// RUN: not %run %t 1 2>&1 | FileCheck --check-prefix ASAN-CHECK-1 %s
> +// RUN: not %run %t 2 2>&1 | FileCheck --check-prefix ASAN-CHECK-2 %s
> +// RUN: not %run %t 3 2>&1 | FileCheck --check-prefix ASAN-CHECK-3 %s
> +
> +#if MAIN_FILE
> +
> +#include <dlfcn.h>
> +#include <stdlib.h>
> +
> +extern char buffer2[1];
> +char buffer1[1] = { };
> +
> +int main(int argc, char *argv[]) {
> +  int n = atoi(argv[1]);
> +  if (n == 1) {
> +    buffer1[argc] = 0;
> +    // ASAN-CHECK-1: {{0x.* is located 1 bytes .* 'buffer1'}}
> +  } else if (n == 2) {
> +    buffer2[argc] = 0;
> +    // ASAN-CHECK-2: {{0x.* is located 1 bytes .* 'buffer2'}}
> +  } else if (n == 3) {
> +    void *handle = dlopen(DYNAMICLIB, RTLD_NOW);
> +    if (!handle)
> +      return 1;
> +
> +    char *buffer = (char *)dlsym(handle, "buffer3");
> +    if (!buffer)
> +      return 1;
> +
> +    buffer[argc] = 0;
> +    // ASAN-CHECK-3: {{0x.* is located 1 bytes .* 'buffer3'}}
> +  }
> +
> +  return 0;
> +}
> +
> +#elif SECONDARY_FILE
> +
> +char buffer2[1] = { };
> +
> +#elif SHARED_LIBRARY_FILE
> +
> +char buffer3[1] = { };
> +
> +#endif
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-- 
Mike
Sent from phone
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160623/0f92425d/attachment.html>


More information about the llvm-commits mailing list