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

Commit ae28042b authored by Youming Ye's avatar Youming Ye Committed by paulye
Browse files

Add functional folder for vts 1.4.

New tests would be added in cpp files under functional folder. Add a new
folder since it doesn't exist for 1.4 yet.

Test: Compilation
Change-Id: Ieac30bbbc865b76a08d4bdd655f0d489bb7f77bd
Bug: 73784494
parent 7c2fd0b1
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