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

Commit 27ebbec3 authored by Jack Yu's avatar Jack Yu
Browse files

secure_element/aidl: update test case transmit

When no logical or basic channel is opened, transmit() resturns an error
code CHANNEL_NOT_AVAILABLE with an empty response.

Bug: 270091254
Test: atest VtsHalSecureElementTargetTest
Change-Id: I7b302ec321089f0b8f1d9d67bb12f9bdddaa4ee1
parent 35d4efc9
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -284,14 +284,21 @@ TEST_P(SecureElementAidl, closeChannel) {

TEST_P(SecureElementAidl, transmit) {
    std::vector<uint8_t> response;
    LogicalChannelResponse logical_channel_response;

    // transmit called after init shall succeed.
    // Note: no channel is opened for this test and the transmit
    // response will have the status SW_LOGICAL_CHANNEL_NOT_SUPPORTED.
    // The transmit response shall be larger than 2 bytes as it includes the
    // status code.
    EXPECT_OK(secure_element_->transmit(kDataApdu, &response));
    EXPECT_GE(response.size(), 2u);
    // Note: no channel is opened for this test
    // transmit() will return an empty response with the error
    // code CHANNEL_NOT_AVAILABLE when the SE cannot be
    // communicated with.
    EXPECT_ERR(secure_element_->transmit(kDataApdu, &response));

    EXPECT_OK(secure_element_->openLogicalChannel(kSelectableAid, 0x00, &logical_channel_response));
    EXPECT_GE(logical_channel_response.selectResponse.size(), 2u);
    EXPECT_GE(logical_channel_response.channelNumber, 1u);
    EXPECT_LE(logical_channel_response.channelNumber, 19u);

    // transmit called on the logical channel should succeed.
    EXPECT_EQ(transmit(logical_channel_response.channelNumber), 0x9000);
}

GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SecureElementAidl);