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

Commit 8327a56b authored by Youming Ye's avatar Youming Ye Committed by Gerrit Code Review
Browse files

Merge "Add functional folder for vts 1.4."

parents bd400ae3 ae28042b
Loading
Loading
Loading
Loading

radio/1.4/vts/OWNERS

0 → 100644
+8 −0
Original line number Diff line number Diff line
# Telephony team
amitmahajan@google.com
shuoq@google.com
sasindran@google.com

# VTS team
yuexima@google.com
yim@google.com
 No newline at end of file
+37 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2018 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.
//

cc_test {
    name: "VtsHalRadioV1_4TargetTest",
    defaults: ["VtsHalTargetTestDefaults"],
    srcs: [
        "radio_hidl_hal_api.cpp",
        "radio_hidl_hal_test.cpp",
        "radio_response.cpp",
        "radio_indication.cpp",
        "VtsHalRadioV1_4TargetTest.cpp",
    ],
    static_libs: [
        "RadioVtsTestUtilBase",
        "android.hardware.radio@1.4",
        "android.hardware.radio@1.3",
        "android.hardware.radio@1.2",
        "android.hardware.radio@1.1",
        "android.hardware.radio@1.0",
    ],
    header_libs: ["radio.util.header@1.0"],
    test_suites: ["general-tests"]
}
 No newline at end of file
+26 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.
 */

#include <radio_hidl_hal_utils_v1_4.h>

int main(int argc, char** argv) {
    ::testing::AddGlobalTestEnvironment(RadioHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    RadioHidlEnvironment::Instance()->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    LOG(INFO) << "Test result = " << status;
    return status;
}
 No newline at end of file
+19 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.
 */

#include <radio_hidl_hal_utils_v1_4.h>

#define ASSERT_OK(ret) ASSERT_TRUE(ret.isOk())
 No newline at end of file
+87 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.
 */

#include <radio_hidl_hal_utils_v1_4.h>

void RadioHidlTest_v1_4::SetUp() {
    radio_v1_4 = ::testing::VtsHalHidlTargetTestBase::getService<
            ::android::hardware::radio::V1_4::IRadio>(
            RadioHidlEnvironment::Instance()
                    ->getServiceName<::android::hardware::radio::V1_4::IRadio>(
                            hidl_string(RADIO_SERVICE_NAME)));
    if (radio_v1_4 == NULL) {
        sleep(60);
        radio_v1_4 = ::testing::VtsHalHidlTargetTestBase::getService<
                ::android::hardware::radio::V1_4::IRadio>(
                RadioHidlEnvironment::Instance()
                        ->getServiceName<::android::hardware::radio::V1_4::IRadio>(
                                hidl_string(RADIO_SERVICE_NAME)));
    }
    ASSERT_NE(nullptr, radio_v1_4.get());

    radioRsp_v1_4 = new (std::nothrow) RadioResponse_v1_4(*this);
    ASSERT_NE(nullptr, radioRsp_v1_4.get());

    count_ = 0;

    radioInd_v1_4 = new (std::nothrow) RadioIndication_v1_4(*this);
    ASSERT_NE(nullptr, radioInd_v1_4.get());

    radio_v1_4->setResponseFunctions(radioRsp_v1_4, radioInd_v1_4);

    updateSimCardStatus();
    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
    EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
    EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);

    /* Enforce Vts Testing with Sim Status Present only. */
    EXPECT_EQ(CardState::PRESENT, cardStatus.base.base.cardState);
}

/*
 * Notify that the response message is received.
 */
void RadioHidlTest_v1_4::notify(int receivedSerial) {
    std::unique_lock<std::mutex> lock(mtx_);
    if (serial == receivedSerial) {
        count_++;
        cv_.notify_one();
    }
}

/*
 * Wait till the response message is notified or till TIMEOUT_PERIOD.
 */
std::cv_status RadioHidlTest_v1_4::wait() {
    std::unique_lock<std::mutex> lock(mtx_);

    std::cv_status status = std::cv_status::no_timeout;
    auto now = std::chrono::system_clock::now();
    while (count_ == 0) {
        status = cv_.wait_until(lock, now + std::chrono::seconds(TIMEOUT_PERIOD));
        if (status == std::cv_status::timeout) {
            return status;
        }
    }
    count_--;
    return status;
}

void RadioHidlTest_v1_4::updateSimCardStatus() {
    serial = GetRandomSerialNumber();
    radio_v1_4->getIccCardStatus(serial);
    EXPECT_EQ(std::cv_status::no_timeout, wait());
}
 No newline at end of file
Loading