Skip test if the device is not a handheld device

Bug: 302018405
Test: atest Thermal/ThermalAidlTest#SkinTemperatureThresholdsTest/0_android_hardware_thermal_IThermal_default
Change-Id: I74415621848412a9bfc4d3ae8cfc20f611d7ab8c
diff --git a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
index 4208d09..d36d986 100644
--- a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
+++ b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
@@ -25,6 +25,7 @@
 
 #define LOG_TAG "thermal_aidl_hal_test"
 
+#include <VtsCoreUtil.h>
 #include <aidl/Gtest.h>
 #include <aidl/Vintf.h>
 #include <aidl/android/hardware/thermal/BnCoolingDeviceChangedCallback.h>
@@ -70,6 +71,16 @@
         .timeWindowMs = 7000,
 };
 
+static const std::string FEATURE_WATCH = "android.hardware.type.watch";
+static const std::string FEATURE_TELEVISION = "android.hardware.type.television";
+static const std::string FEATURE_LEANBACK = "android.software.leanback";
+static const std::string FEATURE_AUTOMOTIVE = "android.hardware.type.automotive";
+static const std::string FEATURE_PC = "android.hardware.type.pc";
+static const std::string FEATURE_EMBEDDED = "android.hardware.type.embedded";
+static const std::string kNonHandheldFeatures[] = {FEATURE_AUTOMOTIVE, FEATURE_LEANBACK,
+                                                   FEATURE_PC,         FEATURE_TELEVISION,
+                                                   FEATURE_WATCH,      FEATURE_EMBEDDED};
+
 // Callback class for receiving thermal event notifications from main class
 class ThermalCallback : public BnThermalChangedCallback {
   public:
@@ -344,6 +355,11 @@
     if (apiLevel < 35) {
         GTEST_SKIP() << "Skipping test as the vendor level is below 35: " << apiLevel;
     }
+    for (const auto& feature : kNonHandheldFeatures) {
+        if (::testing::deviceSupportsFeature(feature.c_str())) {
+            GTEST_SKIP() << "Skipping test as the device has feature: " << feature;
+        }
+    }
     std::vector<Temperature> temperatures;
     ::ndk::ScopedAStatus status =
             mThermal->getTemperaturesWithType(TemperatureType::SKIN, &temperatures);