summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2018-07-10Reapply "Make __gcov_flush flush counters for all shared libraries"Marco Castelluccio
This reapplies r336365, after marking tests as failing on various configurations. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336678 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-10[scudo] Use mkdir -p when creating directories for a testFilipe Cabecinhas
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336673 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-10[LibFuzzer] Disable MSan test on Darwin which was added by r336619. The ↵Dan Liew
MemorySanitizer is not supported on Darwin currently and so Clang refuses to compile with `-fsanitize=memory`. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336669 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-10[compiler-rt] Get rid of "%T" expansionsFilipe Cabecinhas
Summary: Original patch by Kuba Mracek The %T lit expansion expands to a common directory shared between all the tests in the same directory, which is unexpected and unintuitive, and more importantly, it's been a source of subtle race conditions and flaky tests. In https://reviews.llvm.org/D35396, it was agreed that it would be best to simply ban %T and only keep %t, which is unique to each test. When a test needs a temporary directory, it can just create one using mkdir %t. This patch removes %T in compiler-rt. Differential Revision: https://reviews.llvm.org/D48618 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336661 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-10Add lowercase OS name featureVlad Tsyrklevich
Summary: Some tests already make use of OS feature names, e.g. 'linux' and 'freebsd', but they are not actually currently set by lit. Reviewers: pcc, eugenis Reviewed By: eugenis Subscribers: emaste, krytarowski, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D49115 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336633 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-09[libFuzzer] Make -fsanitize=memory,fuzzer work.Matt Morehouse
This patch allows libFuzzer to fuzz applications instrumented with MSan without recompiling libFuzzer with MSan instrumentation. Fixes https://github.com/google/sanitizers/issues/958. Differential Revision: https://reviews.llvm.org/D48891 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336619 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-09Revert "[libFuzzer] Mutation tracking and logging implemented"Matt Morehouse
This reverts r336597 due to bot breakage. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336616 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-09[libFuzzer] Mutation tracking and logging implementedMatt Morehouse
Code now exists to track number of mutations that are used in fuzzing in total and ones that produce new coverage. The stats are currently being dumped to the command line. Patch By: Kode Williams Differntial Revision: https://reviews.llvm.org/D48054 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336597 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-07Revert "Make __gcov_flush flush counters for all shared libraries"Michael Zolotukhin
This reverts r336365: the added tests are failing on various configurations (e.g. on green-dragon). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336474 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-06Recommit "[CMake] Run libFuzzer tests with check-all."Yvan Roux
Since problematic tests on AArch64 were disabled at r336446. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336449 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-06[MSan] Add functions to enable/disable interceptor checks.Matt Morehouse
Summary: The motivation for this change is to make libFuzzer+MSan possible without instrumenting libFuzzer. See https://github.com/google/sanitizers/issues/958. Reviewers: eugenis Reviewed By: eugenis Subscribers: llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D48890 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336447 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-06[libFuzzer] Disable hanging tests on AArch64Yvan Roux
Disable problematic tests which broke AArch64 bots. Details available in Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=38034 Differential Revision: https://reviews.llvm.org/D49011 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336446 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-05Make __gcov_flush flush counters for all shared librariesMarco Castelluccio
Summary: This will make the behavior of __gcov_flush match the GCC behavior. I would like to rename __gcov_flush to __llvm_gcov_flush (in case of programs linking to libraries built with different compilers), but I guess we can't for compatibility reasons. Reviewers: davidxl Reviewed By: davidxl Subscribers: samsonov, vitalybuka, pcc, kcc, junbuml, glider, fhahn, eugenis, dvyukov, davidxl, srhines, chh, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D48538 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336365 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-05Revert "[CMake] Run libFuzzer tests with check-all."Yvan Roux
Revert due to AArch64 bots breakage, upstream PR raised to track the issue: https://bugs.llvm.org/show_bug.cgi?id=38034 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336341 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-03[libFuzzer] add one more value profile metric, under a flag (experimental)Kostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336234 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-03[libFuzzer] add a tiny and surprisingly hard puzzleKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336229 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-30[UBsan] Enable subset of unit tests for OpenBSDDavid Carlier
Reviewers: kubamracek, krytarowski Reviewed By: krytarowski Differential Revision: https://reviews.llvm.org/D48805 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336053 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-29[profile] Add llvm_gcov_flush to be called outside a shared libraryChih-Hung Hsieh
__gcov_flush is hidden. For applications to dump profiling data of selected .so files, they can use dlsym to find and call llvm_gcov_flush in each .so file. Differential Revision: https://reviews.llvm.org/D45454 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336019 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-29[cfi] Use __builtin version of __clear_cache.Evgeniy Stepanov
__builtin___clear_cache is also present on X86 and does the right thing (i.e. nop) there. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335997 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-29[scs] Disable negative test in shadowcallstack.Evgeniy Stepanov
The test checks that scs does NOT work correctly w/o runtime support. That's a strange thing to test, and it is also flaky, because things may just work if x18 happens to point to a writable page. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335982 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-29[scudo] Add some runtime tests for the minimal runtimeKostya Kortchinsky
Summary: As well as some tests to ensure that various combinations of the clang command line flags work (shared/static/minimal). Reviewers: eugenis, alekseyshl, vitalybuka Reviewed By: vitalybuka Subscribers: srhines, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D48553 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335981 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-29[cfi] Reset i-cache after copying code in test.Evgeniy Stepanov
Fixes intermittent crashes on Android. Also add PROT_READ to the code mapping for no real reason. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335943 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[asan] Change 3 tests from XFAIL to UNSUPPORTED.Evgeniy Stepanov
The failure in https://github.com/google/sanitizers/issues/981 is flaky. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335941 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[asan] Disable 3 tests on Android O+.Evgeniy Stepanov
https://github.com/google/sanitizers/issues/981 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335937 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[asan] Fix one more test on Android.Evgeniy Stepanov
This change makes it pass both on libstdc++ and libc++-based toolchains. The error was: error: function-like macro '__GLIBC_PREREQ' is not defined ^ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335936 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[asan] un-XFAIL one testEvgeniy Stepanov
NDK r16 provides glob.h, which makes this test pass. Supporting different test outcomes depending on the version of NDK add unnecessary complexity to the test harness. IMHO, it's OK to require the latest stable release. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335935 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[fuzzer] Don't run tests on Android.Evgeniy Stepanov
Need better build system support. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335933 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[UBsan] minimal unit tests removing OpenBSD spacial caseDavid Carlier
The OpenBSD driver now handles sanitisers with ld.lld automatically. Reviewers: vitalybuka Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D48740 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335923 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[Darwin] Add an integration test for PGO + symbol exportsVedant Kumar
rdar://41470205 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335891 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28Correct the test modified in rL335777.Haojian Wu
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335865 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28Support for multiarch runtimes layoutPetr Hosek
This change adds a support for multiarch style runtimes layout, so in addition to the existing layout where runtimes get installed to: lib/clang/$version/lib/$os Clang now allows runtimes to be installed to: lib/clang/$version/$target/lib This also includes libc++, libc++abi and libunwind; today those are assumed to be in Clang library directory built for host, with the new layout it is possible to install libc++, libc++abi and libunwind into the runtime directory built for different targets. The use of new layout is enabled by setting the LLVM_ENABLE_RUNTIME_TARGET_DIR CMake variable and is supported by both projects and runtimes layouts. The runtimes CMake build has been further modified to use the new layout when building runtimes for multiple targets. Differential Revision: https://reviews.llvm.org/D45604 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335809 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28[libFuzzer] [Tests] [NFC] Change seed for reduce_inputs.testGeorge Karpenkov
Differential Revision: https://reviews.llvm.org/D48686 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335802 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27[libFuzzer] [NFC] [Tests] Mark signal handling tests as UNSUPPORTED on DarwinGeorge Karpenkov
Under load, these tests tend to fail sporadically on our bots. In my understanding, the signal handling is not guaranteed to happen within 2 seconds, and the test is inherently flaky. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335792 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27Another shot at fixing android r335644 failureVlad Tsyrklevich
The android buildbot moves the build outputs to a different directory and rewrites the executable path, the DSO passed as an argument does not get re-written. Use rpaths to load the DSO the same way the test/cfi/cross-dso/ tests do and test the DSO name differently. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335777 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27[UBSan] Add silence_unsigned_overflow flag.Matt Morehouse
Summary: Setting UBSAN_OPTIONS=silence_unsigned_overflow=1 will silence all UIO reports. This feature, combined with -fsanitize-recover=unsigned-integer-overflow, is useful for providing fuzzing signal without the excessive log output. Helps with https://github.com/google/oss-fuzz/issues/910. Reviewers: kcc, vsk Reviewed By: vsk Subscribers: vsk, kubamracek, Dor1s, llvm-commits Differential Revision: https://reviews.llvm.org/D48660 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335762 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27[asan] Relax the null_deref.cc test even furtherVedant Kumar
On Darwin/x86_64, asan may report the crashing line of NullDeref as line 19 (i.e the closing brace of the function), whereas on other targets we see line 15 ("ptr[10]++"). The optimized debug info here isn't reliable enough to check. rdar://problem/41526369 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335747 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27[asan] Relax a test which depends on optimized debug infoVedant Kumar
On some ARM platforms this test depends on debug locations being present on constant materialization code, which was eliminated in r335497. Relax the test to allow two outcomes: the backtrace either contains the right line numbers, or no line numbers. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335741 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-27Fix another bot broken by r335644Vlad Tsyrklevich
The android sanitizer bot can't resolve the function name in the DSO and it's not relevant to the test. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335693 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-26Fix test broken by r335644Vlad Tsyrklevich
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335657 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-26CFI: Print DSO names for failed cross-DSO icallsVlad Tsyrklevich
Reviewers: pcc Reviewed By: pcc Subscribers: kubamracek, delcypher, llvm-commits, kcc, #sanitizers Differential Revision: https://reviews.llvm.org/D48583 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335644 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-26[libFuzzer] Mark several tests UNSUPPORTED for aarch64.Matt Morehouse
Now that check-fuzzer runs as part of check-all, some aarch64 bots had tests failing. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335639 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-26Mark mfcall.cpp as UNSUPPORTED: win32.Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335573 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-26Implement CFI for indirect calls via a member function pointer.Peter Collingbourne
Similarly to CFI on virtual and indirect calls, this implementation tries to use program type information to make the checks as precise as possible. The basic way that it works is as follows, where `C` is the name of the class being defined or the target of a call and the function type is assumed to be `void()`. For virtual calls: - Attach type metadata to the addresses of function pointers in vtables (not the functions themselves) of type `void (B::*)()` for each `B` that is a recursive dynamic base class of `C`, including `C` itself. This type metadata has an annotation that the type is for virtual calls (to distinguish it from the non-virtual case). - At the call site, check that the computed address of the function pointer in the vtable has type `void (C::*)()`. For non-virtual calls: - Attach type metadata to each non-virtual member function whose address can be taken with a member function pointer. The type of a function in class `C` of type `void()` is each of the types `void (B::*)()` where `B` is a most-base class of `C`. A most-base class of `C` is defined as a recursive base class of `C`, including `C` itself, that does not have any bases. - At the call site, check that the function pointer has one of the types `void (B::*)()` where `B` is a most-base class of `C`. Differential Revision: https://reviews.llvm.org/D47567 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335569 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-25[UBsan] Enable ubsan minimal unit tests on OpenBSDDavid Carlier
OpenBSD needs lld linker for sanitisers. Disabling lint checking as some symbols cannot be defined and block the proper unit tests launch. Reviewers: lebedev.ri, vitalybuka Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D48528 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335524 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-25[ubsan] Mark a test case as unsupported on WindowsVedant Kumar
__ubsan_on_report isn't defined as weak, and redefining it in a test is not supported on Windows. See the error message here: https://reviews.llvm.org/D48446 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335523 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-25[CMake] Run libFuzzer tests with check-all.Matt Morehouse
Reviewers: kcc Reviewed By: kcc Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D48200 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335519 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-22[ubsan] Add support for reporting diagnostics to a monitor processVedant Kumar
Add support to the ubsan runtime for reporting diagnostics to a monitor process (e.g a debugger). The Xcode IDE uses this by setting a breakpoint on __ubsan_on_report and collecting diagnostic information via __ubsan_get_current_report_data, which it then surfaces to users in the editor UI. Testing for this functionality already exists in upstream lldb, here: lldb/packages/Python/lldbsuite/test/functionalities/ubsan Apart from that, this is `ninja check-{a,ub}san` clean. Differential Revision: https://reviews.llvm.org/D48446 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335371 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-21[libFuzzer] Filter architectures for testing on Apple platforms.George Karpenkov
This is done in all other sanitizers, and was missing on libFuzzer. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335290 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-21[libFuzzer] Provide more descriptive names for testing targets.George Karpenkov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335289 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-21[sanitizer] Stop running tests against 32-bit iOS simulatorKuba Mracek
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@335245 91177308-0d34-0410-b5e6-96231b3b80d8