Added VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL to CTS
Bug: 309014379
Test: atest AndroidCarApiTest:VehicleAutonomousStateTest
CtsCarTestCases: VehicleAutonomousStateTest
CtsCarTestCases: CarPropertyManagerTest
CtsCarTestCases: VehiclePropertyIdsTest
Change-Id: Ia0d729f5beb490fbf1e197d64957e0a2ab3f9e76
diff --git a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
index cdc8b7c..2525dbc 100644
--- a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
+++ b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
@@ -75,6 +75,7 @@
import android.car.hardware.property.PropertyNotAvailableException;
import android.car.hardware.property.Subscription;
import android.car.hardware.property.TrailerState;
+import android.car.hardware.property.VehicleAutonomousState;
import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus;
import android.car.hardware.property.VehicleElectronicTollCollectionCardType;
import android.car.hardware.property.VehicleLightState;
@@ -264,6 +265,16 @@
private static final ImmutableSet<Integer> HVAC_TEMPERATURE_DISPLAY_UNITS =
ImmutableSet.<Integer>builder().add(VehicleUnit.CELSIUS,
VehicleUnit.FAHRENHEIT).build();
+ private static final ImmutableSet<Integer> VEHICLE_AUTONOMOUS_STATES =
+ ImmutableSet.<Integer>builder()
+ .add(
+ VehicleAutonomousState.LEVEL_0,
+ VehicleAutonomousState.LEVEL_1,
+ VehicleAutonomousState.LEVEL_2,
+ VehicleAutonomousState.LEVEL_3,
+ VehicleAutonomousState.LEVEL_4,
+ VehicleAutonomousState.LEVEL_5)
+ .build();
private static final ImmutableSet<Integer> EMERGENCY_LANE_KEEP_ASSIST_STATES =
ImmutableSet.<Integer>builder()
.add(
@@ -864,6 +875,12 @@
.add(
VehiclePropertyIds.LOCATION_CHARACTERIZATION)
.build();
+ private static final ImmutableList<Integer>
+ PERMISSION_CAR_DRIVING_STATE_PROPERTIES =
+ ImmutableList.<Integer>builder()
+ .add(
+ VehiclePropertyIds.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL)
+ .build();
private static final ImmutableList<String> VENDOR_PROPERTY_PERMISSIONS =
ImmutableList.<String>builder()
.add(
@@ -1209,6 +1226,7 @@
getDoorMoveVerifier(),
getDoorLockVerifier(),
getDoorChildLockEnabledVerifier(),
+ getVehicleDrivingAutomationCurrentLevelVerifier(),
// TODO(b/273988725): Put all verifiers here.
};
}
@@ -2763,6 +2781,23 @@
getDoorChildLockEnabledVerifier().verify();
}
+ private VehiclePropertyVerifier<Integer> getVehicleDrivingAutomationCurrentLevelVerifier() {
+ return VehiclePropertyVerifier.newBuilder(
+ VehiclePropertyIds.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL,
+ CarPropertyConfig.VEHICLE_PROPERTY_ACCESS_READ,
+ VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL,
+ CarPropertyConfig.VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE,
+ Integer.class, mCarPropertyManager)
+ .setAllPossibleEnumValues(VEHICLE_AUTONOMOUS_STATES)
+ .addReadPermission(Car.PERMISSION_CAR_DRIVING_STATE)
+ .build();
+ }
+
+ @Test
+ public void testVehicleDrivingAutomationCurrentLevelIfSupported() {
+ getVehicleDrivingAutomationCurrentLevelVerifier().verify();
+ }
+
@Test
@ApiTest(
apis = {
@@ -7886,6 +7921,13 @@
}
@Test
+ public void testPermissionCarDrivingStateGranted() {
+ verifyExpectedPropertiesWhenPermissionsGranted(
+ PERMISSION_CAR_DRIVING_STATE_PROPERTIES,
+ Car.PERMISSION_CAR_DRIVING_STATE);
+ }
+
+ @Test
public void testPermissionControlDisplayUnitsAndVendorExtensionGranted() {
runWithShellPermissionIdentity(
() -> {
diff --git a/tests/tests/car/src/android/car/cts/VehicleAutonomousStateTest.java b/tests/tests/car/src/android/car/cts/VehicleAutonomousStateTest.java
new file mode 100644
index 0000000..9fd95d6
--- /dev/null
+++ b/tests/tests/car/src/android/car/cts/VehicleAutonomousStateTest.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2023 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 android.car.cts;
+
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import android.car.cts.utils.VehiclePropertyUtils;
+import android.car.hardware.property.VehicleAutonomousState;
+
+import org.junit.Test;
+
+import java.util.List;
+
+public class VehicleAutonomousStateTest {
+
+ @Test
+ public void testToString() {
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_0))
+ .isEqualTo("LEVEL_0");
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_1))
+ .isEqualTo("LEVEL_1");
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_2))
+ .isEqualTo("LEVEL_2");
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_3))
+ .isEqualTo("LEVEL_3");
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_4))
+ .isEqualTo("LEVEL_4");
+ assertThat(VehicleAutonomousState.toString(
+ VehicleAutonomousState.LEVEL_5))
+ .isEqualTo("LEVEL_5");
+ assertThat(VehicleAutonomousState.toString(10)).isEqualTo("0xa");
+ assertThat(VehicleAutonomousState.toString(12)).isEqualTo("0xc");
+ }
+
+ @Test
+ public void testAllVehicleAutonomousStatesAreMappedInToString() {
+ List<Integer> vehicleAutonomousStates =
+ VehiclePropertyUtils.getIntegersFromDataEnums(VehicleAutonomousState.class);
+ for (Integer vehicleAutonomousState : vehicleAutonomousStates) {
+ String vehicleAutonomousStateString = VehicleAutonomousState.toString(
+ vehicleAutonomousState);
+ assertWithMessage("%s starts with 0x", vehicleAutonomousStateString).that(
+ vehicleAutonomousStateString.startsWith("0x")).isFalse();
+ }
+ }
+}
diff --git a/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java b/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java
index e98d31d..5be3391 100644
--- a/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java
+++ b/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java
@@ -434,6 +434,10 @@
assertThat(VehiclePropertyIds.toString(VehiclePropertyIds.STEERING_WHEEL_LIGHTS_SWITCH))
.isEqualTo("STEERING_WHEEL_LIGHTS_SWITCH");
assertThat(
+ VehiclePropertyIds.toString(
+ VehiclePropertyIds.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL))
+ .isEqualTo("VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL");
+ assertThat(
VehiclePropertyIds.toString(VehiclePropertyIds.AUTOMATIC_EMERGENCY_BRAKING_ENABLED))
.isEqualTo("AUTOMATIC_EMERGENCY_BRAKING_ENABLED");
assertThat(