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

Commit 974c3ea1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add isAidlNativeHandleEmpty to libaidlcommonsupport"

parents 29b87463 86338db0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -22,6 +22,13 @@ namespace android {

using aidl::android::hardware::common::NativeHandle;

/**
 * Checks if a NativeHandle is null
 */
bool isAidlNativeHandleEmpty(const NativeHandle& handle) {
    return handle.fds.empty() && handle.ints.empty();
}

static native_handle_t* fromAidl(const NativeHandle& handle, bool doDup) {
    native_handle_t* to = native_handle_create(handle.fds.size(), handle.ints.size());
    if (!to) return nullptr;
+5 −0
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@

namespace android {

/**
 * Checks if a NativeHandle is empty.
 */
bool isAidlNativeHandleEmpty(const aidl::android::hardware::common::NativeHandle& handle);

/**
 * Creates a libcutils native handle from an AIDL native handle, but it does not
 * dup internally, so it will contain the same FDs as the handle itself. The
+6 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ static NativeHandle makeTestAidlHandle() {

TEST(ConvertNativeHandle, MakeFromAidlEmpty) {
    NativeHandle handle;
    EXPECT_TRUE(isAidlNativeHandleEmpty(handle));
    native_handle_t* to = makeFromAidl(handle);
    checkEq(handle, to, false /*exceptFds*/);
    // no native_handle_close b/c fds are owned by NativeHandle
@@ -70,6 +71,7 @@ TEST(ConvertNativeHandle, MakeFromAidlEmpty) {

TEST(ConvertNativeHandle, MakeFromAidl) {
    NativeHandle handle = makeTestAidlHandle();
    EXPECT_FALSE(isAidlNativeHandleEmpty(handle));
    native_handle_t* to = makeFromAidl(handle);
    checkEq(handle, to, false /*exceptFds*/);
    // no native_handle_close b/c fds are owned by NativeHandle
@@ -106,6 +108,7 @@ static native_handle_t* makeTestLibcutilsHandle() {
TEST(ConvertNativeHandle, MakeToAidlEmpty) {
    native_handle_t* handle = native_handle_create(0, 0);
    NativeHandle to = makeToAidl(handle);
    EXPECT_TRUE(isAidlNativeHandleEmpty(to));
    checkEq(to, handle, false /*exceptFds*/);
    // no native_handle_close b/c fds are owned by NativeHandle now
    EXPECT_EQ(0, native_handle_delete(handle));
@@ -114,6 +117,7 @@ TEST(ConvertNativeHandle, MakeToAidlEmpty) {
TEST(ConvertNativeHandle, MakeToAidl) {
    native_handle_t* handle = makeTestLibcutilsHandle();
    NativeHandle to = makeToAidl(handle);
    EXPECT_FALSE(isAidlNativeHandleEmpty(to));
    checkEq(to, handle, false /*exceptFds*/);
    // no native_handle_close b/c fds are owned by NativeHandle now
    EXPECT_EQ(0, native_handle_delete(handle));
@@ -122,6 +126,7 @@ TEST(ConvertNativeHandle, MakeToAidl) {
TEST(ConvertNativeHandle, DupToAidlEmpty) {
    native_handle_t* handle = native_handle_create(0, 0);
    NativeHandle to = dupToAidl(handle);
    EXPECT_TRUE(isAidlNativeHandleEmpty(to));
    checkEq(to, handle, true /*exceptFds*/);
    EXPECT_EQ(0, native_handle_close(handle));
    EXPECT_EQ(0, native_handle_delete(handle));
@@ -130,6 +135,7 @@ TEST(ConvertNativeHandle, DupToAidlEmpty) {
TEST(ConvertNativeHandle, DupToAidl) {
    native_handle_t* handle = makeTestLibcutilsHandle();
    NativeHandle to = dupToAidl(handle);
    EXPECT_FALSE(isAidlNativeHandleEmpty(to));
    checkEq(to, handle, true /*exceptFds*/);
    EXPECT_EQ(0, native_handle_close(handle));
    EXPECT_EQ(0, native_handle_delete(handle));