Merge changes I0f86c823,I8c6760a7 into tm-dev
* changes: Add a test to verify a status callback registration Corrects CameraStreamBuffering test case
This commit is contained in:
commit
3263c71445
1 changed files with 30 additions and 3 deletions
|
@ -19,9 +19,11 @@
|
|||
|
||||
#include <aidl/Gtest.h>
|
||||
#include <aidl/Vintf.h>
|
||||
#include <aidl/android/hardware/automotive/evs/BnEvsEnumeratorStatusCallback.h>
|
||||
#include <aidl/android/hardware/automotive/evs/BufferDesc.h>
|
||||
#include <aidl/android/hardware/automotive/evs/CameraDesc.h>
|
||||
#include <aidl/android/hardware/automotive/evs/CameraParam.h>
|
||||
#include <aidl/android/hardware/automotive/evs/DeviceStatus.h>
|
||||
#include <aidl/android/hardware/automotive/evs/DisplayDesc.h>
|
||||
#include <aidl/android/hardware/automotive/evs/DisplayState.h>
|
||||
#include <aidl/android/hardware/automotive/evs/EvsEventDesc.h>
|
||||
|
@ -30,6 +32,7 @@
|
|||
#include <aidl/android/hardware/automotive/evs/IEvsCamera.h>
|
||||
#include <aidl/android/hardware/automotive/evs/IEvsDisplay.h>
|
||||
#include <aidl/android/hardware/automotive/evs/IEvsEnumerator.h>
|
||||
#include <aidl/android/hardware/automotive/evs/IEvsEnumeratorStatusCallback.h>
|
||||
#include <aidl/android/hardware/automotive/evs/IEvsUltrasonicsArray.h>
|
||||
#include <aidl/android/hardware/automotive/evs/ParameterRange.h>
|
||||
#include <aidl/android/hardware/automotive/evs/Stream.h>
|
||||
|
@ -77,11 +80,11 @@ typedef struct {
|
|||
} RawStreamConfig;
|
||||
constexpr size_t kStreamCfgSz = sizeof(RawStreamConfig) / sizeof(int32_t);
|
||||
|
||||
} // namespace
|
||||
|
||||
using ::aidl::android::hardware::automotive::evs::BnEvsEnumeratorStatusCallback;
|
||||
using ::aidl::android::hardware::automotive::evs::BufferDesc;
|
||||
using ::aidl::android::hardware::automotive::evs::CameraDesc;
|
||||
using ::aidl::android::hardware::automotive::evs::CameraParam;
|
||||
using ::aidl::android::hardware::automotive::evs::DeviceStatus;
|
||||
using ::aidl::android::hardware::automotive::evs::DisplayDesc;
|
||||
using ::aidl::android::hardware::automotive::evs::DisplayState;
|
||||
using ::aidl::android::hardware::automotive::evs::EvsEventDesc;
|
||||
|
@ -90,6 +93,7 @@ using ::aidl::android::hardware::automotive::evs::EvsResult;
|
|||
using ::aidl::android::hardware::automotive::evs::IEvsCamera;
|
||||
using ::aidl::android::hardware::automotive::evs::IEvsDisplay;
|
||||
using ::aidl::android::hardware::automotive::evs::IEvsEnumerator;
|
||||
using ::aidl::android::hardware::automotive::evs::IEvsEnumeratorStatusCallback;
|
||||
using ::aidl::android::hardware::automotive::evs::IEvsUltrasonicsArray;
|
||||
using ::aidl::android::hardware::automotive::evs::ParameterRange;
|
||||
using ::aidl::android::hardware::automotive::evs::Stream;
|
||||
|
@ -99,6 +103,8 @@ using ::aidl::android::hardware::graphics::common::HardwareBufferDescription;
|
|||
using ::aidl::android::hardware::graphics::common::PixelFormat;
|
||||
using std::chrono_literals::operator""s;
|
||||
|
||||
} // namespace
|
||||
|
||||
// The main test class for EVS
|
||||
class EvsAidlTest : public ::testing::TestWithParam<std::string> {
|
||||
public:
|
||||
|
@ -239,6 +245,13 @@ class EvsAidlTest : public ::testing::TestWithParam<std::string> {
|
|||
return targetCfg;
|
||||
}
|
||||
|
||||
class DeviceStatusCallback : public BnEvsEnumeratorStatusCallback {
|
||||
ndk::ScopedAStatus deviceStatusChanged(const std::vector<DeviceStatus>&) override {
|
||||
// This empty implementation returns always ok().
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
};
|
||||
|
||||
// Every test needs access to the service
|
||||
std::shared_ptr<IEvsEnumerator> mEnumerator;
|
||||
// Empty unless/util loadCameraList() is called
|
||||
|
@ -528,7 +541,7 @@ TEST_P(EvsAidlTest, CameraStreamBuffering) {
|
|||
// Ask for a very large number of buffers in flight to ensure it errors correctly
|
||||
auto badResult = pCam->setMaxFramesInFlight(std::numeric_limits<int32_t>::max());
|
||||
EXPECT_TRUE(!badResult.isOk() && badResult.getServiceSpecificError() ==
|
||||
static_cast<int>(EvsResult::INVALID_ARG));
|
||||
static_cast<int>(EvsResult::BUFFER_NOT_AVAILABLE));
|
||||
|
||||
// Now ask for exactly two buffers in flight as we'll test behavior in that case
|
||||
ASSERT_TRUE(pCam->setMaxFramesInFlight(kBuffersToHold).isOk());
|
||||
|
@ -2064,6 +2077,20 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) {
|
|||
}
|
||||
}
|
||||
|
||||
TEST_P(EvsAidlTest, DeviceStatusCallbackRegistration) {
|
||||
std::shared_ptr<IEvsEnumeratorStatusCallback> cb =
|
||||
ndk::SharedRefBase::make<DeviceStatusCallback>();
|
||||
ndk::ScopedAStatus status = mEnumerator->registerStatusCallback(cb);
|
||||
if (mIsHwModule) {
|
||||
ASSERT_TRUE(status.isOk());
|
||||
} else {
|
||||
// A callback registration may fail if a HIDL EVS HAL implementation is
|
||||
// running.
|
||||
ASSERT_TRUE(status.isOk() ||
|
||||
status.getServiceSpecificError() == static_cast<int>(EvsResult::NOT_SUPPORTED));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* UltrasonicsArrayOpenClean:
|
||||
* Opens each ultrasonics arrays reported by the enumerator and then explicitly closes it via a
|
||||
|
|
Loading…
Reference in a new issue