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

Commit 5ee1e4f0 authored by Yixiao Luo's avatar Yixiao Luo Committed by Automerger Merge Worker
Browse files

Add native handle validation to TV Input HAL AIDL VTS am: d6976527

parents 5314ce4c d6976527
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -134,6 +134,19 @@ int32_t TvInputAidlTest::getNumNotIn(vector<int32_t>& nums) {
    return result;
}

bool TvInputAidlTest::isValidHandle(NativeHandle& handle) {
    if (handle.fds.empty()) {
        return false;
    }
    for (size_t i = 0; i < handle.fds.size(); i++) {
        int fd = handle.fds[i].get();
        if (fcntl(fd, F_GETFL) < 0) {
            return false;
        }
    }
    return true;
}

/*
 * GetStreamConfigTest:
 * Calls updateStreamConfigurations() for each existing device
@@ -168,6 +181,8 @@ TEST_P(TvInputAidlTest, OpenAndCloseStreamTest) {
            ALOGD("OpenAndCloseStreamTest: open stream, device_id=%d, stream_id=%d", device_id,
                  stream_id);
            ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk());
            ASSERT_TRUE(isValidHandle(handle));

            ALOGD("OpenAndCloseStreamTest: close stream, device_id=%d, stream_id=%d", device_id,
                  stream_id);
            ASSERT_TRUE(tv_input_->closeStream(device_id, stream_id).isOk());
@@ -268,6 +283,7 @@ TEST_P(TvInputAidlTest, OpenAnOpenedStreamsTest) {

    ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id);
    ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk());
    ASSERT_TRUE(isValidHandle(handle));

    ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id);
    ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).getServiceSpecificError() ==
+4 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#pragma once

#include <android/binder_manager.h>
#include <fcntl.h>

#include <aidl/Gtest.h>
#include <aidl/Vintf.h>
@@ -84,6 +85,9 @@ class TvInputAidlTest : public testing::TestWithParam<string> {
     */
    int32_t getNumNotIn(vector<int32_t>& nums);

    /* Checks if a native handle contains valid file descriptor(s). */
    bool isValidHandle(NativeHandle& handle);

  protected:
    shared_ptr<ITvInput> tv_input_;
    shared_ptr<TvInputCallback> tv_input_callback_;