VTS testcases for HAL API setSimSlotMapping
To accomodate MEP, we have updated the setSimSlotMapping API in the HAL,
Writing the tescases to check functionality of the same.
Test: atest VtsHalRadioTargetTest
Bug: 217665559
Change-Id: Idbff19db2e536d3c2f7b80afbbf244575d8247d0
Merged-In: Idbff19db2e536d3c2f7b80afbbf244575d8247d0
diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp
index 43b63e8..83c4de0 100644
--- a/radio/aidl/vts/radio_config_test.cpp
+++ b/radio/aidl/vts/radio_config_test.cpp
@@ -39,6 +39,19 @@
radio_config->setResponseFunctions(radioRsp_config, radioInd_config);
}
+void RadioConfigTest::updateSimSlotStatus() {
+ serial = GetRandomSerialNumber();
+ radio_config->getSimSlotsStatus(serial);
+ EXPECT_EQ(std::cv_status::no_timeout, wait());
+ EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
+ EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
+ EXPECT_EQ(RadioError::NONE, radioRsp_config->rspInfo.error);
+ // assuming only 1 slot
+ for (const SimSlotStatus& slotStatusResponse : radioRsp_config->simSlotStatus) {
+ slotStatus = slotStatusResponse;
+ }
+}
+
/*
* Test IRadioConfig.getHalDeviceCapabilities() for the response returned.
*/
@@ -148,3 +161,46 @@
{RadioError::INVALID_ARGUMENTS, RadioError::RADIO_NOT_AVAILABLE,
RadioError::INTERNAL_ERR}));
}
+
+/*
+ * Test IRadioConfig.setSimSlotsMapping() for the response returned.
+ */
+TEST_P(RadioConfigTest, setSimSlotsMapping) {
+ serial = GetRandomSerialNumber();
+ SlotPortMapping slotPortMapping;
+ slotPortMapping.physicalSlotId = 0;
+ slotPortMapping.portId = 0;
+ std::vector<SlotPortMapping> slotPortMappingList = {slotPortMapping};
+ ndk::ScopedAStatus res = radio_config->setSimSlotsMapping(serial, slotPortMappingList);
+ ASSERT_OK(res);
+ EXPECT_EQ(std::cv_status::no_timeout, wait());
+ EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
+ EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
+ ALOGI("setSimSlotsMapping, rspInfo.error = %s\n",
+ toString(radioRsp_config->rspInfo.error).c_str());
+ ASSERT_TRUE(CheckAnyOfErrors(radioRsp_config->rspInfo.error, {RadioError::NONE}));
+}
+
+/*
+ * Test IRadioConfig.getSimSlotStatus() for the response returned.
+ */
+
+TEST_P(RadioConfigTest, checkPortInfoExistsAndPortActive) {
+ serial = GetRandomSerialNumber();
+ ndk::ScopedAStatus res = radio_config->getSimSlotsStatus(serial);
+ ASSERT_OK(res);
+ ALOGI("getSimSlotsStatus, rspInfo.error = %s\n",
+ toString(radioRsp_config->rspInfo.error).c_str());
+ EXPECT_EQ(std::cv_status::no_timeout, wait());
+ EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type);
+ EXPECT_EQ(serial, radioRsp_config->rspInfo.serial);
+ if (radioRsp_config->rspInfo.error == RadioError::NONE) {
+ // check if cardState is present, portInfo size should be more than 0
+ for (const SimSlotStatus& slotStatusResponse : radioRsp_config->simSlotStatus) {
+ if (slotStatusResponse.cardState == CardStatus::STATE_PRESENT) {
+ ASSERT_TRUE(slotStatusResponse.portInfo.size() > 0);
+ ASSERT_TRUE(slotStatusResponse.portInfo[0].portActive);
+ }
+ }
+ }
+}