laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42794?usp=email )
Change subject: CCID: Add test to verify a working Simtrace setup ......................................................................
CCID: Add test to verify a working Simtrace setup
This test checks if a valid request is forwarded to SIMtrace and a valid response is returned back to the reader.
Change-Id: I19264bc257024e9028996e417ff23bbbaebf5f92 --- M ccid/CCID_Tests.ttcn 1 file changed, 40 insertions(+), 0 deletions(-)
Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified
diff --git a/ccid/CCID_Tests.ttcn b/ccid/CCID_Tests.ttcn index 0715fba..158aa6e 100644 --- a/ccid/CCID_Tests.ttcn +++ b/ccid/CCID_Tests.ttcn @@ -591,6 +591,44 @@ f_start_and_wait(); }
+/* A general test to verify a working simtrace. */ +private function f_TC_simtrace_test() runs on CardemSlot_CT +{ + var octetstring req := c_UICC_MANAGE_CHANNEL; + var octetstring res := '6200'O; + var CCID_PDU ccid_pdu; + + f_cardem_manager(); + + f_ccid_power_on(CCID_PWRSEL_3V0); + + /* Send a request towards reader. */ + CCID.send(ts_CCID_XfrBlock(g_slot_nr, req, 0)); + /* Receive the request by SIM. */ + f_cardem_receive(tr_SIMTRACE_CEMU_RX_DATA(?, req)); + /* Transmit the response by SIM. */ + f_cardem_transmit(ts_SIMTRACE_CEMU_TX_DATA(ts_CardEmu_DataFlags(pb_and_tx := true, final := true), + res)); + /* Receive the response from reader. */ + ccid_pdu := f_ccid_receive(tr_CCID_DataBlock(g_slot_nr, ?, ?, ?)); + if (ccid_pdu.u.DataBlock.abData != res) { + setverdict(fail, "Unexpected SW1/SW2"); + mtc.stop; + } + + /* Stop simtrace emulation, to prevent race condition. */ + vc_Cardem.stop; + vc_Cardem.done; +} +testcase TC_simtrace_test() runs on Test_CT +{ + f_init(); + + f_start_handler(refers(f_TC_simtrace_test), mp_simtrace_slot, true); + + f_start_and_wait(); +} +
/* TODO */ @@ -755,6 +793,7 @@ execute( TC_successful_case_4() ); execute( TC_successful_case_1() ); execute( TC_successful_case_2_3() ); + execute( TC_simtrace_test() );
/* error handling */ execute( TC_inval_slot() ); @@ -764,6 +803,7 @@ execute( TC_unsupp_mechanical() ); execute( TC_unsupp_secure() ); execute( TC_truncated() ); + }