diff options
author | Changyeon Jo <changyeon@google.com> | 2022-05-11 00:01:31 -0700 |
---|---|---|
committer | Changyeon Jo <changyeon@google.com> | 2022-05-11 00:01:31 -0700 |
commit | dbcf52c2b152e8422de909fa5dea83a599f5d13e (patch) | |
tree | 9957eaab9be82f569e1faa55a08bc36292eb0b25 | |
parent | b440b234cadb7b450670590b3348d6936d663605 (diff) |
Add a test to verify a status callback registration
Bug: 195672428
Test: atest VtsHalEvsTargetTest
Change-Id: I0f86c82379bbfa249f159cac0bd0564711394caa
-rw-r--r-- | automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp index d963253abd..9c6c573174 100644 --- a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +++ b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp @@ -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 @@ -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 |