From e4923de337b515ff8c08ceebb829d8b7f7ffe123 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 21 Sep 2021 16:21:54 -0700 Subject: [PATCH] Add HidlAidlCompatibilityTest. Add test to verify all properties defined in HIDL VHAL are also defined in AIDL. Test: atest VehicleHalAidlHidlCompatibilityTest Bug: b/170400618 Change-Id: I5c9e26f5eb149477c18a6b22ca8a39d8642249df --- .../{aidl/impl/utils => }/TEST_MAPPING | 3 ++ .../aidl_test/AidlHidlCompatibilityTest.cpp | 40 +++++++++++++++++++ automotive/vehicle/aidl/aidl_test/Android.bp | 37 +++++++++++++++++ 3 files changed, 80 insertions(+) rename automotive/vehicle/{aidl/impl/utils => }/TEST_MAPPING (55%) create mode 100644 automotive/vehicle/aidl/aidl_test/AidlHidlCompatibilityTest.cpp create mode 100644 automotive/vehicle/aidl/aidl_test/Android.bp diff --git a/automotive/vehicle/aidl/impl/utils/TEST_MAPPING b/automotive/vehicle/TEST_MAPPING similarity index 55% rename from automotive/vehicle/aidl/impl/utils/TEST_MAPPING rename to automotive/vehicle/TEST_MAPPING index d3d00abc62..15569f6f04 100644 --- a/automotive/vehicle/aidl/impl/utils/TEST_MAPPING +++ b/automotive/vehicle/TEST_MAPPING @@ -2,6 +2,9 @@ "presubmit": [ { "name": "VehicleHalVehicleUtilsTest" + }, + { + "name": "VehicleHalAidlHidlCompatibilityTest" } ] } diff --git a/automotive/vehicle/aidl/aidl_test/AidlHidlCompatibilityTest.cpp b/automotive/vehicle/aidl/aidl_test/AidlHidlCompatibilityTest.cpp new file mode 100644 index 0000000000..f4f3f28fda --- /dev/null +++ b/automotive/vehicle/aidl/aidl_test/AidlHidlCompatibilityTest.cpp @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include +#include +#include +#include + +namespace hidl_vehicle = ::android::hardware::automotive::vehicle::V2_0; +namespace aidl_vehicle = ::aidl::android::hardware::automotive::vehicle; +using ::android::hardware::hidl_enum_range; +using ::ndk::enum_range; + +TEST(AidlHidlCompatibilityTest, testHidlPropertiesDefinedInAidl) { + for (const auto prop : hidl_enum_range()) { + int propInt = ::android::hardware::automotive::vehicle::toInt(prop); + auto aidlProperties = enum_range(); + + ASSERT_NE(std::find(aidlProperties.begin(), aidlProperties.end(), + static_cast(propInt)), + aidlProperties.end()) + << "property: " << propInt << " defined in HIDL, but not defined in AIDL"; + } +} diff --git a/automotive/vehicle/aidl/aidl_test/Android.bp b/automotive/vehicle/aidl/aidl_test/Android.bp new file mode 100644 index 0000000000..4337ac74e9 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_test/Android.bp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "VehicleHalAidlHidlCompatibilityTest", + srcs: ["*.cpp"], + shared_libs: [ + "libbinder_ndk", + "libhidlbase", + ], + static_libs: [ + "VehicleHalUtils", + "android.hardware.automotive.vehicle@2.0", + "libgtest", + "libgmock", + ], + defaults: ["VehicleHalDefaults"], + test_suites: ["general-tests"], + vendor: true, +}