diff --git a/tests/Android.bp b/tests/Android.bp
index 02a33ee..476b8f5 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -567,6 +567,9 @@
         "-Wno-strlcpy-strlcat-size",
         "-Wno-strncat-size",
     ],
+    static_libs: [
+        "libbase",
+    ],
 }
 
 cc_defaults {
@@ -575,6 +578,9 @@
         "-U_FORTIFY_SOURCE",
     ],
     srcs: ["fortify_test_main.cpp"],
+    static_libs: [
+        "libbase",
+    ],
     tidy: false,
     target: {
         host: {
@@ -839,7 +845,6 @@
             ],
             static_libs: [
                 // The order of these libraries matters, do not shuffle them.
-                "libbase",
                 "libmeminfo",
                 "libziparchive",
                 "libz",
diff --git a/tests/BionicDeathTest.h b/tests/BionicDeathTest.h
deleted file mode 100644
index f70839a..0000000
--- a/tests/BionicDeathTest.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <signal.h>
-
-#include <gtest/gtest.h>
-
-#if !defined(__BIONIC__)
-#define sigaction64 sigaction
-#endif
-
-class BionicDeathTest : public testing::Test {
- protected:
-  virtual void SetUp() {
-    // Suppress debuggerd stack traces. Too slow.
-    for (int signo : { SIGABRT, SIGBUS, SIGSEGV, SIGSYS }) {
-      struct sigaction64 action = { .sa_handler = SIG_DFL };
-      sigaction64(signo, &action, &previous_);
-    }
-  }
-
-  virtual void TearDown() {
-    for (int signo : { SIGABRT, SIGBUS, SIGSEGV, SIGSYS }) {
-      sigaction64(signo, &previous_, nullptr);
-    }
-  }
-
- private:
-  struct sigaction64 previous_;
-};
diff --git a/tests/assert_test.cpp b/tests/assert_test.cpp
index 714e22a..769852a 100644
--- a/tests/assert_test.cpp
+++ b/tests/assert_test.cpp
@@ -19,9 +19,9 @@
 #undef NDEBUG
 #include <assert.h>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
 
-using assert_DeathTest = BionicDeathTest;
+using assert_DeathTest = SilentDeathTest;
 
 TEST(assert, assert_true) {
   assert(true);
diff --git a/tests/cfi_test.cpp b/tests/cfi_test.cpp
index d3cd8d1..9a6ed9a 100644
--- a/tests/cfi_test.cpp
+++ b/tests/cfi_test.cpp
@@ -15,12 +15,13 @@
  */
 
 #include <dlfcn.h>
-#include <gtest/gtest.h>
 #include <sys/stat.h>
 
 #include <vector>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
+#include <gtest/gtest.h>
+
 #include "gtest_globals.h"
 #include "utils.h"
 
@@ -35,7 +36,7 @@
 size_t __cfi_shadow_size();
 }
 
-using cfi_test_DeathTest = BionicDeathTest;
+using cfi_test_DeathTest = SilentDeathTest;
 
 static void f() {}
 
diff --git a/tests/clang_fortify_tests.cpp b/tests/clang_fortify_tests.cpp
index 0355170..5768f1f 100644
--- a/tests/clang_fortify_tests.cpp
+++ b/tests/clang_fortify_tests.cpp
@@ -94,14 +94,14 @@
 #include <wchar.h>
 
 #ifndef COMPILATION_TESTS
+#include <android-base/silent_death_test.h>
 #include <gtest/gtest.h>
-#include "BionicDeathTest.h"
 
 #define CONCAT2(x, y) x##y
 #define CONCAT(x, y) CONCAT2(x, y)
 #define FORTIFY_TEST_NAME CONCAT(CONCAT(clang_fortify_test_, _FORTIFY_SOURCE), _DeathTest)
 
-using FORTIFY_TEST_NAME = BionicDeathTest;
+using FORTIFY_TEST_NAME = SilentDeathTest;
 
 template <typename Fn>
 __attribute__((noreturn)) static void ExitAfter(Fn&& f) {
diff --git a/tests/error_test.cpp b/tests/error_test.cpp
index e03c8d4..e114f06 100644
--- a/tests/error_test.cpp
+++ b/tests/error_test.cpp
@@ -30,7 +30,9 @@
 
 #include <error.h>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
+
+using error_DeathTest = SilentDeathTest;
 
 static size_t g_test_error_print_progname_invocation_count;
 
diff --git a/tests/fdsan_test.cpp b/tests/fdsan_test.cpp
index c294ff3..016970f 100644
--- a/tests/fdsan_test.cpp
+++ b/tests/fdsan_test.cpp
@@ -16,8 +16,6 @@
 
 #include <gtest/gtest.h>
 
-#include "BionicDeathTest.h"
-
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -32,6 +30,7 @@
 
 #include <unordered_map>
 
+#include <android-base/silent_death_test.h>
 #include <android-base/unique_fd.h>
 
 #define FDSAN_TEST(test_name) TEST_F(FdsanTest, test_name)
@@ -49,12 +48,12 @@
   }
 };
 
-struct fdsan_DeathTest : public BionicDeathTest {
+struct fdsan_DeathTest : public SilentDeathTest {
 #if defined(__BIONIC__)
   void SetUp() override {
     android_fdsan_set_error_level(ANDROID_FDSAN_ERROR_LEVEL_FATAL);
     signal(BIONIC_SIGNAL_DEBUGGER, SIG_DFL);  // Disable debuggerd.
-    BionicDeathTest::SetUp();
+    SilentDeathTest::SetUp();
   }
 #endif
 };
diff --git a/tests/fortify_test.cpp b/tests/fortify_test.cpp
index 3ca0223..4abee67 100644
--- a/tests/fortify_test.cpp
+++ b/tests/fortify_test.cpp
@@ -15,7 +15,6 @@
  */
 
 #include <gtest/gtest.h>
-#include "BionicDeathTest.h"
 
 #include <fcntl.h>
 #include <malloc.h>
@@ -28,6 +27,8 @@
 #include <sys/types.h>
 #include <time.h>
 
+#include <android-base/silent_death_test.h>
+
 #if __BIONIC__
 #define ASSERT_FORTIFY(expr) ASSERT_EXIT(expr, testing::KilledBySignal(SIGABRT), "FORTIFY")
 #else
@@ -40,7 +41,7 @@
 #define DEATHTEST_EVALUATOR(name) DEATHTEST_PASTER(name)
 #define DEATHTEST DEATHTEST_EVALUATOR(TEST_NAME)
 
-class DEATHTEST : public BionicDeathTest {};
+using DEATHTEST = SilentDeathTest;
 
 #if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE == 2
 struct foo {
diff --git a/tests/pidfd_test.cpp b/tests/pidfd_test.cpp
index 7c691ef..b9fadb4 100644
--- a/tests/pidfd_test.cpp
+++ b/tests/pidfd_test.cpp
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#include <gtest/gtest.h>
+
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
@@ -24,16 +26,13 @@
 #include <sys/pidfd.h>
 #endif
 
+#include <android-base/silent_death_test.h>
 #include <android-base/unique_fd.h>
 
-#include <gtest/gtest.h>
-
-#include "BionicDeathTest.h"
-
 using android::base::unique_fd;
 using namespace std::chrono_literals;
 
-using pidfd_DeathTest = BionicDeathTest;
+using pidfd_DeathTest = SilentDeathTest;
 
 TEST(pidfd, pidfd_open) {
 #if defined(__BIONIC__)
diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp
index 1cbe3de..1a00460 100644
--- a/tests/pthread_test.cpp
+++ b/tests/pthread_test.cpp
@@ -38,14 +38,14 @@
 #include <android-base/macros.h>
 #include <android-base/parseint.h>
 #include <android-base/scopeguard.h>
+#include <android-base/silent_death_test.h>
 #include <android-base/strings.h>
 
 #include "private/bionic_constants.h"
-#include "BionicDeathTest.h"
 #include "SignalUtils.h"
 #include "utils.h"
 
-using pthread_DeathTest = BionicDeathTest;
+using pthread_DeathTest = SilentDeathTest;
 
 TEST(pthread, pthread_key_create) {
   pthread_key_t key;
diff --git a/tests/semaphore_test.cpp b/tests/semaphore_test.cpp
index ed0fcf1..f3f6020 100644
--- a/tests/semaphore_test.cpp
+++ b/tests/semaphore_test.cpp
@@ -17,17 +17,18 @@
 #include <semaphore.h>
 
 #include <errno.h>
-#include <gtest/gtest.h>
 #include <limits.h>
 #include <pthread.h>
 #include <time.h>
 #include <unistd.h>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
+#include <gtest/gtest.h>
+
 #include "SignalUtils.h"
 #include "private/bionic_constants.h"
 
-using semaphore_DeathTest = BionicDeathTest;
+using semaphore_DeathTest = SilentDeathTest;
 
 TEST(semaphore, sem_init) {
   sem_t s;
diff --git a/tests/setjmp_test.cpp b/tests/setjmp_test.cpp
index ec1badc..ee126eb 100644
--- a/tests/setjmp_test.cpp
+++ b/tests/setjmp_test.cpp
@@ -21,10 +21,11 @@
 #include <sys/syscall.h>
 #include <unistd.h>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
+
 #include "SignalUtils.h"
 
-using setjmp_DeathTest = BionicDeathTest;
+using setjmp_DeathTest = SilentDeathTest;
 
 TEST(setjmp, setjmp_smoke) {
   int value;
diff --git a/tests/stack_protector_test.cpp b/tests/stack_protector_test.cpp
index 9fe7bb1..a95e037 100644
--- a/tests/stack_protector_test.cpp
+++ b/tests/stack_protector_test.cpp
@@ -19,7 +19,6 @@
  */
 
 #include <gtest/gtest.h>
-#include "BionicDeathTest.h"
 
 #include <pthread.h>
 #include <stdint.h>
@@ -27,6 +26,8 @@
 #include <unistd.h>
 #include <set>
 
+#include <android-base/silent_death_test.h>
+
 #include "private/bionic_tls.h"
 
 extern "C" pid_t gettid(); // glibc defines this but doesn't declare it anywhere.
@@ -99,7 +100,7 @@
 #endif
 }
 
-class stack_protector_DeathTest : public BionicDeathTest {};
+using stack_protector_DeathTest = SilentDeathTest;
 
 TEST_F(stack_protector_DeathTest, modify_stack_protector) {
   // In another file to prevent inlining, which removes stack protection.
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index 5491589..5736e17 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -33,10 +33,10 @@
 #include <vector>
 
 #include <android-base/file.h>
+#include <android-base/silent_death_test.h>
 #include <android-base/test_utils.h>
 #include <android-base/unique_fd.h>
 
-#include "BionicDeathTest.h"
 #include "utils.h"
 
 // This #include is actually a test too. We have to duplicate the
@@ -56,8 +56,8 @@
 
 using namespace std::string_literals;
 
-using stdio_DeathTest = BionicDeathTest;
-using stdio_nofortify_DeathTest = BionicDeathTest;
+using stdio_DeathTest = SilentDeathTest;
+using stdio_nofortify_DeathTest = SilentDeathTest;
 
 static void SetFileTo(const char* path, const char* content) {
   FILE* fp;
diff --git a/tests/stdlib_test.cpp b/tests/stdlib_test.cpp
index 90ef861..6c7966d 100644
--- a/tests/stdlib_test.cpp
+++ b/tests/stdlib_test.cpp
@@ -31,9 +31,9 @@
 
 #include <android-base/file.h>
 #include <android-base/macros.h>
+#include <android-base/silent_death_test.h>
 #include <gtest/gtest.h>
 
-#include "BionicDeathTest.h"
 #include "math_data_test.h"
 #include "utils.h"
 
@@ -447,7 +447,7 @@
 // Even though this isn't really a death test, we have to say "DeathTest" here so gtest knows to
 // run this test (which exits normally) in its own process.
 
-class stdlib_DeathTest : public BionicDeathTest {};
+using stdlib_DeathTest = SilentDeathTest;
 
 TEST_F(stdlib_DeathTest, getenv_after_main_thread_exits) {
   // https://code.google.com/p/android/issues/detail?id=57421
diff --git a/tests/system_properties_test.cpp b/tests/system_properties_test.cpp
index 6d696c7..aa8fef4 100644
--- a/tests/system_properties_test.cpp
+++ b/tests/system_properties_test.cpp
@@ -15,7 +15,6 @@
  */
 
 #include <gtest/gtest.h>
-#include "BionicDeathTest.h"
 
 #include <errno.h>
 #include <sys/wait.h>
@@ -25,6 +24,7 @@
 #include <thread>
 
 #include <android-base/file.h>
+#include <android-base/silent_death_test.h>
 
 using namespace std::literals;
 
@@ -425,7 +425,7 @@
          WTERMSIG(exit_status) == SIGABRT);
 }
 
-class properties_DeathTest : public BionicDeathTest {};
+using properties_DeathTest = SilentDeathTest;
 
 TEST_F(properties_DeathTest, read_only) {
 #if defined(__BIONIC__)
diff --git a/tests/threads_test.cpp b/tests/threads_test.cpp
index 5fafff3..c1e9b12 100644
--- a/tests/threads_test.cpp
+++ b/tests/threads_test.cpp
@@ -60,7 +60,8 @@
 
 #include <thread>
 
-#include "BionicDeathTest.h"
+#include <android-base/silent_death_test.h>
+
 #include "SignalUtils.h"
 
 TEST(threads, call_once) {
@@ -361,7 +362,7 @@
 #endif
 }
 
-class threads_DeathTest : public BionicDeathTest {};
+using threads_DeathTest = SilentDeathTest;
 
 TEST(threads_DeathTest, thrd_exit_main_thread) {
 #if !defined(HAVE_THREADS_H)
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index 595ba90..7d1e612 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -16,7 +16,6 @@
 
 #include <gtest/gtest.h>
 
-#include "BionicDeathTest.h"
 #include "SignalUtils.h"
 #include "utils.h"
 
@@ -37,6 +36,7 @@
 #include <chrono>
 
 #include <android-base/file.h>
+#include <android-base/silent_death_test.h>
 #include <android-base/strings.h>
 
 #include "private/get_cpu_count_from_string.h"
@@ -53,6 +53,8 @@
 #define UNISTD_DEATHTEST unistd_DeathTest
 #endif
 
+using UNISTD_DEATHTEST = SilentDeathTest;
+
 using namespace std::chrono_literals;
 
 static void* get_brk() {
@@ -711,8 +713,6 @@
   }
 }
 
-class UNISTD_DEATHTEST : public BionicDeathTest {};
-
 TEST_F(UNISTD_DEATHTEST, abort) {
   ASSERT_EXIT(abort(), testing::KilledBySignal(SIGABRT), "");
 }
