[RESTRICT AUTOMERGE] HapticGenerator VTS: validate parameter before setting

the newer version of HapticGenerator have range defined

Bug: 368467232
Test: atest VtsHalHapticGeneratorTargetTest
Change-Id: I1e366caf7d3944bc371d3b646733ed873aa111c8
Merged-In: I9da0f6f2573722089efadb78ff96fc265bdad164
diff --git a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
index 6af326d..2b6dc3d 100644
--- a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
@@ -121,17 +121,23 @@
             Parameter::Specific specific;
             specific.set<Parameter::Specific::hapticGenerator>(setHg);
             expectParam.set<Parameter::specific>(specific);
-            EXPECT_STATUS(EX_NONE, mEffect->setParameter(expectParam)) << expectParam.toString();
 
-            // get parameter
-            Parameter getParam;
-            Parameter::Id id;
-            HapticGenerator::Id hgId;
-            hgId.set<HapticGenerator::Id::commonTag>(tag);
-            id.set<Parameter::Id::hapticGeneratorTag>(hgId);
-            EXPECT_STATUS(EX_NONE, mEffect->getParameter(id, &getParam));
-            EXPECT_EQ(expectParam, getParam) << expectParam.toString() << "\n"
-                                             << getParam.toString();
+            const bool valid =
+                    isParameterValid<HapticGenerator, Range::hapticGenerator>(setHg, mDescriptor);
+            const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT;
+            EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString();
+
+            // only get if parameter in range and set success
+            if (expected == EX_NONE) {
+                Parameter getParam;
+                Parameter::Id id;
+                HapticGenerator::Id hgId;
+                hgId.set<HapticGenerator::Id::commonTag>(tag);
+                id.set<Parameter::Id::hapticGeneratorTag>(hgId);
+                EXPECT_STATUS(EX_NONE, mEffect->getParameter(id, &getParam));
+                EXPECT_EQ(expectParam, getParam) << expectParam.toString() << "\n"
+                                                 << getParam.toString();
+            }
         }
     }