Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf06a40a authored by Josh Gao's avatar Josh Gao
Browse files

debuggerd_test: add test for fdsan abort message.

Bug: http://b/112770187
Test: debuggerd_test
Test: bionic-unit-tests
Change-Id: Ia93761e89074aea4629b8d0f232c580d6f0f249c
parent 4843c186
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include <regex>
#include <thread>

#include <android/fdsan.h>
#include <android/set_abort_message.h>

#include <android-base/file.h>
@@ -801,6 +802,31 @@ TEST_F(CrasherTest, competing_tracer) {
  AssertDeath(SIGABRT);
}

TEST_F(CrasherTest, fdsan_warning_abort_message) {
  int intercept_result;
  unique_fd output_fd;

  StartProcess([]() {
    android_fdsan_set_error_level(ANDROID_FDSAN_ERROR_LEVEL_WARN_ONCE);
    unique_fd fd(open("/dev/null", O_RDONLY | O_CLOEXEC));
    if (fd == -1) {
      abort();
    }
    close(fd.get());
    _exit(0);
  });

  StartIntercept(&output_fd);
  FinishCrasher();
  AssertDeath(0);
  FinishIntercept(&intercept_result);
  ASSERT_EQ(1, intercept_result) << "tombstoned reported failure";

  std::string result;
  ConsumeFd(std::move(output_fd), &result);
  ASSERT_MATCH(result, "Abort message: 'attempted to close");
}

TEST(crash_dump, zombie) {
  pid_t forkpid = fork();