4 * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ankit Jogi <ankit.jogi@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
24 #include <tapi_common.h>
26 #include <TapiUtility.h>
28 #include "util_common.h"
31 enum async_state async_flag;
37 static void on_tel_req_sap_connect (TapiHandle *handle, int result,
38 void *data, void *user_data)
40 int *value = user_data;
42 async_flag = ASYNC_DONE;
45 if (*value != 0xC0FFEE) {
46 dts_fail("tel_req_sap_connect", "Callback userdata crashed");
50 static void utc_tel_req_sap_connect (void)
60 async_flag = ASYNC_READY;
61 ret = tel_req_sap_connect (handle, max_msg_size, on_tel_req_sap_connect, &value);
62 if (ret != TAPI_API_SUCCESS) {
63 dts_fail("tel_req_sap_connect", "Unexpected return");
69 if (async_flag != ASYNC_DONE) {
70 dts_fail("tel_req_sap_connect", "Callback not invoked");
73 dts_pass("tel_req_sap_connect");
76 static void utc_fail_tel_req_sap_connect (void)
80 ret = tel_req_sap_connect (NULL, 0, NULL, NULL);
81 if (ret == TAPI_API_SUCCESS) {
82 dts_fail("tel_req_sap_connect", "Parameter check failed");
85 dts_pass("tel_req_sap_connect");
89 * tel_req_sap_transfer_apdu
92 static void on_tel_req_sap_transfer_apdu (TapiHandle *handle, int result,
93 void *data, void *user_data)
95 int *value = user_data;
97 async_flag = ASYNC_DONE;
100 if (*value != 0xC0FFEE) {
101 dts_fail("tel_req_sap_transfer_apdu", "Callback userdata crashed");
105 static void utc_tel_req_sap_transfer_apdu (void)
108 int value = 0xC0FFEE;
109 TelSapApduData_t apdu;
111 memset (&apdu, 0, sizeof(TelSimApdu_t));
114 strcpy ((char *)apdu.apdu_data, "a0a40000026f02");
118 async_flag = ASYNC_READY;
119 ret = tel_req_sap_transfer_apdu (handle, &apdu, on_tel_req_sap_transfer_apdu, &value);
120 if (ret != TAPI_API_SUCCESS) {
121 dts_fail("tel_req_sap_transfer_apdu", "Unexpected return");
127 if (async_flag != ASYNC_DONE) {
128 dts_fail("tel_req_sap_transfer_apdu", "Callback not invoked");
131 dts_pass("tel_req_sap_transfer_apdu");
134 static void utc_fail_tel_req_sap_transfer_apdu (void)
138 ret = tel_req_sap_transfer_apdu (NULL, NULL, NULL, NULL);
139 if (ret == TAPI_API_SUCCESS) {
140 dts_fail("tel_req_sap_transfer_apdu", "Parameter check failed");
143 ret = tel_req_sap_transfer_apdu (handle, NULL, NULL, NULL);
144 if (ret == TAPI_API_SUCCESS) {
145 dts_fail("tel_req_sap_transfer_apdu", "Parameter check failed");
148 dts_pass("tel_req_sap_transfer_apdu");
152 * tel_req_sap_transport_protocol
155 static void on_tel_req_sap_transport_protocol (TapiHandle *handle, int result,
156 void *data, void *user_data)
158 int *value = user_data;
160 async_flag = ASYNC_DONE;
163 if (*value != 0xC0FFEE) {
164 dts_fail("tel_req_sap_transport_protocol", "Callback userdata crashed");
168 static void utc_tel_req_sap_transport_protocol (void)
171 int value = 0xC0FFEE;
172 TelSimSapProtocol_t protocol;
178 async_flag = ASYNC_READY;
179 ret = tel_req_sap_transport_protocol (handle, protocol, on_tel_req_sap_transport_protocol, &value);
180 if (ret != TAPI_API_SUCCESS) {
181 dts_fail("tel_req_sap_transport_protocol", "Unexpected return");
187 if (async_flag != ASYNC_DONE) {
188 dts_fail("tel_req_sap_transport_protocol", "Callback not invoked");
191 dts_pass("tel_req_sap_transport_protocol");
194 static void utc_fail_tel_req_sap_transport_protocol (void)
198 ret = tel_req_sap_transport_protocol (NULL, 0, NULL, NULL);
199 if (ret == TAPI_API_SUCCESS) {
200 dts_fail("tel_req_sap_transport_protocol", "Parameter check failed");
203 dts_pass("tel_req_sap_transport_protocol");
207 * tel_req_sap_power_operation
210 static void on_tel_req_sap_power_operation (TapiHandle *handle, int result,
211 void *data, void *user_data)
213 int *value = user_data;
215 async_flag = ASYNC_DONE;
218 if (*value != 0xC0FFEE) {
219 dts_fail("tel_req_sap_power_operation", "Callback userdata crashed");
223 static void utc_tel_req_sap_power_operation (void)
226 int value = 0xC0FFEE;
227 TelSimSapPowerMode_t power_mode;
233 async_flag = ASYNC_READY;
234 ret = tel_req_sap_power_operation (handle, power_mode, on_tel_req_sap_power_operation, &value);
235 if (ret != TAPI_API_SUCCESS) {
236 dts_fail("tel_req_sap_power_operation", "Unexpected return");
242 if (async_flag != ASYNC_DONE) {
243 dts_fail("tel_req_sap_power_operation", "Callback not invoked");
246 dts_pass("tel_req_sap_power_operation");
249 static void utc_fail_tel_req_sap_power_operation (void)
253 ret = tel_req_sap_power_operation (NULL, 0, NULL, NULL);
254 if (ret == TAPI_API_SUCCESS) {
255 dts_fail("tel_req_sap_power_operation", "Parameter check failed");
258 dts_pass("tel_req_sap_power_operation");
262 * Generate default TC for no-additional-parameter type API
265 DO(tel_req_sap_disconnect)
266 DO(tel_req_sap_connection_status)
267 DO(tel_req_sap_transfer_atr)
268 DO(tel_req_sap_cardreader_status)
270 struct tet_testlist tet_testlist[] = {
272 { utc_tel_req_sap_disconnect, 1 },
273 { utc_fail_tel_req_sap_disconnect, 2 },
274 { utc_tel_req_sap_connection_status, 1 },
275 { utc_fail_tel_req_sap_connection_status, 2 },
276 { utc_tel_req_sap_transfer_atr, 1 },
277 { utc_fail_tel_req_sap_transfer_atr, 2 },
278 { utc_tel_req_sap_cardreader_status, 1 },
279 { utc_fail_tel_req_sap_cardreader_status, 2 },
281 { utc_tel_req_sap_connect, 1 },
282 { utc_fail_tel_req_sap_connect, 2 },
283 { utc_tel_req_sap_transfer_apdu, 1 },
284 { utc_fail_tel_req_sap_transfer_apdu, 2 },
285 { utc_tel_req_sap_transport_protocol, 1 },
286 { utc_fail_tel_req_sap_transport_protocol, 2 },
287 { utc_tel_req_sap_power_operation, 1 },
288 { utc_fail_tel_req_sap_power_operation, 2 },
292 static void startup (void)
295 tet_printf ("\n TC start");
297 handle = tel_init (NULL);
300 static void cleanup (void)
305 tet_printf ("\n TC end");
308 void (*tet_startup) (void) = startup;
309 void (*tet_cleanup) (void) = cleanup;