Added CROSS_TRAFFIC_MONITORING_WARNING_STATE to CTS
Bug: 313664286
Test: atest CtsCarTestCases:CrossTrafficMonitoringWarningStateTest
AndroidCarApiTest: CrossTrafficMonitoringWarningStateTest
CtsCarTestCases: CarPropertyManagerTest
CtsCarTestCases: VehiclePropertyIdsTest
Change-Id: I9044bd6847278e6da7231c25438c0161aea14b97
diff --git a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
index e9b6ba7..a7ea273 100644
--- a/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
+++ b/tests/tests/car/src/android/car/cts/CarPropertyManagerTest.java
@@ -52,6 +52,7 @@
import android.car.hardware.property.BlindSpotWarningState;
import android.car.hardware.property.CarPropertyManager;
import android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback;
+import android.car.hardware.property.CrossTrafficMonitoringWarningState;
import android.car.hardware.property.CruiseControlCommand;
import android.car.hardware.property.CruiseControlState;
import android.car.hardware.property.CruiseControlType;
@@ -479,6 +480,18 @@
ElectronicStabilityControlState.ENABLED,
ElectronicStabilityControlState.ACTIVATED)
.build();
+ private static final ImmutableSet<Integer> CROSS_TRAFFIC_MONITORING_WARNING_STATES =
+ ImmutableSet.<Integer>builder()
+ .add(
+ CrossTrafficMonitoringWarningState.OTHER,
+ CrossTrafficMonitoringWarningState.NO_WARNING,
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_LEFT,
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_RIGHT,
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_BOTH,
+ CrossTrafficMonitoringWarningState.WARNING_REAR_LEFT,
+ CrossTrafficMonitoringWarningState.WARNING_REAR_RIGHT,
+ CrossTrafficMonitoringWarningState.WARNING_REAR_BOTH)
+ .build();
private static final ImmutableSet<Integer> ALL_POSSIBLE_HVAC_FAN_DIRECTIONS =
generateAllPossibleHvacFanDirections();
private static final ImmutableSet<Integer> VEHICLE_SEAT_OCCUPANCY_STATES = ImmutableSet.of(
@@ -927,7 +940,8 @@
VehiclePropertyIds.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP,
VehiclePropertyIds
.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE,
- VehiclePropertyIds.LOW_SPEED_COLLISION_WARNING_STATE)
+ VehiclePropertyIds.LOW_SPEED_COLLISION_WARNING_STATE,
+ VehiclePropertyIds.CROSS_TRAFFIC_MONITORING_WARNING_STATE)
.build();
private static final ImmutableList<Integer> PERMISSION_CONTROL_ADAS_STATES_PROPERTIES =
ImmutableList.<Integer>builder()
@@ -1312,6 +1326,7 @@
getElectronicStabilityControlEnabledVerifier(),
getElectronicStabilityControlStateVerifier(),
getCrossTrafficMonitoringEnabledVerifier(),
+ getCrossTrafficMonitoringWarningStateVerifier(),
// TODO(b/273988725): Put all verifiers here.
};
}
@@ -6755,6 +6770,32 @@
getCrossTrafficMonitoringEnabledVerifier().verify();
}
+ private VehiclePropertyVerifier<Integer> getCrossTrafficMonitoringWarningStateVerifier() {
+ ImmutableSet<Integer> combinedCarPropertyValues = ImmutableSet.<Integer>builder()
+ .addAll(CROSS_TRAFFIC_MONITORING_WARNING_STATES)
+ .addAll(ERROR_STATES)
+ .build();
+
+ return VehiclePropertyVerifier.newBuilder(
+ VehiclePropertyIds.CROSS_TRAFFIC_MONITORING_WARNING_STATE,
+ CarPropertyConfig.VEHICLE_PROPERTY_ACCESS_READ,
+ VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL,
+ CarPropertyConfig.VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE,
+ Integer.class, mCarPropertyManager)
+ .setAllPossibleEnumValues(combinedCarPropertyValues)
+ .setDependentOnProperty(VehiclePropertyIds.CROSS_TRAFFIC_MONITORING_ENABLED,
+ ImmutableSet.of(Car.PERMISSION_READ_ADAS_SETTINGS,
+ Car.PERMISSION_CONTROL_ADAS_SETTINGS))
+ .verifyErrorStates()
+ .addReadPermission(Car.PERMISSION_READ_ADAS_STATES)
+ .build();
+ }
+
+ @Test
+ public void testCrossTrafficMonitoringWarningStateIfSupported() {
+ getCrossTrafficMonitoringWarningStateVerifier().verify();
+ }
+
@SuppressWarnings("unchecked")
@Test
@ApiTest(apis = {"android.car.hardware.property.CarPropertyManager#getPropertyList",
diff --git a/tests/tests/car/src/android/car/cts/CrossTrafficMonitoringWarningStateTest.java b/tests/tests/car/src/android/car/cts/CrossTrafficMonitoringWarningStateTest.java
new file mode 100644
index 0000000..29d5350
--- /dev/null
+++ b/tests/tests/car/src/android/car/cts/CrossTrafficMonitoringWarningStateTest.java
@@ -0,0 +1,72 @@
+/*
+ * 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.CrossTrafficMonitoringWarningState;
+
+import org.junit.Test;
+
+import java.util.List;
+
+public class CrossTrafficMonitoringWarningStateTest {
+
+ @Test
+ public void testToString() {
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.OTHER))
+ .isEqualTo("OTHER");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.NO_WARNING))
+ .isEqualTo("NO_WARNING");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_LEFT))
+ .isEqualTo("WARNING_FRONT_LEFT");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_RIGHT))
+ .isEqualTo("WARNING_FRONT_RIGHT");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_FRONT_BOTH))
+ .isEqualTo("WARNING_FRONT_BOTH");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_REAR_LEFT))
+ .isEqualTo("WARNING_REAR_LEFT");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_REAR_RIGHT))
+ .isEqualTo("WARNING_REAR_RIGHT");
+ assertThat(CrossTrafficMonitoringWarningState.toString(
+ CrossTrafficMonitoringWarningState.WARNING_REAR_BOTH))
+ .isEqualTo("WARNING_REAR_BOTH");
+ assertThat(CrossTrafficMonitoringWarningState.toString(8)).isEqualTo("0x8");
+ assertThat(CrossTrafficMonitoringWarningState.toString(12)).isEqualTo("0xc");
+ }
+
+ @Test
+ public void testAllCrossTrafficMonitoringWarningStatesAreMappedInToString() {
+ List<Integer> crossTrafficMonitoringWarningStates = VehiclePropertyUtils
+ .getIntegersFromDataEnums(CrossTrafficMonitoringWarningState.class);
+ for (Integer crossTrafficMonitoringWarningState : crossTrafficMonitoringWarningStates) {
+ String crossTrafficMonitoringWarningStateString =
+ CrossTrafficMonitoringWarningState.toString(crossTrafficMonitoringWarningState);
+ assertWithMessage("%s starts with 0x", crossTrafficMonitoringWarningStateString).that(
+ crossTrafficMonitoringWarningStateString.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 d05433f..ae61be0 100644
--- a/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java
+++ b/tests/tests/car/src/android/car/cts/VehiclePropertyIdsTest.java
@@ -490,6 +490,9 @@
.isEqualTo("ELECTRONIC_STABILITY_CONTROL_STATE");
assertThat(VehiclePropertyIds.toString(VehiclePropertyIds.CROSS_TRAFFIC_MONITORING_ENABLED))
.isEqualTo("CROSS_TRAFFIC_MONITORING_ENABLED");
+ assertThat(VehiclePropertyIds.toString(
+ VehiclePropertyIds.CROSS_TRAFFIC_MONITORING_WARNING_STATE))
+ .isEqualTo("CROSS_TRAFFIC_MONITORING_WARNING_STATE");
assertThat(VehiclePropertyIds.toString(3)).isEqualTo("0x3");
assertThat(VehiclePropertyIds.toString(12)).isEqualTo("0xc");
}