Commit Graph

6647 Commits

Author SHA1 Message Date
Mike Aizatsky 361a7bb338 [sancov] requiring dynamic asan.
llvm-svn: 261362
2016-02-19 20:47:25 +00:00
Xinliang David Li 3d731c5e44 minor test runline cleanup
llvm-svn: 261361
2016-02-19 20:28:51 +00:00
Mike Aizatsky 731942565b [sancov] using static asan
We are not able to recover coverage points from dynamically linked
binaries at this point without symbols in @plt tables.

llvm-svn: 261352
2016-02-19 18:46:30 +00:00
Xinliang David Li f56aeef645 [PGO] Enable profile-rt testing on all supported targets
Differential Revision: http://reviews.llvm.org/D17361

llvm-svn: 261344
2016-02-19 17:52:28 +00:00
Reid Kleckner 12813b0def [Windows] Simplify more tests now that Clang supports EH
Remove TestCases/Windows/throw_catch.cc, since it is redundant with the
portable test TestCases/throw_catch.cc.

llvm-svn: 261342
2016-02-19 17:36:54 +00:00
Reid Kleckner 00203bc60b [Windows] Add 10s timeout to some WaitForSingleObject calls
I ran the test suite yesterday and when I came back this morning the
queue_user_work_item.cc test was hung. This could be why the
sanitizer-windows buildbot keeps randomly timing out. I updated all the
usages of WaitForSingleObject involving threading events. I'm assuming
the API can reliably wait for subprocesses, which is what the majority
of call sites use it for.

While I'm at it, we can simplify some EH tests now that clang can
compile C++ EH.

llvm-svn: 261338
2016-02-19 17:30:38 +00:00
Richard Trieu ec3d332748 Change comma to semi-colon, no functionality change.
Cleanup for upcoming Clang warning -Wcomma.

llvm-svn: 261269
2016-02-18 22:07:42 +00:00
Reid Kleckner 973dacf691 Un-XFAIL the last C++ EH test, it was fixed by r261258
llvm-svn: 261263
2016-02-18 21:24:30 +00:00
Xinliang David Li 0fc35d0a42 Add test coverage for default linker
llvm-svn: 261261
2016-02-18 21:11:37 +00:00
Reid Kleckner 7c8e2c37ba Clang on Windows supports exceptions, un XFAIL the passing tests
llvm-svn: 261236
2016-02-18 18:33:58 +00:00
Reid Kleckner 0765fbc332 [WinASan] Fix page size and mmap granularity confusion
We were erroneously reporting 16K as the page size on Windows because
the code that does the shadow mapping was using page size instead of
allocation granularity. After fixing that, we can resolve the FIXMEs in
the Windows implementations of GetPageSize and GetMmapGranularity by
calling GetSystemInfo instead of returning hard-coded, incorrect
answers.

llvm-svn: 261233
2016-02-18 17:58:22 +00:00
Ed Maste 371310e1ae [tsan] Disable sysroot flag on FreeBSD
FreeBSD does not install a number of Clang-provided headers for the
compiler in the base system due to incompatibilities between FreeBSD's     
and Clang's versions. As a workaround do not use --sysroot=. on FreeBSD    
until this is addressed.

llvm.org/pr26651
Differential Revision:	http://reviews.llvm.org/D17383

llvm-svn: 261229
2016-02-18 17:35:30 +00:00
Jonas Hahnfeld 9bf3acd5ff [compiler-rt] Return correct size of struct pthread for glibc-2.12.2
There seems to be a difference between 2.12.1 and 2.12.2 in 64-bit build.
Tested on Scientific Linux 6.6, based on RHEL.

Differential Revision: http://reviews.llvm.org/D17190

llvm-svn: 261193
2016-02-18 07:08:26 +00:00
Kostya Serebryany d4590c7304 [sanitizer-coverage] implement -fsanitize-coverage=trace-pc. This is similar to trace-bb, but has a different API. We already use the equivalent flag in GCC for Linux kernel fuzzing. We may be able to use this flag with AFL too
llvm-svn: 261159
2016-02-17 21:34:43 +00:00
Alexey Samsonov 2af1e3e963 PR26606: Make abort_on_error.cc test more portable.
llvm-svn: 261157
2016-02-17 21:25:12 +00:00
Alexey Samsonov 51a8de9f7a Fix PR26608: Make sanitizer_common tests more portable.
llvm-svn: 261150
2016-02-17 21:00:50 +00:00
Alexey Samsonov 394f1d4159 [TSan] PR26609: Fix two test cases.
llvm-svn: 261148
2016-02-17 20:40:10 +00:00
Alexey Samsonov 54831a842e [tests] Slightly improve a fix in r260669.
llvm-svn: 261142
2016-02-17 19:35:51 +00:00
Ed Maste cef252ea4c [tsan] Fix signal number definitions for FreeBSD
The change in r253983 for OS X also applies to FreeBSD.

llvm-svn: 261121
2016-02-17 18:25:27 +00:00
Ed Maste a36d555c33 [tsan] Fix build warnings on FreeBSD
The change in r252165 for OS X applies to FreeBSD as well.

llvm-svn: 261120
2016-02-17 18:22:50 +00:00
Chris Bieneman 5a5b21d5be [CMake] [NFC] Move macro definitions out of config-ix.cmake
This change should have no functional impact, it just moves some macro definitions out of config-ix.cmake into CompilerRTUtils.cmake.

This step will allow these macros to be re-used by the separated builtin build.

llvm-svn: 261108
2016-02-17 16:57:38 +00:00
Chris Bieneman a58d0651cb [CMake] Push the dependency on AddLLVM into the test and unites layers
Compiler-rt only relies on LLVM for lit support. Pushing this dependency down into the test and unitest layers will allow builtin libraries to be built without LLVM.

llvm-svn: 261105
2016-02-17 16:38:54 +00:00
Jonas Hahnfeld ffed72bbeb [compiler-rt][msan] Ensure initialisation before calling __msan_unpoison
__msan_unpoison uses intercepted memset which currently leads to a SEGV
when linking with libc++ under CentOS 7.

Differential Revision: http://reviews.llvm.org/D17263

llvm-svn: 261073
2016-02-17 07:12:18 +00:00
Evgeniy Stepanov f55ebf0e39 [msan] Extend prlimit test.
llvm-svn: 261049
2016-02-17 01:34:56 +00:00
Evgeniy Stepanov d308f92d02 [msan] Intercept prlimit.
llvm-svn: 261048
2016-02-17 01:26:57 +00:00
Mohit K. Bhakkad 6987e59cd1 [Compiler-rt][MSan][MIPS] Resolve gethostbyname_r_erange for MIPS
Reviewers: eugenis, kcc, samsonov

Subscribers: jaydeep, sagar, llvm-commits

Differential Revision: http://reviews.llvm.org/D17135

llvm-svn: 260946
2016-02-16 08:33:37 +00:00
Jonas Hahnfeld ccb0e464be [compiler-rt] Fix test failures when switching default C++ library
1. Add two explicit -stdlib=libstdc++ in conjunction with -static-libstdc++
2. Pass -nostdinc++ when adding include paths for libc++ built for tsan. This
   prevents clang finding the headers twice which would confuse #include_next

Differential Revision: http://reviews.llvm.org/D17189

llvm-svn: 260883
2016-02-15 11:28:15 +00:00
Zia Ansari 3cc265458f Fixed non-NULL terminating array bug in SanitizerCommon.StartSubprocessTest that caused them to fail sometimes and act flaky.
Differential Revision: http://reviews.llvm.org/D17228

llvm-svn: 260876
2016-02-15 05:11:51 +00:00
Dimitry Andric 042c4858b0 Fix lib/tsan/go/buildgo.sh for FreeBSD after r243051.
FreeBSD also needs to have sanitizer_linux_libcdep.cc included,
otherwise linking will fail with "undefined reference to
`__sanitizer::GetRSS()'".

While here, tabify the FreeBSD part, similar to the other parts.

llvm-svn: 260839
2016-02-14 00:26:32 +00:00
Alexey Samsonov 5b79ede65a [TSan] Adjust expectation for check_analyze.sh
r260695 caused extra push/pop instruction pair in __tsan_read1
implementation. Still, that change in InstCombine is believed to
be good, as it reduces the number of instructions performed.

Adjust the expectations to match the newly generated code.

llvm-svn: 260775
2016-02-13 00:55:58 +00:00
Evgeniy Stepanov e1556e5dd5 Fix MemorySanitizer.ptrtoint test on big-endian targets.
llvm-svn: 260749
2016-02-12 22:00:22 +00:00
Alexey Samsonov eb649bcfb9 [LSan] Print more helpful error message if LSan crashes during leak detection.
llvm-svn: 260717
2016-02-12 20:20:51 +00:00
Daniel Sanders 2f1025d68a Re-commit r260230 with a fix for clang-cmake-aarch64-42vma.
There is now a default name_suffix ('default') which should appease the buildbot
and reveal why this builder lacks a suffix.

llvm-svn: 260679
2016-02-12 14:48:19 +00:00
Daniel Sanders 6c400643cd Revert r260669 while the clang-cmake-aarch64-42vma failures is investigated.
There's no obvious reason it should fail in this way but it's the only change
on the blamelist. I suspect stale lit*.cfg's from previous builds.

llvm-svn: 260672
2016-02-12 12:09:57 +00:00
Daniel Sanders fe567fb366 [msan+tsan] Bring back the tests that disappeared after r260230 and r259512.
The lit test-suite containing the unit tests needs to be explicitly specified
as an argument to lit.py since it is no longer discovered when the other tests
are run (because they are one directory deeper).

dfsan, lsan, and sanitizer_common don't show the same problem.

llvm-svn: 260669
2016-02-12 10:35:53 +00:00
Mike Aizatsky 92cbbfcd89 [sancov] improved object files handling.
Updating sancov invocation on html_cov_dump.

sancov change: http://reviews.llvm.org/D17169

Differential Revision: http://reviews.llvm.org/D17171

llvm-svn: 260629
2016-02-12 00:29:24 +00:00
Alexey Samsonov 669e87c1f1 [LSan] Test case fix: mode debug output, synchronization instead of sleep().
llvm-svn: 260564
2016-02-11 19:03:09 +00:00
Alexey Samsonov d077c29c80 [ASan] Disable test that uses profile runtime on Windows.
llvm-svn: 260561
2016-02-11 18:26:57 +00:00
Alexey Samsonov 027729c566 [LSan] Fix a crash when LSan hits a guard page while scanning thread stack for pointers.
Summary:
In some cases stack pointer register (SP) doesn't point into the thread
stack: e.g. if one is using swapcontext(). In this case LSan
conservatively tries to scan the whole thread stack for pointers.
However, thread stack (at least in glibc implementation) may also
include guard pages, causing LSan to crash when it's reading from them.

One of the solutions is to use a pthread_attr_getguardsize() to adjust
the calculated stack boundaries. However, here we're just using
IsAccessibleMemoryRange to skip guard pages and make the code (slightly)
less platform-specific.

Reviewers: kcc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D17116

llvm-svn: 260554
2016-02-11 18:07:17 +00:00
Reid Kleckner ceda883e4d [Windows] Fill in read/write information in SignalContext
Implements https://github.com/google/sanitizers/issues/653

llvm-svn: 260539
2016-02-11 16:44:35 +00:00
Reid Kleckner 031bbd062b Un-XFAIL a passing test on Windows
llvm-svn: 260481
2016-02-11 02:02:56 +00:00
Reid Kleckner ddcf07d51c Move mmap_limit_mp test to Posix
This test isn't posix specific, but it doesn't pass on Windows and is
XFAILed. I suspect that this test, which is expected to fail, is causing
the hangs I'm seeing on our WinASan builder.  Moving it to Posix seems
to be the cleanest way to avoid running it on Windows.

llvm-svn: 260480
2016-02-11 02:02:52 +00:00
Reid Kleckner 5c10fa3f9a Silence MSVC warning about non-void prototypes
It thinks that these functions don't match the function pointer type
that they are passed with:

GCDAProfiling.c(578) : warning C4113: 'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'
GCDAProfiling.c(579) : warning C4113: 'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'
GCDAProfiling.c(580) : warning C4113: 'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'

llvm-svn: 260475
2016-02-11 00:22:43 +00:00
Evgeniy Stepanov 89f3fbb971 [asan] Dump adb output on failure.
This is an asan/android test harness change aiming to catch
"adb pull" failures on the buildbot.

llvm-svn: 260473
2016-02-11 00:16:28 +00:00
Richard Smith 7814f7dafd Don't assume that there is only one strchr overload in the global namespace;
that's not true in general. Instead, use a preference order to pick the
standard C++ signature 'char*(char*, int)' where possible and fall back to the
C signature 'char*(const char*, int)' only when it's unavailable.

llvm-svn: 260425
2016-02-10 20:02:04 +00:00
Xinliang David Li 00ec96b5a0 Rollback 260394 -- 32bit test needs more config support
llvm-svn: 260402
2016-02-10 18:38:27 +00:00
Xinliang David Li ee195caf66 Add tests for -m32
llvm-svn: 260394
2016-02-10 17:57:55 +00:00
Kostya Serebryany 8c4b9ff921 [asan] update the scariness score: tweak a few weights and add tests
llvm-svn: 260327
2016-02-09 23:46:43 +00:00
Daniel Sanders f6678a635c [lsan] Run the tests for each supported arch and suffix each one to distinguish them.
Summary:
Previously, the tests only ran for the 64-bit equivalent of the default target
(see -m64).
Given the supported architecture list only contains 64-bit targets, this happens
to work out the same as the supported targets in most cases but may matter for
X86_64/X86_64h on Darwin.

For other targets, the practical effect is that the test names contain the
architecture. This resolves some confusion when lsan tests fail since their
name no longer implies that they are trying to test the default target.

Reviewers: samsonov

Subscribers: tberghammer, danalbert, llvm-commits, srhines

Differential Revision: http://reviews.llvm.org/D16859

llvm-svn: 260232
2016-02-09 16:22:39 +00:00
Daniel Sanders 922f95ce4b [dfsan] Run the tests for each supported arch and suffix each one to distinguish them.
Summary:
Previously, the tests only ran for the 64-bit equivalent of the default target
(see -m64).
Given the supported architecture list only contains 64-bit targets, this happens
to work out the same as the supported targets in most cases but may matter for
X86_64/X86_64h on Darwin.

For other targets, the practical effect is that the test names contain the
architecture. This resolves some confusion when msan tests fail since their
name no longer implies that they are trying to test the default target.

Reviewers: samsonov

Subscribers: tberghammer, danalbert, llvm-commits, srhines

Differential Revision: http://reviews.llvm.org/D16856

llvm-svn: 260231
2016-02-09 16:20:37 +00:00