Skip voice call VTS for devices that don't support voice call with new Util
Bug: 154867827
Test: VtsHalRadio1_4Target
Change-Id: I888d4d4ffbff5d24bfe2b9b3cb878eb5f1e1762f
Merged-In: I888d4d4ffbff5d24bfe2b9b3cb878eb5f1e1762f
(cherry picked from commit 4e866a3020
)
This commit is contained in:
parent
ac06943cad
commit
f2ed9ffcb9
3 changed files with 54 additions and 0 deletions
|
@ -13,6 +13,8 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#define LOG_TAG "RadioTest"
|
||||
|
||||
#include <vts_test_util.h>
|
||||
#include <iostream>
|
||||
|
||||
|
@ -53,4 +55,27 @@ int GetRandomSerialNumber() {
|
|||
}
|
||||
}
|
||||
return testing::AssertionFailure() << "SapError:" + toString(err) + " is returned";
|
||||
}
|
||||
|
||||
// Runs "pm list features" and attempts to find the specified feature in its output.
|
||||
bool deviceSupportsFeature(const char* feature) {
|
||||
bool hasFeature = false;
|
||||
FILE* p = popen("/system/bin/pm list features", "re");
|
||||
if (p) {
|
||||
char* line = NULL;
|
||||
size_t len = 0;
|
||||
while (getline(&line, &len, p) > 0) {
|
||||
if (strstr(line, feature)) {
|
||||
hasFeature = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
pclose(p);
|
||||
} else {
|
||||
__android_log_print(ANDROID_LOG_FATAL, LOG_TAG, "popen failed: %d", errno);
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
__android_log_print(ANDROID_LOG_INFO, LOG_TAG, "Feature %s: %ssupported", feature,
|
||||
hasFeature ? "" : "not ");
|
||||
return hasFeature;
|
||||
}
|
|
@ -17,6 +17,7 @@
|
|||
#include <android-base/logging.h>
|
||||
|
||||
#include <android/hardware/radio/1.0/types.h>
|
||||
#include <android/log.h>
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
using ::android::hardware::radio::V1_0::RadioError;
|
||||
|
@ -31,6 +32,8 @@ enum CheckFlag {
|
|||
CHECK_SAP_ERROR = 4,
|
||||
};
|
||||
|
||||
static constexpr const char* FEATURE_VOICE_CALL = "android.software.connectionservice";
|
||||
|
||||
/*
|
||||
* Generate random serial number for radio test
|
||||
*/
|
||||
|
@ -47,3 +50,8 @@ int GetRandomSerialNumber();
|
|||
* vendor/devices implementations.
|
||||
*/
|
||||
::testing::AssertionResult CheckAnyOfErrors(SapResultCode err, std::vector<SapResultCode> errors);
|
||||
|
||||
/*
|
||||
* Check if device supports feature.
|
||||
*/
|
||||
bool deviceSupportsFeature(const char* feature);
|
||||
|
|
|
@ -22,6 +22,13 @@
|
|||
* Test IRadio.emergencyDial() for the response returned.
|
||||
*/
|
||||
TEST_P(RadioHidlTest_v1_4, emergencyDial) {
|
||||
if (!deviceSupportsFeature(FEATURE_VOICE_CALL)) {
|
||||
ALOGI("Skipping emergencyDial because voice call is not supported in device");
|
||||
return;
|
||||
} else {
|
||||
ALOGI("Running emergencyDial because voice call is supported in device");
|
||||
}
|
||||
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_0::Dial dialInfo;
|
||||
|
@ -53,6 +60,13 @@ TEST_P(RadioHidlTest_v1_4, emergencyDial) {
|
|||
* Test IRadio.emergencyDial() with specified service and its response returned.
|
||||
*/
|
||||
TEST_P(RadioHidlTest_v1_4, emergencyDial_withServices) {
|
||||
if (!deviceSupportsFeature(FEATURE_VOICE_CALL)) {
|
||||
ALOGI("Skipping emergencyDial because voice call is not supported in device");
|
||||
return;
|
||||
} else {
|
||||
ALOGI("Running emergencyDial because voice call is supported in device");
|
||||
}
|
||||
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_0::Dial dialInfo;
|
||||
|
@ -85,6 +99,13 @@ TEST_P(RadioHidlTest_v1_4, emergencyDial_withServices) {
|
|||
* Test IRadio.emergencyDial() with known emergency call routing and its response returned.
|
||||
*/
|
||||
TEST_P(RadioHidlTest_v1_4, emergencyDial_withEmergencyRouting) {
|
||||
if (!deviceSupportsFeature(FEATURE_VOICE_CALL)) {
|
||||
ALOGI("Skipping emergencyDial because voice call is not supported in device");
|
||||
return;
|
||||
} else {
|
||||
ALOGI("Running emergencyDial because voice call is supported in device");
|
||||
}
|
||||
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_0::Dial dialInfo;
|
||||
|
|
Loading…
Reference in a new issue