diff options
Diffstat (limited to 'lib/tsan/lit_tests/sigsuspend.cc')
-rw-r--r-- | lib/tsan/lit_tests/sigsuspend.cc | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/lib/tsan/lit_tests/sigsuspend.cc b/lib/tsan/lit_tests/sigsuspend.cc deleted file mode 100644 index 78d507fa0af5..000000000000 --- a/lib/tsan/lit_tests/sigsuspend.cc +++ /dev/null @@ -1,38 +0,0 @@ -// RUN: %clangxx_tsan -O1 %s -o %t && not %t 2>&1 | FileCheck %s -#include <assert.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <stdio.h> - -static bool signal_handler_ran = false; - -void do_nothing_signal_handler(int signum) { - write(1, "HANDLER\n", 8); - signal_handler_ran = true; -} - -int main() { - const int kSignalToTest = SIGSYS; - assert(SIG_ERR != signal(kSignalToTest, do_nothing_signal_handler)); - sigset_t empty_set; - assert(0 == sigemptyset(&empty_set)); - sigset_t one_signal = empty_set; - assert(0 == sigaddset(&one_signal, kSignalToTest)); - sigset_t old_set; - assert(0 == sigprocmask(SIG_BLOCK, &one_signal, &old_set)); - raise(kSignalToTest); - assert(!signal_handler_ran); - sigset_t all_but_one; - assert(0 == sigfillset(&all_but_one)); - assert(0 == sigdelset(&all_but_one, kSignalToTest)); - sigsuspend(&all_but_one); - assert(signal_handler_ran); - - // Restore the original set. - assert(0 == sigprocmask(SIG_SETMASK, &old_set, NULL)); - printf("DONE"); -} - -// CHECK: HANDLER -// CHECK: DONE |