From c31293b13a568856be00d136de05e2e2b03cfb2b Mon Sep 17 00:00:00 2001 From: Tyler Trephan Date: Mon, 28 Sep 2020 22:03:18 -0700 Subject: [PATCH] Skip GnssMeasurement VTS for Android Automotive OS. According to the Q CDD, an Android Automotive OS device is not required to support GnssMeasurements. Bug: 161549048 Test: atest VtsHalGnssV1_0TargetTest VtsHalGnssV2_0TargetTest VtsHalGnssV2_1TargetTest Change-Id: Idcd59f36ca2ea28925f6766a7abcdf7b6ad0f0ff --- gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp | 12 ++++++++---- gnss/2.0/vts/functional/gnss_hal_test_cases.cpp | 9 +++++++++ gnss/2.1/vts/functional/gnss_hal_test_cases.cpp | 9 +++++++++ gnss/common/utils/vts/Utils.cpp | 8 ++++++++ gnss/common/utils/vts/include/Utils.h | 2 ++ 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp index c04b4d0df2..048c3347e7 100644 --- a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp +++ b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp @@ -39,6 +39,10 @@ using android::hardware::gnss::V1_0::IGnssDebug; using android::hardware::gnss::V1_0::IGnssMeasurement; using android::sp; +/* + * Since Utils.cpp depends on Gnss Hal 2.0, the tests for Gnss Hal 1.0 will use + * there own version of IsAutomotiveDevice() instead of the common version. + */ static bool IsAutomotiveDevice() { char buffer[PROPERTY_VALUE_MAX] = {0}; property_get("ro.hardware.type", buffer, ""); @@ -492,9 +496,9 @@ TEST_P(GnssHalTest, GetAllExtensions) { * Verifies that modern hardware supports measurement capabilities. */ TEST_P(GnssHalTest, MeasurementCapabilites) { - if (info_called_count_ > 0 && last_info_.yearOfHw >= 2016) { - EXPECT_TRUE(last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENTS); - } + if (!IsAutomotiveDevice() && info_called_count_ > 0 && last_info_.yearOfHw >= 2016) { + EXPECT_TRUE(last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENTS); + } } /* @@ -528,4 +532,4 @@ int main(int argc, char** argv) { } return RUN_ALL_TESTS(); -} \ No newline at end of file +} diff --git a/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp b/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp index 51dcf0d059..3e0058fa05 100644 --- a/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp +++ b/gnss/2.0/vts/functional/gnss_hal_test_cases.cpp @@ -62,6 +62,15 @@ TEST_P(GnssHalTest, TestGnssMeasurementExtension) { auto gnssMeasurement_1_0 = gnss_hal_->getExtensionGnssMeasurement(); ASSERT_TRUE(gnssMeasurement_2_0.isOk() && gnssMeasurement_1_1.isOk() && gnssMeasurement_1_0.isOk()); + + // CDD does not require Android Automotive OS devices to support + // GnssMeasurements. + if (Utils::isAutomotiveDevice()) { + ALOGI("Test GnssMeasurementExtension skipped. Android Automotive OS deice is not required " + "to support GNSS measurements."); + return; + } + sp iGnssMeas_2_0 = gnssMeasurement_2_0; sp iGnssMeas_1_1 = gnssMeasurement_1_1; sp iGnssMeas_1_0 = gnssMeasurement_1_0; diff --git a/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp b/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp index 16e634f2b0..290280922c 100644 --- a/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp +++ b/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp @@ -63,6 +63,15 @@ TEST_P(GnssHalTest, TestGnssMeasurementExtension) { auto gnssMeasurement_1_0 = gnss_hal_->getExtensionGnssMeasurement(); ASSERT_TRUE(gnssMeasurement_2_1.isOk() && gnssMeasurement_2_0.isOk() && gnssMeasurement_1_1.isOk() && gnssMeasurement_1_0.isOk()); + + // CDD does not require Android Automotive OS devices to support + // GnssMeasurements. + if (Utils::isAutomotiveDevice()) { + ALOGI("Test GnssMeasurementExtension skipped. Android Automotive OS de ice is not " + "required to support GNSS measurements."); + return; + } + sp iGnssMeas_2_1 = gnssMeasurement_2_1; sp iGnssMeas_2_0 = gnssMeasurement_2_0; sp iGnssMeas_1_1 = gnssMeasurement_1_1; diff --git a/gnss/common/utils/vts/Utils.cpp b/gnss/common/utils/vts/Utils.cpp index 9bf68e609f..9c84e806f8 100644 --- a/gnss/common/utils/vts/Utils.cpp +++ b/gnss/common/utils/vts/Utils.cpp @@ -17,6 +17,8 @@ #include #include "gtest/gtest.h" +#include + namespace android { namespace hardware { namespace gnss { @@ -194,6 +196,12 @@ GnssConstellationType_1_0 Utils::mapConstellationType(GnssConstellationType_2_0 } } +bool Utils::isAutomotiveDevice() { + char buffer[PROPERTY_VALUE_MAX] = {0}; + property_get("ro.hardware.type", buffer, ""); + return strncmp(buffer, "automotive", PROPERTY_VALUE_MAX) == 0; +} + } // namespace common } // namespace gnss } // namespace hardware diff --git a/gnss/common/utils/vts/include/Utils.h b/gnss/common/utils/vts/include/Utils.h index 9c838b290a..a4aad80f69 100644 --- a/gnss/common/utils/vts/include/Utils.h +++ b/gnss/common/utils/vts/include/Utils.h @@ -49,6 +49,8 @@ struct Utils { static const MeasurementCorrections_1_1 getMockMeasurementCorrections_1_1(); static GnssConstellationType_1_0 mapConstellationType(GnssConstellationType_2_0 constellation); + + static bool isAutomotiveDevice(); }; } // namespace common