Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1cb30d5 authored by Shuo Qian's avatar Shuo Qian Committed by Android (Google) Code Review
Browse files

Merge "Skip voice call VTS for devices that don't support voice call with new Util" into rvc-dev

parents 2c29c526 4e866a30
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -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>

@@ -54,3 +56,26 @@ 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;
}
 No newline at end of file
+8 −0
Original line number Diff line number Diff line
@@ -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);
+21 −0
Original line number Diff line number Diff line
@@ -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;