Fix vibrator VTS failure on older HAL versions

Fix tests to expect STATUS_UNKNOWN_TRANSACTION as well as
EX_UNSUPPORTED_OPERATION when the vibrator does not have a capability
required for the method being tested.

Older versions of the HAL will return that status code instead of
unsupported, as explained at:
https://source.android.com/devices/architecture/aidl/stable-aidl#versioning-interfaces

Fix: 190526054
Test: VtsHalVibratorTargetTest & VtsHalVibratorManagerTargetTest
Change-Id: I538843fbbdbf8353cd57f1c83392baeabdcbadd2
diff --git a/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp b/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp
index 9789188..44fa3be 100644
--- a/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp
+++ b/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp
@@ -71,6 +71,11 @@
     std::vector<int32_t> vibratorIds;
 };
 
+inline bool isUnknownOrUnsupported(Status status) {
+    return status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+           status.transactionError() == android::UNKNOWN_TRANSACTION;
+}
+
 TEST_P(VibratorAidl, ValidateExistingVibrators) {
     sp<IVibrator> vibrator;
     for (auto& id : vibratorIds) {
@@ -101,8 +106,8 @@
 
 TEST_P(VibratorAidl, PrepareSyncedNotSupported) {
     if (!(capabilities & IVibratorManager::CAP_SYNC)) {
-        EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
-                  manager->prepareSynced(vibratorIds).exceptionCode());
+        Status status = manager->prepareSynced(vibratorIds);
+        EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
     }
 }
 
@@ -116,8 +121,8 @@
         for (auto& id : vibratorIds) {
             EXPECT_TRUE(manager->getVibrator(id, &vibrator).isOk());
             ASSERT_NE(vibrator, nullptr);
-            EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
-                      vibrator->on(durationMs, nullptr).exceptionCode());
+            Status status = vibrator->on(durationMs, nullptr);
+            EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
         }
         EXPECT_TRUE(manager->cancelSynced().isOk());
     }
@@ -134,7 +139,7 @@
             ASSERT_NE(vibrator, nullptr);
             int32_t lengthMs = 0;
             Status status = vibrator->perform(kEffects[0], kEffectStrengths[0], nullptr, &lengthMs);
-            EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode());
+            EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
         }
         EXPECT_TRUE(manager->cancelSynced().isOk());
     }
@@ -157,7 +162,7 @@
             EXPECT_TRUE(manager->getVibrator(id, &vibrator).isOk());
             ASSERT_NE(vibrator, nullptr);
             Status status = vibrator->compose(composite, nullptr);
-            EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode());
+            EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
         }
         EXPECT_TRUE(manager->cancelSynced().isOk());
     }
@@ -191,8 +196,8 @@
 
 TEST_P(VibratorAidl, TriggerSyncNotSupported) {
     if (!(capabilities & IVibratorManager::CAP_SYNC)) {
-        EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
-                  manager->triggerSynced(nullptr).exceptionCode());
+        Status status = manager->triggerSynced(nullptr);
+        EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
     }
 }
 
@@ -201,8 +206,8 @@
     if (!(capabilities & IVibratorManager::CAP_TRIGGER_CALLBACK)) {
         sp<CompletionCallback> callback = new CompletionCallback([] {});
         EXPECT_TRUE(manager->prepareSynced(vibratorIds).isOk());
-        EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
-                  manager->triggerSynced(callback).exceptionCode());
+        Status status = manager->triggerSynced(callback);
+        EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
     }
 }