2727#include " test_mocks.h"
2828#include " test_utils.h"
2929
30+ using aidl::android::hardware::vibrator::IVibrationSession;
31+ using aidl::android::hardware::vibrator::VibrationSessionConfig;
3032using android::vibrator::HalController;
3133
3234using namespace android ;
3335using namespace testing ;
3436
3537static constexpr int MAX_ATTEMPTS = 2 ;
3638static const std::vector<int32_t > VIBRATOR_IDS = {1 , 2 };
39+ static const VibrationSessionConfig SESSION_CONFIG;
3740static constexpr int VIBRATOR_ID = 1 ;
3841
3942// -------------------------------------------------------------------------------------------------
@@ -52,6 +55,11 @@ class MockManagerHalWrapper : public vibrator::ManagerHalWrapper {
5255 MOCK_METHOD (vibrator::HalResult<void >, triggerSynced,
5356 (const std::function<void ()>& completionCallback), (override ));
5457 MOCK_METHOD (vibrator::HalResult<void >, cancelSynced, (), (override ));
58+ MOCK_METHOD (vibrator::HalResult<std::shared_ptr<IVibrationSession>>, startSession,
59+ (const std::vector<int32_t >& ids, const VibrationSessionConfig& s,
60+ const std::function<void ()>& completionCallback),
61+ (override ));
62+ MOCK_METHOD (vibrator::HalResult<void >, clearSessions, (), (override ));
5563};
5664
5765// -------------------------------------------------------------------------------------------------
@@ -79,7 +87,8 @@ class VibratorManagerHalControllerTest : public Test {
7987 void setHalExpectations (int32_t cardinality, vibrator::HalResult<void > voidResult,
8088 vibrator::HalResult<vibrator::ManagerCapabilities> capabilitiesResult,
8189 vibrator::HalResult<std::vector<int32_t >> idsResult,
82- vibrator::HalResult<std::shared_ptr<HalController>> vibratorResult) {
90+ vibrator::HalResult<std::shared_ptr<HalController>> vibratorResult,
91+ vibrator::HalResult<std::shared_ptr<IVibrationSession>> sessionResult) {
8392 EXPECT_CALL (*mMockHal .get (), ping ())
8493 .Times (Exactly (cardinality))
8594 .WillRepeatedly (Return (voidResult));
@@ -101,10 +110,16 @@ class VibratorManagerHalControllerTest : public Test {
101110 EXPECT_CALL (*mMockHal .get (), cancelSynced ())
102111 .Times (Exactly (cardinality))
103112 .WillRepeatedly (Return (voidResult));
113+ EXPECT_CALL (*mMockHal .get (), startSession (_, _, _))
114+ .Times (Exactly (cardinality))
115+ .WillRepeatedly (Return (sessionResult));
116+ EXPECT_CALL (*mMockHal .get (), clearSessions ())
117+ .Times (Exactly (cardinality))
118+ .WillRepeatedly (Return (voidResult));
104119
105120 if (cardinality > 1 ) {
106121 // One reconnection for each retry.
107- EXPECT_CALL (*mMockHal .get (), tryReconnect ()).Times (Exactly (7 * (cardinality - 1 )));
122+ EXPECT_CALL (*mMockHal .get (), tryReconnect ()).Times (Exactly (9 * (cardinality - 1 )));
108123 } else {
109124 EXPECT_CALL (*mMockHal .get (), tryReconnect ()).Times (Exactly (0 ));
110125 }
@@ -127,7 +142,8 @@ TEST_F(VibratorManagerHalControllerTest, TestApiCallsAreForwardedToHal) {
127142 vibrator::HalResult<vibrator::ManagerCapabilities>::ok (
128143 vibrator::ManagerCapabilities::SYNC),
129144 vibrator::HalResult<std::vector<int32_t >>::ok (VIBRATOR_IDS),
130- vibrator::HalResult<std::shared_ptr<HalController>>::ok (nullptr ));
145+ vibrator::HalResult<std::shared_ptr<HalController>>::ok (nullptr ),
146+ vibrator::HalResult<std::shared_ptr<IVibrationSession>>::ok (nullptr ));
131147
132148 ASSERT_TRUE (mController ->ping ().isOk ());
133149
@@ -146,6 +162,8 @@ TEST_F(VibratorManagerHalControllerTest, TestApiCallsAreForwardedToHal) {
146162 ASSERT_TRUE (mController ->prepareSynced (VIBRATOR_IDS).isOk ());
147163 ASSERT_TRUE (mController ->triggerSynced ([]() {}).isOk ());
148164 ASSERT_TRUE (mController ->cancelSynced ().isOk ());
165+ ASSERT_TRUE (mController ->startSession (VIBRATOR_IDS, SESSION_CONFIG, []() {}).isOk ());
166+ ASSERT_TRUE (mController ->clearSessions ().isOk ());
149167
150168 ASSERT_EQ (1 , mConnectCounter );
151169}
@@ -154,7 +172,8 @@ TEST_F(VibratorManagerHalControllerTest, TestUnsupportedApiResultDoesNotResetHal
154172 setHalExpectations (/* cardinality= */ 1 , vibrator::HalResult<void >::unsupported (),
155173 vibrator::HalResult<vibrator::ManagerCapabilities>::unsupported (),
156174 vibrator::HalResult<std::vector<int32_t >>::unsupported (),
157- vibrator::HalResult<std::shared_ptr<HalController>>::unsupported ());
175+ vibrator::HalResult<std::shared_ptr<HalController>>::unsupported (),
176+ vibrator::HalResult<std::shared_ptr<IVibrationSession>>::unsupported ());
158177
159178 ASSERT_TRUE (mController ->ping ().isUnsupported ());
160179 ASSERT_TRUE (mController ->getCapabilities ().isUnsupported ());
@@ -163,6 +182,8 @@ TEST_F(VibratorManagerHalControllerTest, TestUnsupportedApiResultDoesNotResetHal
163182 ASSERT_TRUE (mController ->prepareSynced (VIBRATOR_IDS).isUnsupported ());
164183 ASSERT_TRUE (mController ->triggerSynced ([]() {}).isUnsupported ());
165184 ASSERT_TRUE (mController ->cancelSynced ().isUnsupported ());
185+ ASSERT_TRUE (mController ->startSession (VIBRATOR_IDS, SESSION_CONFIG, []() {}).isUnsupported ());
186+ ASSERT_TRUE (mController ->clearSessions ().isUnsupported ());
166187
167188 ASSERT_EQ (1 , mConnectCounter );
168189}
@@ -171,7 +192,8 @@ TEST_F(VibratorManagerHalControllerTest, TestOperationFailedApiResultDoesNotRese
171192 setHalExpectations (/* cardinality= */ 1 , vibrator::HalResult<void >::failed (" msg" ),
172193 vibrator::HalResult<vibrator::ManagerCapabilities>::failed (" msg" ),
173194 vibrator::HalResult<std::vector<int32_t >>::failed (" msg" ),
174- vibrator::HalResult<std::shared_ptr<HalController>>::failed (" msg" ));
195+ vibrator::HalResult<std::shared_ptr<HalController>>::failed (" msg" ),
196+ vibrator::HalResult<std::shared_ptr<IVibrationSession>>::failed (" msg" ));
175197
176198 ASSERT_TRUE (mController ->ping ().isFailed ());
177199 ASSERT_TRUE (mController ->getCapabilities ().isFailed ());
@@ -180,6 +202,8 @@ TEST_F(VibratorManagerHalControllerTest, TestOperationFailedApiResultDoesNotRese
180202 ASSERT_TRUE (mController ->prepareSynced (VIBRATOR_IDS).isFailed ());
181203 ASSERT_TRUE (mController ->triggerSynced ([]() {}).isFailed ());
182204 ASSERT_TRUE (mController ->cancelSynced ().isFailed ());
205+ ASSERT_TRUE (mController ->startSession (VIBRATOR_IDS, SESSION_CONFIG, []() {}).isFailed ());
206+ ASSERT_TRUE (mController ->clearSessions ().isFailed ());
183207
184208 ASSERT_EQ (1 , mConnectCounter );
185209}
@@ -188,7 +212,9 @@ TEST_F(VibratorManagerHalControllerTest, TestTransactionFailedApiResultResetsHal
188212 setHalExpectations (MAX_ATTEMPTS, vibrator::HalResult<void >::transactionFailed (" m" ),
189213 vibrator::HalResult<vibrator::ManagerCapabilities>::transactionFailed (" m" ),
190214 vibrator::HalResult<std::vector<int32_t >>::transactionFailed (" m" ),
191- vibrator::HalResult<std::shared_ptr<HalController>>::transactionFailed (" m" ));
215+ vibrator::HalResult<std::shared_ptr<HalController>>::transactionFailed (" m" ),
216+ vibrator::HalResult<std::shared_ptr<IVibrationSession>>::transactionFailed (
217+ " m" ));
192218
193219 ASSERT_TRUE (mController ->ping ().isFailed ());
194220 ASSERT_TRUE (mController ->getCapabilities ().isFailed ());
@@ -197,6 +223,8 @@ TEST_F(VibratorManagerHalControllerTest, TestTransactionFailedApiResultResetsHal
197223 ASSERT_TRUE (mController ->prepareSynced (VIBRATOR_IDS).isFailed ());
198224 ASSERT_TRUE (mController ->triggerSynced ([]() {}).isFailed ());
199225 ASSERT_TRUE (mController ->cancelSynced ().isFailed ());
226+ ASSERT_TRUE (mController ->startSession (VIBRATOR_IDS, SESSION_CONFIG, []() {}).isFailed ());
227+ ASSERT_TRUE (mController ->clearSessions ().isFailed ());
200228
201229 ASSERT_EQ (1 , mConnectCounter );
202230}
0 commit comments