From fa06fc79e275d7fafe9f4a63f125fc686b9f6816 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 8 Aug 2018 17:29:37 -0700 Subject: [PATCH] base: move unique_fd fdsan tests into bionic. EXPECT_DEATH forks behind the scenes, which turns off fdsan, leading to these tests failing. Instead of duplicating the special EXPECT_FDSAN_DEATH macro, just move these tests into the bionic fdsan tests. Test: none Change-Id: Ia7b65d4560601d5a78d143aced887a6773b401c0 --- base/Android.bp | 1 - base/unique_fd_test.cpp | 54 ----------------------------------------- 2 files changed, 55 deletions(-) delete mode 100644 base/unique_fd_test.cpp diff --git a/base/Android.bp b/base/Android.bp index 46a023342..3d80d9719 100644 --- a/base/Android.bp +++ b/base/Android.bp @@ -135,7 +135,6 @@ cc_test { "strings_test.cpp", "test_main.cpp", "test_utils_test.cpp", - "unique_fd_test.cpp", ], target: { android: { diff --git a/base/unique_fd_test.cpp b/base/unique_fd_test.cpp deleted file mode 100644 index 3fdf12a30..000000000 --- a/base/unique_fd_test.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2018 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. - */ - -#include "android-base/unique_fd.h" - -#include - -#include -#include -#include - -using android::base::unique_fd; - -TEST(unique_fd, unowned_close) { -#if defined(__BIONIC__) - unique_fd fd(open("/dev/null", O_RDONLY)); - EXPECT_DEATH(close(fd.get()), "incorrect tag"); -#endif -} - -TEST(unique_fd, untag_on_release) { - unique_fd fd(open("/dev/null", O_RDONLY)); - close(fd.release()); -} - -TEST(unique_fd, move) { - unique_fd fd(open("/dev/null", O_RDONLY)); - unique_fd fd_moved = std::move(fd); - ASSERT_EQ(-1, fd.get()); - ASSERT_GT(fd_moved.get(), -1); -} - -TEST(unique_fd, unowned_close_after_move) { -#if defined(__BIONIC__) - unique_fd fd(open("/dev/null", O_RDONLY)); - unique_fd fd_moved = std::move(fd); - ASSERT_EQ(-1, fd.get()); - ASSERT_GT(fd_moved.get(), -1); - EXPECT_DEATH(close(fd_moved.get()), "incorrect tag"); -#endif -}