diff --git a/sensors/1.0/vts/functional/VtsHalSensorsV1_0TargetTest.cpp b/sensors/1.0/vts/functional/VtsHalSensorsV1_0TargetTest.cpp index 1f579ba61e..d46cf5a490 100644 --- a/sensors/1.0/vts/functional/VtsHalSensorsV1_0TargetTest.cpp +++ b/sensors/1.0/vts/functional/VtsHalSensorsV1_0TargetTest.cpp @@ -24,7 +24,9 @@ #include #include +#include #include +#include #include using ::android::hardware::Return; @@ -149,6 +151,7 @@ std::vector SensorsHidlTest::getSensorsList() { TEST_P(SensorsHidlTest, SensorListValid) { S()->getSensorsList([&](const auto& list) { const size_t count = list.size(); + std::unordered_map> sensorTypeNameMap; for (size_t i = 0; i < count; ++i) { const auto& s = list[i]; SCOPED_TRACE(::testing::Message() @@ -167,6 +170,14 @@ TEST_P(SensorsHidlTest, SensorListValid) { EXPECT_FALSE(s.name.empty()); EXPECT_FALSE(s.vendor.empty()); + // Make sure that sensors of the same type have a unique name. + std::vector& v = sensorTypeNameMap[static_cast(s.type)]; + bool isUniqueName = std::find(v.begin(), v.end(), s.name) == v.end(); + EXPECT_TRUE(isUniqueName) << "Duplicate sensor Name: " << s.name; + if (isUniqueName) { + v.push_back(s.name); + } + // Test power > 0, maxRange > 0 EXPECT_LE(0, s.power); EXPECT_LT(0, s.maxRange); diff --git a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h index 47a8cc0b4a..ea5dc70c5b 100644 --- a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h +++ b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h @@ -26,10 +26,12 @@ #include #include +#include #include #include #include #include +#include #include /** @@ -373,6 +375,7 @@ int32_t SensorsHidlTest::getInvalidSensorHandle() { TEST_P(SensorsHidlTest, SensorListValid) { getSensors()->getSensorsList([&](const auto& list) { const size_t count = list.size(); + std::unordered_map> sensorTypeNameMap; for (size_t i = 0; i < count; ++i) { const auto& s = list[i]; SCOPED_TRACE(::testing::Message() @@ -393,6 +396,14 @@ TEST_P(SensorsHidlTest, SensorListValid) { EXPECT_FALSE(s.name.empty()); EXPECT_FALSE(s.vendor.empty()); + // Make sure that sensors of the same type have a unique name. + std::vector& v = sensorTypeNameMap[static_cast(s.type)]; + bool isUniqueName = std::find(v.begin(), v.end(), s.name) == v.end(); + EXPECT_TRUE(isUniqueName) << "Duplicate sensor Name: " << s.name; + if (isUniqueName) { + v.push_back(s.name); + } + // Test power > 0, maxRange > 0 EXPECT_LE(0, s.power); EXPECT_LT(0, s.maxRange);