mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-02 10:05:19 +00:00
Add native handle validation to TV Input HAL AIDL VTS
Bug: 282862884 Test: VtsHalTvInputTargetTest Change-Id: I803b54e5b52a00ab845ef7ba4d5cec5bb8bd89ca
This commit is contained in:
@@ -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() ==
|
||||
|
||||
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user