Loading automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +34 −32 Original line number Diff line number Diff line Loading @@ -430,8 +430,8 @@ TEST_P(EvsAidlTest, CameraStreamPerformance) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -529,8 +529,8 @@ TEST_P(EvsAidlTest, CameraStreamBuffering) { ASSERT_TRUE(pCam->setMaxFramesInFlight(kBuffersToHold).isOk()); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eNoAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eNoAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -619,8 +619,8 @@ TEST_P(EvsAidlTest, CameraToDisplayRoundTrip) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, pDisplay, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, pDisplay, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Activate the display Loading Loading @@ -697,10 +697,10 @@ TEST_P(EvsAidlTest, MultiCameraStream) { mActiveCameras.push_back(pCam1); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -803,8 +803,8 @@ TEST_P(EvsAidlTest, CameraParameter) { } // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -903,10 +903,11 @@ TEST_P(EvsAidlTest, CameraPrimaryClientRelease) { mActiveCameras.push_back(pSecondaryCam); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandlerPrimary = std::make_shared<FrameHandler>( std::shared_ptr<FrameHandler> frameHandlerPrimary = ndk::SharedRefBase::make<FrameHandler>( pPrimaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = std::make_shared<FrameHandler>( pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = ndk::SharedRefBase::make<FrameHandler>(pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandlerPrimary, nullptr); EXPECT_NE(frameHandlerSecondary, nullptr); Loading Loading @@ -1075,10 +1076,11 @@ TEST_P(EvsAidlTest, MultiCameraParameter) { } // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandlerPrimary = std::make_shared<FrameHandler>( std::shared_ptr<FrameHandler> frameHandlerPrimary = ndk::SharedRefBase::make<FrameHandler>( pPrimaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = std::make_shared<FrameHandler>( pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = ndk::SharedRefBase::make<FrameHandler>(pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandlerPrimary, nullptr); EXPECT_NE(frameHandlerSecondary, nullptr); Loading Loading @@ -1418,10 +1420,10 @@ TEST_P(EvsAidlTest, HighPriorityCameraClient) { } // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -1733,8 +1735,8 @@ TEST_P(EvsAidlTest, CameraUseStreamConfigToDisplay) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, pDisplay, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, pDisplay, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Activate the display Loading Loading @@ -1843,10 +1845,10 @@ TEST_P(EvsAidlTest, MultiCameraStreamUseConfig) { EXPECT_NE(pCam1, nullptr); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -2008,8 +2010,8 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { EXPECT_GE(delta, kBuffersToHold); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eNoAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eNoAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -2101,7 +2103,7 @@ TEST_P(EvsAidlTest, UltrasonicsVerifyStreamData) { EXPECT_NE(pUltrasonicsArray, nullptr); std::shared_ptr<FrameHandlerUltrasonics> frameHandler = std::make_shared<FrameHandlerUltrasonics>(pUltrasonicsArray); ndk::SharedRefBase::make<FrameHandlerUltrasonics>(pUltrasonicsArray); EXPECT_NE(frameHandler, nullptr); // Start stream. Loading Loading @@ -2141,7 +2143,7 @@ TEST_P(EvsAidlTest, UltrasonicsSetFramesInFlight) { ASSERT_TRUE(pUltrasonicsArray->setMaxFramesInFlight(10).isOk()); std::shared_ptr<FrameHandlerUltrasonics> frameHandler = std::make_shared<FrameHandlerUltrasonics>(pUltrasonicsArray); ndk::SharedRefBase::make<FrameHandlerUltrasonics>(pUltrasonicsArray); EXPECT_NE(frameHandler, nullptr); // Start stream. Loading automotive/vehicle/aidl/impl/default_config/include/DefaultConfig.h +8 −0 Original line number Diff line number Diff line Loading @@ -1124,6 +1124,14 @@ const std::vector<ConfigDeclaration> kVehicleProperties = { }, .initialValue = {.stringValue = {"Test"}}, }, { .config = { .prop = ECHO_REVERSE_BYTES, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, }, }, #ifdef ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING // Vendor propetry for E2E ClusterHomeService testing. { Loading automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ class FakeVehicleHardware : public IVehicleHardware { const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value); ValueResultType getUserHalProp( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const; ValueResultType getEchoReverseBytes( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const; bool isHvacPropAndHvacNotAvailable(int32_t propId); std::string dumpAllProperties(); Loading automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <FakeObd2Frame.h> #include <JsonFakeValueGenerator.h> #include <PropertyUtils.h> #include <TestPropertyUtils.h> #include <VehicleHalTypes.h> #include <VehicleUtils.h> #include <android-base/parsedouble.h> Loading Loading @@ -335,6 +336,9 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( result.value()->timestamp = elapsedRealtimeNano(); } return result; case ECHO_REVERSE_BYTES: *isSpecialValue = true; return getEchoReverseBytes(value); default: // Do nothing. break; Loading @@ -343,6 +347,22 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( return nullptr; } FakeVehicleHardware::ValueResultType FakeVehicleHardware::getEchoReverseBytes( const VehiclePropValue& value) const { auto readResult = mServerSidePropStore->readValue(value); if (!readResult.ok()) { return readResult; } auto& gotValue = readResult.value(); gotValue->timestamp = elapsedRealtimeNano(); std::vector<uint8_t> byteValues = gotValue->value.byteValues; size_t byteSize = byteValues.size(); for (size_t i = 0; i < byteSize; i++) { gotValue->value.byteValues[i] = byteValues[byteSize - 1 - i]; } return std::move(gotValue); } VhalResult<void> FakeVehicleHardware::maybeSetSpecialValue(const VehiclePropValue& value, bool* isSpecialValue) { *isSpecialValue = false; Loading automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -276,6 +276,11 @@ TEST_F(FakeVehicleHardwareTest, testGetDefaultValues) { continue; } if (config.config.prop == ECHO_REVERSE_BYTES) { // Ignore ECHO_REVERSE_BYTES, it has special logic. continue; } int propId = config.config.prop; if (isGlobalProp(propId)) { if (config.initialValue == RawPropValues{}) { Loading Loading @@ -1487,6 +1492,24 @@ TEST_F(FakeVehicleHardwareTest, SetComplexPropTest) { ASSERT_EQ(3.402823466E+38f, value.value.floatValues[2]); } TEST_F(FakeVehicleHardwareTest, testGetEchoReverseBytes) { ASSERT_EQ(setValue(VehiclePropValue{ .prop = ECHO_REVERSE_BYTES, .value = { .byteValues = {0x01, 0x02, 0x03, 0x04}, }, }), StatusCode::OK); auto result = getValue(VehiclePropValue{ .prop = ECHO_REVERSE_BYTES, }); ASSERT_TRUE(result.ok()) << "failed to get ECHO_REVERSE_BYTES value: " << getStatus(result); ASSERT_EQ(result.value().value.byteValues, std::vector<uint8_t>({0x04, 0x03, 0x02, 0x01})); } } // namespace fake } // namespace vehicle } // namespace automotive Loading Loading
automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +34 −32 Original line number Diff line number Diff line Loading @@ -430,8 +430,8 @@ TEST_P(EvsAidlTest, CameraStreamPerformance) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -529,8 +529,8 @@ TEST_P(EvsAidlTest, CameraStreamBuffering) { ASSERT_TRUE(pCam->setMaxFramesInFlight(kBuffersToHold).isOk()); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eNoAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eNoAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -619,8 +619,8 @@ TEST_P(EvsAidlTest, CameraToDisplayRoundTrip) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, pDisplay, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, pDisplay, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Activate the display Loading Loading @@ -697,10 +697,10 @@ TEST_P(EvsAidlTest, MultiCameraStream) { mActiveCameras.push_back(pCam1); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -803,8 +803,8 @@ TEST_P(EvsAidlTest, CameraParameter) { } // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -903,10 +903,11 @@ TEST_P(EvsAidlTest, CameraPrimaryClientRelease) { mActiveCameras.push_back(pSecondaryCam); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandlerPrimary = std::make_shared<FrameHandler>( std::shared_ptr<FrameHandler> frameHandlerPrimary = ndk::SharedRefBase::make<FrameHandler>( pPrimaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = std::make_shared<FrameHandler>( pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = ndk::SharedRefBase::make<FrameHandler>(pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandlerPrimary, nullptr); EXPECT_NE(frameHandlerSecondary, nullptr); Loading Loading @@ -1075,10 +1076,11 @@ TEST_P(EvsAidlTest, MultiCameraParameter) { } // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandlerPrimary = std::make_shared<FrameHandler>( std::shared_ptr<FrameHandler> frameHandlerPrimary = ndk::SharedRefBase::make<FrameHandler>( pPrimaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = std::make_shared<FrameHandler>( pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandlerSecondary = ndk::SharedRefBase::make<FrameHandler>(pSecondaryCam, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandlerPrimary, nullptr); EXPECT_NE(frameHandlerSecondary, nullptr); Loading Loading @@ -1418,10 +1420,10 @@ TEST_P(EvsAidlTest, HighPriorityCameraClient) { } // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -1733,8 +1735,8 @@ TEST_P(EvsAidlTest, CameraUseStreamConfigToDisplay) { mActiveCameras.push_back(pCam); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, pDisplay, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, pDisplay, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler, nullptr); // Activate the display Loading Loading @@ -1843,10 +1845,10 @@ TEST_P(EvsAidlTest, MultiCameraStreamUseConfig) { EXPECT_NE(pCam1, nullptr); // Set up per-client frame receiver objects which will fire up its own thread std::shared_ptr<FrameHandler> frameHandler0 = std::make_shared<FrameHandler>(pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = std::make_shared<FrameHandler>(pCam1, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler0 = ndk::SharedRefBase::make<FrameHandler>( pCam0, cam, nullptr, FrameHandler::eAutoReturn); std::shared_ptr<FrameHandler> frameHandler1 = ndk::SharedRefBase::make<FrameHandler>( pCam1, cam, nullptr, FrameHandler::eAutoReturn); EXPECT_NE(frameHandler0, nullptr); EXPECT_NE(frameHandler1, nullptr); Loading Loading @@ -2008,8 +2010,8 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { EXPECT_GE(delta, kBuffersToHold); // Set up a frame receiver object which will fire up its own thread. std::shared_ptr<FrameHandler> frameHandler = std::make_shared<FrameHandler>(pCam, cam, nullptr, FrameHandler::eNoAutoReturn); std::shared_ptr<FrameHandler> frameHandler = ndk::SharedRefBase::make<FrameHandler>( pCam, cam, nullptr, FrameHandler::eNoAutoReturn); EXPECT_NE(frameHandler, nullptr); // Start the camera's video stream Loading Loading @@ -2101,7 +2103,7 @@ TEST_P(EvsAidlTest, UltrasonicsVerifyStreamData) { EXPECT_NE(pUltrasonicsArray, nullptr); std::shared_ptr<FrameHandlerUltrasonics> frameHandler = std::make_shared<FrameHandlerUltrasonics>(pUltrasonicsArray); ndk::SharedRefBase::make<FrameHandlerUltrasonics>(pUltrasonicsArray); EXPECT_NE(frameHandler, nullptr); // Start stream. Loading Loading @@ -2141,7 +2143,7 @@ TEST_P(EvsAidlTest, UltrasonicsSetFramesInFlight) { ASSERT_TRUE(pUltrasonicsArray->setMaxFramesInFlight(10).isOk()); std::shared_ptr<FrameHandlerUltrasonics> frameHandler = std::make_shared<FrameHandlerUltrasonics>(pUltrasonicsArray); ndk::SharedRefBase::make<FrameHandlerUltrasonics>(pUltrasonicsArray); EXPECT_NE(frameHandler, nullptr); // Start stream. Loading
automotive/vehicle/aidl/impl/default_config/include/DefaultConfig.h +8 −0 Original line number Diff line number Diff line Loading @@ -1124,6 +1124,14 @@ const std::vector<ConfigDeclaration> kVehicleProperties = { }, .initialValue = {.stringValue = {"Test"}}, }, { .config = { .prop = ECHO_REVERSE_BYTES, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, }, }, #ifdef ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING // Vendor propetry for E2E ClusterHomeService testing. { Loading
automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ class FakeVehicleHardware : public IVehicleHardware { const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value); ValueResultType getUserHalProp( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const; ValueResultType getEchoReverseBytes( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const; bool isHvacPropAndHvacNotAvailable(int32_t propId); std::string dumpAllProperties(); Loading
automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <FakeObd2Frame.h> #include <JsonFakeValueGenerator.h> #include <PropertyUtils.h> #include <TestPropertyUtils.h> #include <VehicleHalTypes.h> #include <VehicleUtils.h> #include <android-base/parsedouble.h> Loading Loading @@ -335,6 +336,9 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( result.value()->timestamp = elapsedRealtimeNano(); } return result; case ECHO_REVERSE_BYTES: *isSpecialValue = true; return getEchoReverseBytes(value); default: // Do nothing. break; Loading @@ -343,6 +347,22 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( return nullptr; } FakeVehicleHardware::ValueResultType FakeVehicleHardware::getEchoReverseBytes( const VehiclePropValue& value) const { auto readResult = mServerSidePropStore->readValue(value); if (!readResult.ok()) { return readResult; } auto& gotValue = readResult.value(); gotValue->timestamp = elapsedRealtimeNano(); std::vector<uint8_t> byteValues = gotValue->value.byteValues; size_t byteSize = byteValues.size(); for (size_t i = 0; i < byteSize; i++) { gotValue->value.byteValues[i] = byteValues[byteSize - 1 - i]; } return std::move(gotValue); } VhalResult<void> FakeVehicleHardware::maybeSetSpecialValue(const VehiclePropValue& value, bool* isSpecialValue) { *isSpecialValue = false; Loading
automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -276,6 +276,11 @@ TEST_F(FakeVehicleHardwareTest, testGetDefaultValues) { continue; } if (config.config.prop == ECHO_REVERSE_BYTES) { // Ignore ECHO_REVERSE_BYTES, it has special logic. continue; } int propId = config.config.prop; if (isGlobalProp(propId)) { if (config.initialValue == RawPropValues{}) { Loading Loading @@ -1487,6 +1492,24 @@ TEST_F(FakeVehicleHardwareTest, SetComplexPropTest) { ASSERT_EQ(3.402823466E+38f, value.value.floatValues[2]); } TEST_F(FakeVehicleHardwareTest, testGetEchoReverseBytes) { ASSERT_EQ(setValue(VehiclePropValue{ .prop = ECHO_REVERSE_BYTES, .value = { .byteValues = {0x01, 0x02, 0x03, 0x04}, }, }), StatusCode::OK); auto result = getValue(VehiclePropValue{ .prop = ECHO_REVERSE_BYTES, }); ASSERT_TRUE(result.ok()) << "failed to get ECHO_REVERSE_BYTES value: " << getStatus(result); ASSERT_EQ(result.value().value.byteValues, std::vector<uint8_t>({0x04, 0x03, 0x02, 0x01})); } } // namespace fake } // namespace vehicle } // namespace automotive Loading