ofono/unit/test-stkutil.c

12697 lines
354 KiB
C
Raw Normal View History

/*
* oFono - GSM Telephony Stack for Linux
*
* Copyright (C) 2008-2010 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib/gprintf.h>
#include <ofono/types.h>
#include "smsutil.h"
#include "stkutil.h"
#define MAX_ITEM 100
static gboolean g_mem_equal(const unsigned char *v1, const unsigned char *v2,
unsigned int len)
{
unsigned int i;
for (i = 0; i < len; i++)
if (v1[i] != v2[i])
return FALSE;
return TRUE;
}
static inline void check_common_bool(const ofono_bool_t command,
const ofono_bool_t test)
{
g_assert(command == test);
}
static inline void check_common_byte(const unsigned char command,
const unsigned char test)
{
g_assert(command == test);
}
static inline void check_common_text(const char *command, const char *test)
{
if (test == NULL) {
g_assert(command == NULL);
return;
}
g_assert(command != NULL);
g_assert(g_str_equal(command, test));
}
static inline void check_common_byte_array(
const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(g_mem_equal(command->array, test->array, test->len));
}
/* Defined in TS 102.223 Section 8.1 */
static inline void check_address(const struct stk_address *command,
const struct stk_address *test)
{
g_assert(command->ton_npi == test->ton_npi);
g_assert(g_str_equal(command->number, test->number));
}
/* Defined in TS 102.223 Section 8.2 */
static inline void check_alpha_id(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.3 */
static void check_subaddress(const struct stk_subaddress *command,
const struct stk_subaddress *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(g_mem_equal(command->subaddr, test->subaddr, test->len));
}
/* Defined in TS 102.223 Section 8.4 */
static void check_ccp(const struct stk_ccp *command,
const struct stk_ccp *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(g_mem_equal(command->ccp, test->ccp, test->len));
}
/* Defined in TS 102.223 Section 8.8 */
static void check_duration(const struct stk_duration *command,
const struct stk_duration *test)
{
g_assert(command->unit == test->unit);
g_assert(command->interval == test->interval);
}
/* Defined in TS 102.223 Section 8.9 */
static void check_item(const struct stk_item *command,
const struct stk_item *test)
{
g_assert(command->id == test->id);
if (command->text == NULL)
g_assert(test->text == NULL);
else
g_assert(g_str_equal(command->text, test->text));
}
/* Defined in TS 102.223 Section 8.10 */
static inline void check_item_id(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
static void check_items(GSList *command, const struct stk_item *test)
{
struct stk_item *si;
GSList *l;
unsigned int i = 0;
for (l = command; l; l = l->next) {
si = l->data;
check_item(si, &test[i++]);
}
g_assert(test[i].id == 0);
}
/* Defined in TS 102.223 Section 8.11 */
static void check_response_length(const struct stk_response_length *command,
const struct stk_response_length *test)
{
g_assert(command->min == test->min);
g_assert(command->max == test->max);
}
/* Defined in TS 102.223 Section 8.13 */
static void check_gsm_sms_tpdu(const struct sms *command,
const struct sms *test)
{
g_assert(command->submit.mr == test->submit.mr);
g_assert(command->submit.udl == test->submit.udl);
g_assert(g_str_equal(command->submit.daddr.address,
test->submit.daddr.address));
g_assert(g_mem_equal(command->submit.ud, test->submit.ud,
test->submit.udl));
}
/* Defined in TS 102.223 Section 8.15 */
static inline void check_text(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.16 */
static inline void check_tone(const ofono_bool_t command,
const ofono_bool_t test)
{
check_common_bool(command, test);
}
/* Defined in TS 102.223 Section 8.18 */
static void check_file_list(GSList *command, const struct stk_file *test)
{
struct stk_file *sf;
GSList *l;
unsigned int i = 0;
for (l = command; l; l = l->next) {
sf = l->data;
g_assert(sf->len == test[i].len);
g_assert(g_mem_equal(sf->file, test[i++].file, sf->len));
}
g_assert(test[i].len == 0);
}
/* Defined in TS 102.223 Section 8.23 */
static inline void check_default_text(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.24 */
static void check_items_next_action_indicator(
const struct stk_items_next_action_indicator *command,
const struct stk_items_next_action_indicator *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.25 */
static void check_event_list(const struct stk_event_list *command,
const struct stk_event_list *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.31 */
static void check_icon_id(const struct stk_icon_id *command,
const struct stk_icon_id *test)
{
g_assert(command->id == test->id);
g_assert(command->qualifier == test->qualifier);
}
/* Defined in TS 102.223 Section 8.32 */
static void check_item_icon_id_list(const struct stk_item_icon_id_list *command,
const struct stk_item_icon_id_list *test)
{
g_assert(command->qualifier == test->qualifier);
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.35 */
static void check_c_apdu(const struct stk_c_apdu *command,
const struct stk_c_apdu *test)
{
g_assert(command->cla == test->cla);
g_assert(command->ins == test->ins);
g_assert(command->p1 == test->p1);
g_assert(command->p2 == test->p2);
g_assert(command->lc == test->lc);
g_assert(g_mem_equal(command->data, test->data, test->lc));
if (test->has_le)
g_assert(command->le == test->le);
}
/* Defined in TS 102.223 Section 8.37 */
static inline void check_timer_id(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
/* Defined in TS 102.223 Section 8.38 */
static inline void check_timer_value(const struct stk_timer_value *command,
const struct stk_timer_value *test)
{
g_assert(command->hour == test->hour);
g_assert(command->minute == test->minute);
g_assert(command->second == test->second);
}
/* Defined in TS 102.223 Section 8.43 */
static inline void check_imm_resp(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
/* Defined in TS 102.223 Section 8.60 */
static inline void check_aid(const struct stk_aid *command,
const struct stk_aid *test)
{
g_assert(g_mem_equal(command->aid, test->aid, test->len));
}
/* Defined in TS 102.223 Section 8.71 */
static inline void check_cdma_sms_tpdu(
const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
check_common_byte_array(command, test);
}
/* Defined in TS 102.223 Section 8.72 */
static void check_text_attr(const struct stk_text_attribute *command,
const struct stk_text_attribute *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->attributes, test->attributes, test->len));
}
/* Defined in TS 102.223 Section 8.73 */
static void check_item_text_attribute_list(
const struct stk_item_text_attribute_list *command,
const struct stk_item_text_attribute_list *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.80 */
static void check_frame_id(const struct stk_frame_id *command,
const struct stk_frame_id *test)
{
g_assert(command->has_id == test->has_id);
if (test->has_id)
g_assert(command->id == test->id);
}
struct display_text_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
const char *text;
struct stk_icon_id icon_id;
ofono_bool_t immediate_response;
struct stk_duration duration;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
unsigned char display_text_111[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0F,
0x04, 0x54, 0x6F, 0x6F, 0x6C, 0x6B,
0x69, 0x74, 0x20, 0x54, 0x65, 0x73,
0x74, 0x20, 0x31 };
unsigned char display_text_131[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x81,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0F,
0x04, 0x54, 0x6F, 0x6F, 0x6C, 0x6B,
0x69, 0x74, 0x20, 0x54, 0x65, 0x73,
0x74, 0x20, 0x32 };
unsigned char display_text_141[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0E,
0x00, 0xD4, 0xF7, 0x9B, 0xBD, 0x4E,
0xD3, 0x41, 0xD4, 0xF2, 0x9C, 0x0E,
0x9A, 0x01 };
unsigned char display_text_151[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x00,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0F,
0x04, 0x54, 0x6F, 0x6F, 0x6C, 0x6B,
0x69, 0x74, 0x20, 0x54, 0x65, 0x73,
0x74, 0x20, 0x34 };
unsigned char display_text_161[] = { 0xD0, 0x81, 0xAD, 0x81, 0x03, 0x01, 0x21,
0x80, 0x82, 0x02, 0x81, 0x02, 0x8D,
0x81, 0xA1, 0x04, 0x54, 0x68, 0x69,
0x73, 0x20, 0x63, 0x6F, 0x6D, 0x6D,
0x61, 0x6E, 0x64, 0x20, 0x69, 0x6E,
0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
0x73, 0x20, 0x74, 0x68, 0x65, 0x20,
0x4D, 0x45, 0x20, 0x74, 0x6F, 0x20,
0x64, 0x69, 0x73, 0x70, 0x6C, 0x61,
0x79, 0x20, 0x61, 0x20, 0x74, 0x65,
0x78, 0x74, 0x20, 0x6D, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x2E, 0x20,
0x49, 0x74, 0x20, 0x61, 0x6C, 0x6C,
0x6F, 0x77, 0x73, 0x20, 0x74, 0x68,
0x65, 0x20, 0x53, 0x49, 0x4D, 0x20,
0x74, 0x6F, 0x20, 0x64, 0x65, 0x66,
0x69, 0x6E, 0x65, 0x20, 0x74, 0x68,
0x65, 0x20, 0x70, 0x72, 0x69, 0x6F,
0x72, 0x69, 0x74, 0x79, 0x20, 0x6F,
0x66, 0x20, 0x74, 0x68, 0x61, 0x74,
0x20, 0x6D, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x2C, 0x20, 0x61, 0x6E,
0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
0x74, 0x65, 0x78, 0x74, 0x20, 0x73,
0x74, 0x72, 0x69, 0x6E, 0x67, 0x20,
0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74,
0x2E, 0x20, 0x54, 0x77, 0x6F, 0x20,
0x74, 0x79, 0x70, 0x65, 0x73, 0x20,
0x6F, 0x66, 0x20, 0x70, 0x72, 0x69,
0x6F };
unsigned char display_text_171[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0F,
0x04, 0x3C, 0x47, 0x4F, 0x2D, 0x42,
0x41, 0x43, 0x4B, 0x57, 0x41, 0x52,
0x44, 0x53, 0x3E };
2010-03-01 21:16:01 +00:00
unsigned char display_text_511[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0B,
0x04, 0x42, 0x61, 0x73, 0x69, 0x63,
0x20, 0x49, 0x63, 0x6F, 0x6E, 0x9E,
0x02, 0x00, 0x01 };
unsigned char display_text_521[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0C,
0x04, 0x43, 0x6F, 0x6C, 0x6F, 0x75,
0x72, 0x20, 0x49, 0x63, 0x6F, 0x6E,
0x9E, 0x02, 0x00, 0x02 };
unsigned char display_text_531[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0B,
0x04, 0x42, 0x61, 0x73, 0x69, 0x63,
0x20, 0x49, 0x63, 0x6F, 0x6E, 0x9E,
0x02, 0x01, 0x01 };
unsigned char display_text_611[] = { 0xD0, 0x24, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x19,
0x08, 0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22, 0x04,
0x15 };
2010-03-01 22:03:06 +00:00
unsigned char display_text_711[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x0A,
0x04, 0x31, 0x30, 0x20, 0x53, 0x65,
0x63, 0x6F, 0x6E, 0x64, 0x84, 0x02,
0x01, 0x0A };
unsigned char display_text_911[] = { 0xD0, 0x10, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x05,
0x08, 0x4F, 0x60, 0x59, 0x7D };
unsigned char display_text_1011[] = { 0xD0, 0x12, 0x81, 0x03, 0x01, 0x21, 0x80,
0x82, 0x02, 0x81, 0x02, 0x8D, 0x07,
0x08, 0x00, 0x38, 0x00, 0x30, 0x30,
0xEB };
static struct display_text_test display_text_data_111 = {
.pdu = display_text_111,
.pdu_len = sizeof(display_text_111),
.qualifier = 0x80,
.text = "Toolkit Test 1"
};
static struct display_text_test display_text_data_131 = {
.pdu = display_text_131,
.pdu_len = sizeof(display_text_131),
.qualifier = 0x81,
.text = "Toolkit Test 2"
};
static struct display_text_test display_text_data_141 = {
.pdu = display_text_141,
.pdu_len = sizeof(display_text_141),
.qualifier = 0x80,
.text = "Toolkit Test 3"
};
static struct display_text_test display_text_data_151 = {
.pdu = display_text_151,
.pdu_len = sizeof(display_text_151),
.qualifier = 0x00,
.text = "Toolkit Test 4"
};
static struct display_text_test display_text_data_161 = {
.pdu = display_text_161,
.pdu_len = sizeof(display_text_161),
.qualifier = 0x80,
.text = "This command instructs the ME to display a text message. "
"It allows the SIM to define the priority of that "
"message, and the text string format. Two types of "
"prio"
};
static struct display_text_test display_text_data_171 = {
.pdu = display_text_171,
.pdu_len = sizeof(display_text_171),
.qualifier = 0x80,
.text = "<GO-BACKWARDS>"
};
2010-03-01 21:16:01 +00:00
static struct display_text_test display_text_data_511 = {
.pdu = display_text_511,
.pdu_len = sizeof(display_text_511),
.qualifier = 0x80,
.text = "Basic Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_521 = {
.pdu = display_text_521,
.pdu_len = sizeof(display_text_521),
.qualifier = 0x80,
.text = "Colour Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_531 = {
.pdu = display_text_531,
.pdu_len = sizeof(display_text_531),
.qualifier = 0x80,
.text = "Basic Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_611 = {
.pdu = display_text_611,
.pdu_len = sizeof(display_text_611),
.qualifier = 0x80,
.text = "ЗДРАВСТВУЙТЕ"
};
2010-03-01 22:03:06 +00:00
static struct display_text_test display_text_data_711 = {
.pdu = display_text_711,
.pdu_len = sizeof(display_text_711),
.qualifier = 0x80,
.text = "10 Second",
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10,
}
2010-03-01 22:03:06 +00:00
};
static struct display_text_test display_text_data_911 = {
.pdu = display_text_911,
.pdu_len = sizeof(display_text_911),
.qualifier = 0x80,
.text = "你好"
};
static struct display_text_test display_text_data_1011 = {
.pdu = display_text_1011,
.pdu_len = sizeof(display_text_1011),
.qualifier = 0x80,
.text = "80ル"
};
/* Defined in TS 102.384 Section 27.22.4.1 */
static void test_display_text(gconstpointer data)
{
const struct display_text_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_DISPLAY_TEXT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_DISPLAY);
g_assert(command->display_text.text);
check_text(command->display_text.text, test->text);
check_icon_id(&command->display_text.icon_id, &test->icon_id);
check_imm_resp(command->display_text.immediate_response,
test->immediate_response);
check_duration(&command->display_text.duration, &test->duration);
check_text_attr(&command->display_text.text_attr,
&test->text_attr);
check_frame_id(&command->display_text.frame_id, &test->frame_id);
2010-03-01 22:03:06 +00:00
stk_command_free(command);
}
2010-04-28 12:39:34 +00:00
struct get_inkey_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *text;
struct stk_icon_id icon_id;
struct stk_duration duration;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char get_inkey_111[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22 };
static unsigned char get_inkey_121[] = { 0xD0, 0x14, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x09, 0x00, 0x45, 0x37,
0xBD, 0x2C, 0x07, 0x89, 0x60,
0x22 };
static unsigned char get_inkey_131[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0F, 0x04, 0x3C, 0x47,
0x4F, 0x2D, 0x42, 0x41, 0x43,
0x4B, 0x57, 0x41, 0x52, 0x44,
0x53, 0x3E };
static unsigned char get_inkey_141[] = { 0xD0, 0x13, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x08, 0x04, 0x3C, 0x41,
0x42, 0x4F, 0x52, 0x54, 0x3E };
static unsigned char get_inkey_151[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x01, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x71, 0x22 };
static unsigned char get_inkey_161[] = { 0xD0, 0x81, 0xAD, 0x81, 0x03, 0x01,
0x22, 0x01, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0xA1, 0x04,
0x45, 0x6E, 0x74, 0x65, 0x72,
0x20, 0x22, 0x78, 0x22, 0x2E,
0x20, 0x54, 0x68, 0x69, 0x73,
0x20, 0x63, 0x6F, 0x6D, 0x6D,
0x61, 0x6E, 0x64, 0x20, 0x69,
0x6E, 0x73, 0x74, 0x72, 0x75,
0x63, 0x74, 0x73, 0x20, 0x74,
0x68, 0x65, 0x20, 0x4D, 0x45,
0x20, 0x74, 0x6F, 0x20, 0x64,
0x69, 0x73, 0x70, 0x6C, 0x61,
0x79, 0x20, 0x74, 0x65, 0x78,
0x74, 0x2C, 0x20, 0x61, 0x6E,
0x64, 0x20, 0x74, 0x6F, 0x20,
0x65, 0x78, 0x70, 0x65, 0x63,
0x74, 0x20, 0x74, 0x68, 0x65,
0x20, 0x75, 0x73, 0x65, 0x72,
0x20, 0x74, 0x6F, 0x20, 0x65,
0x6E, 0x74, 0x65, 0x72, 0x20,
0x61, 0x20, 0x73, 0x69, 0x6E,
0x67, 0x6C, 0x65, 0x20, 0x63,
0x68, 0x61, 0x72, 0x61, 0x63,
0x74, 0x65, 0x72, 0x2E, 0x20,
0x41, 0x6E, 0x79, 0x20, 0x72,
0x65, 0x73, 0x70, 0x6F, 0x6E,
0x73, 0x65, 0x20, 0x65, 0x6E,
0x74, 0x65, 0x72, 0x65, 0x64,
0x20, 0x62, 0x79, 0x20, 0x74,
0x68, 0x65, 0x20, 0x75, 0x73,
0x65, 0x72, 0x20, 0x73, 0x68,
0x61, 0x6C, 0x6C, 0x20, 0x62,
0x65, 0x20, 0x70, 0x61, 0x73,
0x73, 0x65, 0x64, 0x20, 0x74 };
static unsigned char get_inkey_211[] = { 0xD0, 0x16, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0B, 0x04, 0x3C, 0x54,
0x49, 0x4D, 0x45, 0x2D, 0x4F,
0x55, 0x54, 0x3E };
static unsigned char get_inkey_311[] = { 0xD0, 0x24, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x19, 0x08, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15 };
static unsigned char get_inkey_321[] = { 0xD0, 0x81, 0x99, 0x81, 0x03, 0x01,
0x22, 0x00, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12,
0x04, 0x21, 0x04, 0x22, 0x04,
0x12, 0x04, 0x23, 0x04, 0x19,
0x04, 0x22, 0x04, 0x15, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12,
0x04, 0x21, 0x04, 0x22, 0x04,
0x12, 0x04, 0x23, 0x04, 0x19 };
static unsigned char get_inkey_411[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x22,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x06, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72 };
static unsigned char get_inkey_511[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x04, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x59,
0x45, 0x53 };
static unsigned char get_inkey_512[] = { 0xD0, 0x14, 0x81, 0x03, 0x01, 0x22,
0x04, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x09, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x4E,
0x4F };
static unsigned char get_inkey_611[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x3C, 0x4E,
0x4F, 0x2D, 0x49, 0x43, 0x4F,
0x4E, 0x3E, 0x1E, 0x02, 0x00,
0x01 };
static unsigned char get_inkey_621[] = { 0xD0, 0x1C, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0D, 0x04, 0x3C, 0x42,
0x41, 0x53, 0x49, 0x43, 0x2D,
0x49, 0x43, 0x4F, 0x4E, 0x3E,
0x1E, 0x02, 0x01, 0x01 };
static unsigned char get_inkey_631[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x3C, 0x4E,
0x4F, 0x2D, 0x49, 0x43, 0x4F,
0x4E, 0x3E, 0x1E, 0x02, 0x00,
0x02 };
static unsigned char get_inkey_641[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0E, 0x04, 0x3C, 0x43,
0x4F, 0x4C, 0x4F, 0x55, 0x52,
0x2D, 0x49, 0x43, 0x4F, 0x4E,
0x3E, 0x1E, 0x02, 0x01, 0x02 };
static unsigned char get_inkey_711[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22 };
static unsigned char get_inkey_712[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22 };
static unsigned char get_inkey_811[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0x84, 0x02, 0x01,
0x0A };
static unsigned char get_inkey_911[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_912[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_921[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x01, 0xB4 };
static unsigned char get_inkey_922[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_931[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x02, 0xB4 };
static unsigned char get_inkey_932[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_941[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x04, 0xB4 };
static unsigned char get_inkey_942[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_943[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_951[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x08, 0xB4 };
static unsigned char get_inkey_952[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_953[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_961[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x10, 0xB4 };
static unsigned char get_inkey_962[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_963[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_971[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x20, 0xB4 };
static unsigned char get_inkey_972[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_973[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_981[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x40, 0xB4 };
static unsigned char get_inkey_982[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_983[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_991[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x80, 0xB4 };
static unsigned char get_inkey_992a[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_992b[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_993[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_9101[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_9102[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_1011[] = { 0xD0, 0x10, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x05, 0x08, 0x4F, 0x60,
0x59, 0x7D };
static unsigned char get_inkey_1021[] = { 0xD0, 0x81, 0x99, 0x81, 0x03, 0x01,
0x22, 0x00, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D };
static unsigned char get_inkey_1111[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x22,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x06, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72 };
static unsigned char get_inkey_1211[] = { 0xD0, 0x0E, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x03, 0x08, 0x30, 0xEB };
static unsigned char get_inkey_1221[] = { 0xD0, 0x81, 0x99, 0x81, 0x03, 0x01,
0x22, 0x00, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB };
static unsigned char get_inkey_1311[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x22,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x06, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72 };
static struct get_inkey_test get_inkey_data_111 = {
.pdu = get_inkey_111,
.pdu_len = sizeof(get_inkey_111),
.qualifier = 0x00,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_121 = {
.pdu = get_inkey_121,
.pdu_len = sizeof(get_inkey_121),
.qualifier = 0x00,
.text = "Enter \"0\""
};
static struct get_inkey_test get_inkey_data_131 = {
.pdu = get_inkey_131,
.pdu_len = sizeof(get_inkey_131),
.qualifier = 0x00,
.text = "<GO-BACKWARDS>"
};
static struct get_inkey_test get_inkey_data_141 = {
.pdu = get_inkey_141,
.pdu_len = sizeof(get_inkey_141),
.qualifier = 0x00,
.text = "<ABORT>"
};
static struct get_inkey_test get_inkey_data_151 = {
.pdu = get_inkey_151,
.pdu_len = sizeof(get_inkey_151),
.qualifier = 0x01,
.text = "Enter \"q\""
};
static struct get_inkey_test get_inkey_data_161 = {
.pdu = get_inkey_161,
.pdu_len = sizeof(get_inkey_161),
.qualifier = 0x01,
.text = "Enter \"x\". This command instructs the ME to display text, "
"and to expect the user to enter a single character. Any "
"response entered by the user shall be passed t"
};
static struct get_inkey_test get_inkey_data_211 = {
.pdu = get_inkey_211,
.pdu_len = sizeof(get_inkey_211),
.qualifier = 0x00,
.text = "<TIME-OUT>"
};
static struct get_inkey_test get_inkey_data_311 = {
.pdu = get_inkey_311,
.pdu_len = sizeof(get_inkey_311),
.qualifier = 0x00,
.text = "ЗДРАВСТВУЙТЕ"
};
static struct get_inkey_test get_inkey_data_321 = {
.pdu = get_inkey_321,
.pdu_len = sizeof(get_inkey_321),
.qualifier = 0x00,
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ"
};
static struct get_inkey_test get_inkey_data_411 = {
.pdu = get_inkey_411,
.pdu_len = sizeof(get_inkey_411),
.qualifier = 0x03,
.text = "Enter"
};
static struct get_inkey_test get_inkey_data_511 = {
.pdu = get_inkey_511,
.pdu_len = sizeof(get_inkey_511),
.qualifier = 0x04,
.text = "Enter YES"
};
static struct get_inkey_test get_inkey_data_512 = {
.pdu = get_inkey_512,
.pdu_len = sizeof(get_inkey_512),
.qualifier = 0x04,
.text = "Enter NO"
};
static struct get_inkey_test get_inkey_data_611 = {
.pdu = get_inkey_611,
.pdu_len = sizeof(get_inkey_611),
.qualifier = 0x00,
.text = "<NO-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_inkey_test get_inkey_data_621 = {
.pdu = get_inkey_621,
.pdu_len = sizeof(get_inkey_621),
.qualifier = 0x00,
.text = "<BASIC-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_inkey_test get_inkey_data_631 = {
.pdu = get_inkey_631,
.pdu_len = sizeof(get_inkey_631),
.qualifier = 0x00,
.text = "<NO-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_inkey_test get_inkey_data_641 = {
.pdu = get_inkey_641,
.pdu_len = sizeof(get_inkey_641),
.qualifier = 0x00,
.text = "<COLOUR-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_inkey_test get_inkey_data_711 = {
.pdu = get_inkey_711,
.pdu_len = sizeof(get_inkey_711),
.qualifier = 0x80,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_712 = {
.pdu = get_inkey_712,
.pdu_len = sizeof(get_inkey_712),
.qualifier = 0x80,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_811 = {
.pdu = get_inkey_811,
.pdu_len = sizeof(get_inkey_811),
.qualifier = 0x00,
.text = "Enter \"+\"",
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10
}
};
static struct get_inkey_test get_inkey_data_911 = {
.pdu = get_inkey_911,
.pdu_len = sizeof(get_inkey_911),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_912 = {
.pdu = get_inkey_912,
.pdu_len = sizeof(get_inkey_912),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_921 = {
.pdu = get_inkey_921,
.pdu_len = sizeof(get_inkey_921),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x01, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_922 = {
.pdu = get_inkey_922,
.pdu_len = sizeof(get_inkey_922),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_931 = {
.pdu = get_inkey_931,
.pdu_len = sizeof(get_inkey_931),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x02, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_932 = {
.pdu = get_inkey_932,
.pdu_len = sizeof(get_inkey_932),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_941 = {
.pdu = get_inkey_941,
.pdu_len = sizeof(get_inkey_941),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x04, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_942 = {
.pdu = get_inkey_942,
.pdu_len = sizeof(get_inkey_942),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_943 = {
.pdu = get_inkey_943,
.pdu_len = sizeof(get_inkey_943),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_951 = {
.pdu = get_inkey_951,
.pdu_len = sizeof(get_inkey_951),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x08, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_952 = {
.pdu = get_inkey_952,
.pdu_len = sizeof(get_inkey_952),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_953 = {
.pdu = get_inkey_953,
.pdu_len = sizeof(get_inkey_953),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_961 = {
.pdu = get_inkey_961,
.pdu_len = sizeof(get_inkey_961),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x10, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_962 = {
.pdu = get_inkey_962,
.pdu_len = sizeof(get_inkey_962),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_963 = {
.pdu = get_inkey_963,
.pdu_len = sizeof(get_inkey_963),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_971 = {
.pdu = get_inkey_971,
.pdu_len = sizeof(get_inkey_971),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x20, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_972 = {
.pdu = get_inkey_972,
.pdu_len = sizeof(get_inkey_972),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_973 = {
.pdu = get_inkey_973,
.pdu_len = sizeof(get_inkey_973),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_981 = {
.pdu = get_inkey_981,
.pdu_len = sizeof(get_inkey_981),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x40, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_982 = {
.pdu = get_inkey_982,
.pdu_len = sizeof(get_inkey_982),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_983 = {
.pdu = get_inkey_983,
.pdu_len = sizeof(get_inkey_983),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_991 = {
.pdu = get_inkey_991,
.pdu_len = sizeof(get_inkey_991),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x80, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_992a = {
.pdu = get_inkey_992a,
.pdu_len = sizeof(get_inkey_992a),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_992b = {
.pdu = get_inkey_992b,
.pdu_len = sizeof(get_inkey_992b),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_993 = {
.pdu = get_inkey_993,
.pdu_len = sizeof(get_inkey_993),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_9101 = {
.pdu = get_inkey_9101,
.pdu_len = sizeof(get_inkey_9101),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
}
};
static struct get_inkey_test get_inkey_data_9102 = {
.pdu = get_inkey_9102,
.pdu_len = sizeof(get_inkey_9102),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_1011 = {
.pdu = get_inkey_1011,
.pdu_len = sizeof(get_inkey_1011),
.qualifier = 0x00,
.text = "你好"
};
static struct get_inkey_test get_inkey_data_1021 = {
.pdu = get_inkey_1021,
.pdu_len = sizeof(get_inkey_1021),
.qualifier = 0x00,
.text = "你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好"
};
static struct get_inkey_test get_inkey_data_1111 = {
.pdu = get_inkey_1111,
.pdu_len = sizeof(get_inkey_1111),
.qualifier = 0x03,
.text = "Enter"
};
static struct get_inkey_test get_inkey_data_1211 = {
.pdu = get_inkey_1211,
.pdu_len = sizeof(get_inkey_1211),
.qualifier = 0x00,
.text = ""
};
static struct get_inkey_test get_inkey_data_1221 = {
.pdu = get_inkey_1221,
.pdu_len = sizeof(get_inkey_1221),
.qualifier = 0x00,
.text = "ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルル"
};
static struct get_inkey_test get_inkey_data_1311 = {
.pdu = get_inkey_1311,
.pdu_len = sizeof(get_inkey_1311),
.qualifier = 0x03,
.text = "Enter"
};
/* Defined in TS 102.384 Section 27.22.4.2 */
static void test_get_inkey(gconstpointer data)
{
const struct get_inkey_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_INKEY);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
g_assert(command->get_inkey.text);
check_text(command->get_inkey.text, test->text);
2010-04-28 12:39:34 +00:00
check_icon_id(&command->get_inkey.icon_id, &test->icon_id);
check_duration(&command->get_inkey.duration, &test->duration);
check_text_attr(&command->get_inkey.text_attr,
&test->text_attr);
check_frame_id(&command->get_inkey.frame_id, &test->frame_id);
stk_command_free(command);
}
struct get_input_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *text;
struct stk_response_length resp_len;
char *default_text;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char get_input_111[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_121[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x23,
0x08, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0B, 0x00, 0x45, 0x37,
0xBD, 0x2C, 0x07, 0xD9, 0x6E,
0xAA, 0xD1, 0x0A, 0x91, 0x02,
0x05, 0x05 };
static unsigned char get_input_131[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x01, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x41,
0x62, 0x43, 0x64, 0x45, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_141[] = { 0xD0, 0x27, 0x81, 0x03, 0x01, 0x23,
0x04, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x18, 0x04, 0x50, 0x61,
0x73, 0x73, 0x77, 0x6F, 0x72,
0x64, 0x20, 0x31, 0x3C, 0x53,
0x45, 0x4E, 0x44, 0x3E, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x91, 0x02, 0x04, 0x08 };
static unsigned char get_input_151[] = { 0xD0, 0x24, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x15, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x2E, 0x2E, 0x39, 0x2C, 0x30,
0x2E, 0x2E, 0x39, 0x2C, 0x30,
0x28, 0x31, 0x29, 0x91, 0x02,
0x01, 0x14 };
static unsigned char get_input_161[] = { 0xD0, 0x1E, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0F, 0x04, 0x3C, 0x47,
0x4F, 0x2D, 0x42, 0x41, 0x43,
0x4B, 0x57, 0x41, 0x52, 0x44,
0x53, 0x3E, 0x91, 0x02, 0x00,
0x08 };
static unsigned char get_input_171[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x08, 0x04, 0x3C, 0x41,
0x42, 0x4F, 0x52, 0x54, 0x3E,
0x91, 0x02, 0x00, 0x08 };
static unsigned char get_input_181[] = { 0xD0, 0x81, 0xB1, 0x81, 0x03, 0x01,
0x23, 0x00, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0xA1, 0x04,
0x2A, 0x2A, 0x2A, 0x31, 0x31,
0x31, 0x31, 0x31, 0x31, 0x31,
0x31, 0x31, 0x31, 0x23, 0x23,
0x23, 0x2A, 0x2A, 0x2A, 0x32,
0x32, 0x32, 0x32, 0x32, 0x32,
0x32, 0x32, 0x32, 0x32, 0x23,
0x23, 0x23, 0x2A, 0x2A, 0x2A,
0x33, 0x33, 0x33, 0x33, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33,
0x23, 0x23, 0x23, 0x2A, 0x2A,
0x2A, 0x34, 0x34, 0x34, 0x34,
0x34, 0x34, 0x34, 0x34, 0x34,
0x34, 0x23, 0x23, 0x23, 0x2A,
0x2A, 0x2A, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x23, 0x23, 0x23,
0x2A, 0x2A, 0x2A, 0x36, 0x36,
0x36, 0x36, 0x36, 0x36, 0x36,
0x36, 0x36, 0x36, 0x23, 0x23,
0x23, 0x2A, 0x2A, 0x2A, 0x37,
0x37, 0x37, 0x37, 0x37, 0x37,
0x37, 0x37, 0x37, 0x37, 0x23,
0x23, 0x23, 0x2A, 0x2A, 0x2A,
0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38,
0x23, 0x23, 0x23, 0x2A, 0x2A,
0x2A, 0x39, 0x39, 0x39, 0x39,
0x39, 0x39, 0x39, 0x39, 0x39,
0x39, 0x23, 0x23, 0x23, 0x2A,
0x2A, 0x2A, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x23, 0x23, 0x23,
0x91, 0x02, 0xA0, 0xA0 };
static unsigned char get_input_191[] = { 0xD0, 0x16, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x07, 0x04, 0x3C, 0x53,
0x45, 0x4E, 0x44, 0x3E, 0x91,
0x02, 0x00, 0x01 };
static unsigned char get_input_1101[] = { 0xD0, 0x0F, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x00, 0x91, 0x02, 0x01,
0x05 };
static unsigned char get_input_211[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0B, 0x04, 0x3C, 0x54,
0x49, 0x4D, 0x45, 0x2D, 0x4F,
0x55, 0x54, 0x3E, 0x91, 0x02,
0x00, 0x0A };
static unsigned char get_input_311[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x23,
0x01, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x19, 0x08, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x91, 0x02, 0x05,
0x05 };
static unsigned char get_input_321[] = { 0xD0, 0x81, 0x9D, 0x81, 0x03, 0x01,
0x23, 0x01, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12,
0x04, 0x21, 0x04, 0x22, 0x04,
0x12, 0x04, 0x23, 0x04, 0x19,
0x04, 0x22, 0x04, 0x15, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12,
0x04, 0x21, 0x04, 0x22, 0x04,
0x12, 0x04, 0x23, 0x04, 0x19,
0x91, 0x02, 0x05, 0x05 };
static unsigned char get_input_411[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x0C, 0x0C };
static unsigned char get_input_421[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x05, 0xFF };
static unsigned char get_input_511[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0x17, 0x06,
0x04, 0x31, 0x32, 0x33, 0x34,
0x35 };
static unsigned char get_input_521[] = { 0xD0, 0x81, 0xBA, 0x81, 0x03, 0x01,
0x23, 0x00, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x07, 0x04, 0x45,
0x6E, 0x74, 0x65, 0x72, 0x3A,
0x91, 0x02, 0xA0, 0xA0, 0x17,
0x81, 0xA1, 0x04, 0x2A, 0x2A,
0x2A, 0x31, 0x31, 0x31, 0x31,
0x31, 0x31, 0x31, 0x31, 0x31,
0x31, 0x23, 0x23, 0x23, 0x2A,
0x2A, 0x2A, 0x32, 0x32, 0x32,
0x32, 0x32, 0x32, 0x32, 0x32,
0x32, 0x32, 0x23, 0x23, 0x23,
0x2A, 0x2A, 0x2A, 0x33, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33,
0x33, 0x33, 0x33, 0x23, 0x23,
0x23, 0x2A, 0x2A, 0x2A, 0x34,
0x34, 0x34, 0x34, 0x34, 0x34,
0x34, 0x34, 0x34, 0x34, 0x23,
0x23, 0x23, 0x2A, 0x2A, 0x2A,
0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35,
0x23, 0x23, 0x23, 0x2A, 0x2A,
0x2A, 0x36, 0x36, 0x36, 0x36,
0x36, 0x36, 0x36, 0x36, 0x36,
0x36, 0x23, 0x23, 0x23, 0x2A,
0x2A, 0x2A, 0x37, 0x37, 0x37,
0x37, 0x37, 0x37, 0x37, 0x37,
0x37, 0x37, 0x23, 0x23, 0x23,
0x2A, 0x2A, 0x2A, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x23, 0x23,
0x23, 0x2A, 0x2A, 0x2A, 0x39,
0x39, 0x39, 0x39, 0x39, 0x39,
0x39, 0x39, 0x39, 0x39, 0x23,
0x23, 0x23, 0x2A, 0x2A, 0x2A,
0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30,
0x23, 0x23, 0x23 };
static unsigned char get_input_611[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x3C, 0x4E,
0x4F, 0x2D, 0x49, 0x43, 0x4F,
0x4E, 0x3E, 0x91, 0x02, 0x00,
0x0A, 0x1E, 0x02, 0x00, 0x01 };
static unsigned char get_input_621[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0D, 0x04, 0x3C, 0x42,
0x41, 0x53, 0x49, 0x43, 0x2D,
0x49, 0x43, 0x4F, 0x4E, 0x3E,
0x91, 0x02, 0x00, 0x0A, 0x1E,
0x02, 0x01, 0x01 };
static unsigned char get_input_631[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x3C, 0x4E,
0x4F, 0x2D, 0x49, 0x43, 0x4F,
0x4E, 0x3E, 0x91, 0x02, 0x00,
0x0A, 0x1E, 0x02, 0x00, 0x02 };
static unsigned char get_input_641[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0E, 0x04, 0x3C, 0x43,
0x4F, 0x4C, 0x4F, 0x55, 0x52,
0x2D, 0x49, 0x43, 0x4F, 0x4E,
0x3E, 0x91, 0x02, 0x00, 0x0A,
0x1E, 0x02, 0x01, 0x02 };
static unsigned char get_input_711[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_811[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_812[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_821[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x01, 0xB4 };
static unsigned char get_input_822[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_831[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x02, 0xB4 };
static unsigned char get_input_832[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_841[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x04, 0xB4 };
static unsigned char get_input_842[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_843[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_851[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x08, 0xB4 };
static unsigned char get_input_852[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_853[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_861[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x10, 0xB4 };
static unsigned char get_input_862[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_863[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_871[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x20, 0xB4 };
static unsigned char get_input_872[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_873[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_881[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x40, 0xB4 };
static unsigned char get_input_882[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_883[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_891[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x80, 0xB4 };
static unsigned char get_input_892[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_893[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_8101[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_8102[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_911[] = { 0xD0, 0x14, 0x81, 0x03, 0x01, 0x23,
0x01, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x05, 0x08, 0x4F, 0x60,
0x59, 0x7D, 0x91, 0x02, 0x05,
0x05 };
static unsigned char get_input_921[] = { 0xD0, 0x81, 0x9D, 0x81, 0x03, 0x01,
0x23, 0x01, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x4F, 0x60, 0x59, 0x7D, 0x4F,
0x60, 0x59, 0x7D, 0x4F, 0x60,
0x59, 0x7D, 0x4F, 0x60, 0x59,
0x7D, 0x4F, 0x60, 0x59, 0x7D,
0x91, 0x02, 0x05, 0x05 };
static unsigned char get_input_1011[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x02, 0x02 };
static unsigned char get_input_1021[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x05, 0xFF };
static unsigned char get_input_1111[] = { 0xD0, 0x12, 0x81, 0x03, 0x01, 0x23,
0x01, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x03, 0x08, 0x30, 0xEB,
0x91, 0x02, 0x05, 0x05 };
static unsigned char get_input_1121[] = { 0xD0, 0x81, 0x9D, 0x81, 0x03, 0x01,
0x23, 0x01, 0x82, 0x02, 0x81,
0x82, 0x8D, 0x81, 0x8D, 0x08,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x30, 0xEB, 0x30, 0xEB, 0x30,
0xEB, 0x30, 0xEB, 0x30, 0xEB,
0x91, 0x02, 0x05, 0x05 };
static unsigned char get_input_1211[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x02, 0x02 };
static unsigned char get_input_1221[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x03, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x48,
0x65, 0x6C, 0x6C, 0x6F, 0x91,
0x02, 0x05, 0xFF };
static struct get_input_test get_input_data_111 = {
.pdu = get_input_111,
.pdu_len = sizeof(get_input_111),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_121 = {
.pdu = get_input_121,
.pdu_len = sizeof(get_input_121),
.qualifier = 0x08,
.text = "Enter 67*#+",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_131 = {
.pdu = get_input_131,
.pdu_len = sizeof(get_input_131),
.qualifier = 0x01,
.text = "Enter AbCdE",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_141 = {
.pdu = get_input_141,
.pdu_len = sizeof(get_input_141),
.qualifier = 0x04,
.text = "Password 1<SEND>2345678",
.resp_len = {
.min = 4,
.max = 8
}
};
static struct get_input_test get_input_data_151 = {
.pdu = get_input_151,
.pdu_len = sizeof(get_input_151),
.qualifier = 0x00,
.text = "Enter 1..9,0..9,0(1)",
.resp_len = {
.min = 1,
.max = 20
}
};
static struct get_input_test get_input_data_161 = {
.pdu = get_input_161,
.pdu_len = sizeof(get_input_161),
.qualifier = 0x00,
.text = "<GO-BACKWARDS>",
.resp_len = {
.min = 0,
.max = 8
}
};
static struct get_input_test get_input_data_171 = {
.pdu = get_input_171,
.pdu_len = sizeof(get_input_171),
.qualifier = 0x00,
.text = "<ABORT>",
.resp_len = {
.min = 0,
.max = 8
}
};
static struct get_input_test get_input_data_181 = {
.pdu = get_input_181,
.pdu_len = sizeof(get_input_181),
.qualifier = 0x00,
.text = "***1111111111###***2222222222###***3333333333###"
"***4444444444###***5555555555###***6666666666###"
"***7777777777###***8888888888###***9999999999###"
"***0000000000###",
.resp_len = {
.min = 160,
.max = 160
}
};
static struct get_input_test get_input_data_191 = {
.pdu = get_input_191,
.pdu_len = sizeof(get_input_191),
.qualifier = 0x00,
.text = "<SEND>",
.resp_len = {
.min = 0,
.max = 1
}
};
static struct get_input_test get_input_data_1101 = {
.pdu = get_input_1101,
.pdu_len = sizeof(get_input_1101),
.qualifier = 0x00,
.text = NULL,
.resp_len = {
.min = 1,
.max = 5
}
};
static struct get_input_test get_input_data_211 = {
.pdu = get_input_211,
.pdu_len = sizeof(get_input_211),
.qualifier = 0x00,
.text = "<TIME-OUT>",
.resp_len = {
.min = 0,
.max = 10
}
};
static struct get_input_test get_input_data_311 = {
.pdu = get_input_311,
.pdu_len = sizeof(get_input_311),
.qualifier = 0x01,
.text = "ЗДРАВСТВУЙТЕ",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_321 = {
.pdu = get_input_321,
.pdu_len = sizeof(get_input_321),
.qualifier = 0x01,
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_411 = {
.pdu = get_input_411,
.pdu_len = sizeof(get_input_411),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 12,
.max = 12
}
};
static struct get_input_test get_input_data_421 = {
.pdu = get_input_421,
.pdu_len = sizeof(get_input_421),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
static struct get_input_test get_input_data_511 = {
.pdu = get_input_511,
.pdu_len = sizeof(get_input_511),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.default_text = "12345"
};
static struct get_input_test get_input_data_521 = {
.pdu = get_input_521,
.pdu_len = sizeof(get_input_521),
.qualifier = 0x00,
.text = "Enter:",
.resp_len = {
.min = 160,
.max = 160
},
.default_text = "***1111111111###***2222222222###***3333333333###"
"***4444444444###***5555555555###***6666666666###"
"***7777777777###***8888888888###***9999999999###"
"***0000000000###"
};
static struct get_input_test get_input_data_611 = {
.pdu = get_input_611,
.pdu_len = sizeof(get_input_611),
.qualifier = 0x00,
.text = "<NO-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_input_test get_input_data_621 = {
.pdu = get_input_621,
.pdu_len = sizeof(get_input_621),
.qualifier = 0x00,
.text = "<BASIC-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_input_test get_input_data_631 = {
.pdu = get_input_631,
.pdu_len = sizeof(get_input_631),
.qualifier = 0x00,
.text = "<NO-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_input_test get_input_data_641 = {
.pdu = get_input_641,
.pdu_len = sizeof(get_input_641),
.qualifier = 0x00,
.text = "<COLOUR-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_input_test get_input_data_711 = {
.pdu = get_input_711,
.pdu_len = sizeof(get_input_711),
.qualifier = 0x80,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_811 = {
.pdu = get_input_811,
.pdu_len = sizeof(get_input_811),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_812 = {
.pdu = get_input_812,
.pdu_len = sizeof(get_input_812),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_821 = {
.pdu = get_input_821,
.pdu_len = sizeof(get_input_821),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x01, 0xB4 }
}
};
static struct get_input_test get_input_data_822 = {
.pdu = get_input_822,
.pdu_len = sizeof(get_input_822),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_831 = {
.pdu = get_input_831,
.pdu_len = sizeof(get_input_831),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x02, 0xB4 }
}
};
static struct get_input_test get_input_data_832 = {
.pdu = get_input_832,
.pdu_len = sizeof(get_input_832),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_841 = {
.pdu = get_input_841,
.pdu_len = sizeof(get_input_841),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x04, 0xB4 }
}
};
static struct get_input_test get_input_data_842 = {
.pdu = get_input_842,
.pdu_len = sizeof(get_input_842),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_843 = {
.pdu = get_input_843,
.pdu_len = sizeof(get_input_843),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_851 = {
.pdu = get_input_851,
.pdu_len = sizeof(get_input_851),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x08, 0xB4 }
}
};
static struct get_input_test get_input_data_852 = {
.pdu = get_input_852,
.pdu_len = sizeof(get_input_852),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_853 = {
.pdu = get_input_853,
.pdu_len = sizeof(get_input_853),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_861 = {
.pdu = get_input_861,
.pdu_len = sizeof(get_input_861),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x10, 0xB4 }
}
};
static struct get_input_test get_input_data_862 = {
.pdu = get_input_862,
.pdu_len = sizeof(get_input_862),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_863 = {
.pdu = get_input_863,
.pdu_len = sizeof(get_input_863),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_871 = {
.pdu = get_input_871,
.pdu_len = sizeof(get_input_871),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x20, 0xB4 }
}
};
static struct get_input_test get_input_data_872 = {
.pdu = get_input_872,
.pdu_len = sizeof(get_input_872),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_873 = {
.pdu = get_input_873,
.pdu_len = sizeof(get_input_873),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_881 = {
.pdu = get_input_881,
.pdu_len = sizeof(get_input_881),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x40, 0xB4 }
}
};
static struct get_input_test get_input_data_882 = {
.pdu = get_input_882,
.pdu_len = sizeof(get_input_882),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_883 = {
.pdu = get_input_883,
.pdu_len = sizeof(get_input_883),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_891 = {
.pdu = get_input_891,
.pdu_len = sizeof(get_input_891),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x80, 0xB4 }
}
};
static struct get_input_test get_input_data_892 = {
.pdu = get_input_892,
.pdu_len = sizeof(get_input_892),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_893 = {
.pdu = get_input_893,
.pdu_len = sizeof(get_input_893),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_8101 = {
.pdu = get_input_8101,
.pdu_len = sizeof(get_input_8101),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct get_input_test get_input_data_8102 = {
.pdu = get_input_8102,
.pdu_len = sizeof(get_input_8102),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_911 = {
.pdu = get_input_911,
.pdu_len = sizeof(get_input_911),
.qualifier = 0x01,
.text = "你好",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_921 = {
.pdu = get_input_921,
.pdu_len = sizeof(get_input_921),
.qualifier = 0x01,
.text = "你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1011 = {
.pdu = get_input_1011,
.pdu_len = sizeof(get_input_1011),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 2,
.max = 2
}
};
static struct get_input_test get_input_data_1021 = {
.pdu = get_input_1021,
.pdu_len = sizeof(get_input_1021),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
static struct get_input_test get_input_data_1111 = {
.pdu = get_input_1111,
.pdu_len = sizeof(get_input_1111),
.qualifier = 0x01,
.text = "",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1121 = {
.pdu = get_input_1121,
.pdu_len = sizeof(get_input_1121),
.qualifier = 0x01,
.text = "ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルル",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1211 = {
.pdu = get_input_1211,
.pdu_len = sizeof(get_input_1211),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 2,
.max = 2
}
};
static struct get_input_test get_input_data_1221 = {
.pdu = get_input_1221,
.pdu_len = sizeof(get_input_1221),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
/* Defined in TS 102.384 Section 27.22.4.3 */
static void test_get_input(gconstpointer data)
{
const struct get_input_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_INPUT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
if (test->text)
g_assert(command->get_input.text);
check_text(command->get_input.text, test->text);
check_response_length(&command->get_input.resp_len, &test->resp_len);
check_default_text(command->get_input.default_text, test->default_text);
check_icon_id(&command->get_input.icon_id, &test->icon_id);
check_text_attr(&command->get_input.text_attr,
&test->text_attr);
check_frame_id(&command->get_input.frame_id, &test->frame_id);
stk_command_free(command);
}
struct more_time_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char more_time_111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x02,
0x00, 0x82, 0x02, 0x81, 0x82 };
static struct more_time_test more_time_data_111 = {
.pdu = more_time_111,
.pdu_len = sizeof(more_time_111),
.qualifier = 0x00,
};
/* Defined in TS 102.384 Section 27.22.4.4 */
static void test_more_time(gconstpointer data)
{
const struct get_input_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_MORE_TIME);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct play_tone_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
unsigned char tone;
struct stk_duration duration;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char play_tone_111[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x44, 0x69, 0x61,
0x6C, 0x20, 0x54, 0x6F, 0x6E,
0x65, 0x8E, 0x01, 0x01, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_112[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x53, 0x75, 0x62,
0x2E, 0x20, 0x42, 0x75, 0x73,
0x79, 0x8E, 0x01, 0x02, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_113[] = { 0xD0, 0x1C, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0A, 0x43, 0x6F, 0x6E,
0x67, 0x65, 0x73, 0x74, 0x69,
0x6F, 0x6E, 0x8E, 0x01, 0x03,
0x84, 0x02, 0x01, 0x05 };
static unsigned char play_tone_114[] = { 0xD0, 0x18, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x06, 0x52, 0x50, 0x20,
0x41, 0x63, 0x6B, 0x8E, 0x01,
0x04, 0x84, 0x02, 0x01, 0x05 };
static unsigned char play_tone_115[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x05, 0x4E, 0x6F, 0x20,
0x52, 0x50, 0x8E, 0x01, 0x05,
0x84, 0x02, 0x01, 0x05 };
static unsigned char play_tone_116[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x53, 0x70, 0x65,
0x63, 0x20, 0x49, 0x6E, 0x66,
0x6F, 0x8E, 0x01, 0x06, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_117[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x43, 0x61, 0x6C,
0x6C, 0x20, 0x57, 0x61, 0x69,
0x74, 0x8E, 0x01, 0x07, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_118[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x52, 0x69, 0x6E,
0x67, 0x20, 0x54, 0x6F, 0x6E,
0x65, 0x8E, 0x01, 0x08, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_119[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x20, 0x00, 0x82, 0x02, 0x81,
0x03, 0x85, 0x81, 0xF1, 0x54,
0x68, 0x69, 0x73, 0x20, 0x63,
0x6F, 0x6D, 0x6D, 0x61, 0x6E,
0x64, 0x20, 0x69, 0x6E, 0x73,
0x74, 0x72, 0x75, 0x63, 0x74,
0x73, 0x20, 0x74, 0x68, 0x65,
0x20, 0x4D, 0x45, 0x20, 0x74,
0x6F, 0x20, 0x70, 0x6C, 0x61,
0x79, 0x20, 0x61, 0x6E, 0x20,
0x61, 0x75, 0x64, 0x69, 0x6F,
0x20, 0x74, 0x6F, 0x6E, 0x65,
0x2E, 0x20, 0x55, 0x70, 0x6F,
0x6E, 0x20, 0x72, 0x65, 0x63,
0x65, 0x69, 0x76, 0x69, 0x6E,
0x67, 0x20, 0x74, 0x68, 0x69,
0x73, 0x20, 0x63, 0x6F, 0x6D,
0x6D, 0x61, 0x6E, 0x64, 0x2C,
0x20, 0x74, 0x68, 0x65, 0x20,
0x4D, 0x45, 0x20, 0x73, 0x68,
0x61, 0x6C, 0x6C, 0x20, 0x63,
0x68, 0x65, 0x63, 0x6B, 0x20,
0x69, 0x66, 0x20, 0x69, 0x74,
0x20, 0x69, 0x73, 0x20, 0x63,
0x75, 0x72, 0x72, 0x65, 0x6E,
0x74, 0x6C, 0x79, 0x20, 0x69,
0x6E, 0x2C, 0x20, 0x6F, 0x72,
0x20, 0x69, 0x6E, 0x20, 0x74,
0x68, 0x65, 0x20, 0x70, 0x72,
0x6F, 0x63, 0x65, 0x73, 0x73,
0x20, 0x6F, 0x66, 0x20, 0x73,
0x65, 0x74, 0x74, 0x69, 0x6E,
0x67, 0x20, 0x75, 0x70, 0x20,
0x28, 0x53, 0x45, 0x54, 0x2D,
0x55, 0x50, 0x20, 0x6D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x20, 0x73, 0x65, 0x6E, 0x74,
0x20, 0x74, 0x6F, 0x20, 0x74,
0x68, 0x65, 0x20, 0x6E, 0x65,
0x74, 0x77, 0x6F, 0x72, 0x6B,
0x2C, 0x20, 0x73, 0x65, 0x65,
0x20, 0x47, 0x53, 0x4D, 0x22,
0x30, 0x34, 0x2E, 0x30, 0x38,
0x22, 0x28, 0x38, 0x29, 0x29,
0x2C, 0x20, 0x61, 0x20, 0x73,
0x70, 0x65, 0x65, 0x63, 0x68,
0x20, 0x63, 0x61, 0x6C, 0x6C,
0x2E, 0x20, 0x2D, 0x20, 0x49,
0x66, 0x20, 0x74, 0x68, 0x65,
0x20, 0x4D, 0x45, 0x20, 0x49 };
static unsigned char play_tone_1110[] = { 0xD0, 0x16, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x04, 0x42, 0x65, 0x65,
0x70, 0x8E, 0x01, 0x10, 0x84,
0x02, 0x01, 0x01 };
static unsigned char play_tone_1111[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x08, 0x50, 0x6F, 0x73,
0x69, 0x74, 0x69, 0x76, 0x65,
0x8E, 0x01, 0x11, 0x84, 0x02,
0x01, 0x01 };
static unsigned char play_tone_1112[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x08, 0x4E, 0x65, 0x67,
0x61, 0x74, 0x69, 0x76, 0x65,
0x8E, 0x01, 0x12, 0x84, 0x02,
0x01, 0x01 };
static unsigned char play_tone_1113[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x05, 0x51, 0x75, 0x69,
0x63, 0x6B, 0x8E, 0x01, 0x10,
0x84, 0x02, 0x02, 0x02 };
static unsigned char play_tone_1114[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x07, 0x3C, 0x41, 0x42,
0x4F, 0x52, 0x54, 0x3E, 0x8E,
0x01, 0x06, 0x84, 0x02, 0x00,
0x01 };
static unsigned char play_tone_1115[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03 };
static unsigned char play_tone_211[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8E, 0x01, 0x11,
0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_212[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0F, 0x81, 0x0C, 0x08,
0x97, 0x94, 0xA0, 0x90, 0x92,
0xA1, 0xA2, 0x92, 0xA3, 0x99,
0xA2, 0x95, 0x8E, 0x01, 0x11,
0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_213[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x82, 0x0C, 0x04,
0x10, 0x87, 0x84, 0x90, 0x80,
0x82, 0x91, 0x92, 0x82, 0x93,
0x89, 0x92, 0x85, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_311[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0C, 0x3C, 0x42, 0x41,
0x53, 0x49, 0x43, 0x2D, 0x49,
0x43, 0x4F, 0x4E, 0x3E, 0x8E,
0x01, 0x11, 0x84, 0x02, 0x01,
0x01, 0x1E, 0x02, 0x00, 0x01 };
static unsigned char play_tone_321[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0C, 0x3C, 0x42, 0x41,
0x53, 0x49, 0x43, 0x2D, 0x49,
0x43, 0x4F, 0x4E, 0x3E, 0x8E,
0x01, 0x11, 0x84, 0x02, 0x01,
0x01, 0x1E, 0x02, 0x01, 0x01 };
static unsigned char play_tone_331[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0D, 0x3C, 0x43, 0x4F,
0x4C, 0x4F, 0x55, 0x52, 0x2D,
0x49, 0x43, 0x4F, 0x4E, 0x3E,
0x8E, 0x01, 0x11, 0x84, 0x02,
0x01, 0x01, 0x1E, 0x02, 0x00,
0x02 };
static unsigned char play_tone_341[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x0D, 0x3C, 0x43, 0x4F,
0x4C, 0x4F, 0x55, 0x52, 0x2D,
0x49, 0x43, 0x4F, 0x4E, 0x3E,
0x8E, 0x01, 0x11, 0x84, 0x02,
0x01, 0x01, 0x1E, 0x02, 0x01,
0x02 };
static unsigned char play_tone_411[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_412[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_421[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x01,
0xB4 };
static unsigned char play_tone_422[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_431[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x02,
0xB4 };
static unsigned char play_tone_432[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_441[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x04,
0xB4 };
static unsigned char play_tone_442[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_443[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_451[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x08,
0xB4 };
static unsigned char play_tone_452[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_453[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_461[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x0E, 0x10,
0xB4 };
static unsigned char play_tone_462[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_463[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_471[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x0E, 0x20,
0xB4 };
static unsigned char play_tone_472[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_473[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_481[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x40,
0xB4 };
static unsigned char play_tone_482[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_483[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_491[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x80,
0xB4 };
static unsigned char play_tone_492[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_493[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_4101[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01,
0xD0, 0x04, 0x00, 0x10, 0x00,
0xB4 };
static unsigned char play_tone_4102[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_511[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x05, 0x80, 0x4E, 0x2D,
0x4E, 0x00, 0x8E, 0x01, 0x11,
0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_512[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x05, 0x81, 0x02, 0x9C,
0xAD, 0x80, 0x8E, 0x01, 0x11,
0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_513[] = { 0xD0, 0x18, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x06, 0x82, 0x02, 0x4E,
0x00, 0xAD, 0x80, 0x8E, 0x01,
0x11, 0x84, 0x02, 0x01, 0x01 };
static unsigned char play_tone_611[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8E, 0x01, 0x01, 0x84,
0x02, 0x01, 0x05 };
static unsigned char play_tone_612[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x07, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x31, 0x8E,
0x01, 0x01, 0x84, 0x02, 0x01,
0x05 };
static unsigned char play_tone_613[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01, 0x20,
0x00, 0x82, 0x02, 0x81, 0x03,
0x85, 0x08, 0x82, 0x04, 0x30,
0xA0, 0x38, 0x32, 0xCB, 0x32,
0x8E, 0x01, 0x01, 0x84, 0x02,
0x01, 0x05 };
static struct play_tone_test play_tone_data_111 = {
.pdu = play_tone_111,
.pdu_len = sizeof(play_tone_111),
.qualifier = 0x00,
.alpha_id = "Dial Tone",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_112 = {
.pdu = play_tone_112,
.pdu_len = sizeof(play_tone_112),
.qualifier = 0x00,
.alpha_id = "Sub. Busy",
.tone = STK_TONE_TYPE_BUSY_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_113 = {
.pdu = play_tone_113,
.pdu_len = sizeof(play_tone_113),
.qualifier = 0x00,
.alpha_id = "Congestion",
.tone = STK_TONE_TYPE_CONGESTION,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_114 = {
.pdu = play_tone_114,
.pdu_len = sizeof(play_tone_114),
.qualifier = 0x00,
.alpha_id = "RP Ack",
.tone = STK_TONE_TYPE_RP_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_115 = {
.pdu = play_tone_115,
.pdu_len = sizeof(play_tone_115),
.qualifier = 0x00,
.alpha_id = "No RP",
.tone = STK_TONE_TYPE_CALL_DROPPED,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_116 = {
.pdu = play_tone_116,
.pdu_len = sizeof(play_tone_116),
.qualifier = 0x00,
.alpha_id = "Spec Info",
.tone = STK_TONE_TYPE_ERROR,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_117 = {
.pdu = play_tone_117,
.pdu_len = sizeof(play_tone_117),
.qualifier = 0x00,
.alpha_id = "Call Wait",
.tone = STK_TONE_TYPE_CALL_WAITING,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_118 = {
.pdu = play_tone_118,
.pdu_len = sizeof(play_tone_118),
.qualifier = 0x00,
.alpha_id = "Ring Tone",
.tone = STK_TONE_TYPE_RINGING,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_119 = {
.pdu = play_tone_119,
.pdu_len = sizeof(play_tone_119),
.qualifier = 0x00,
.alpha_id = "This command instructs the ME to play an audio tone. "
"Upon receiving this command, the ME shall check "
"if it is currently in, or in the process of setting "
"up (SET-UP message sent to the network, see "
"GSM\"04.08\"(8)), a speech call. - If the ME I"
};
static struct play_tone_test play_tone_data_1110 = {
.pdu = play_tone_1110,
.pdu_len = sizeof(play_tone_1110),
.qualifier = 0x00,
.alpha_id = "Beep",
.tone = STK_TONE_TYPE_GENERAL_BEEP,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1111 = {
.pdu = play_tone_1111,
.pdu_len = sizeof(play_tone_1111),
.qualifier = 0x00,
.alpha_id = "Positive",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1112 = {
.pdu = play_tone_1112,
.pdu_len = sizeof(play_tone_1112),
.qualifier = 0x00,
.alpha_id = "Negative",
.tone = STK_TONE_TYPE_NEGATIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1113 = {
.pdu = play_tone_1113,
.pdu_len = sizeof(play_tone_1113),
.qualifier = 0x00,
.alpha_id = "Quick",
.tone = STK_TONE_TYPE_GENERAL_BEEP,
.duration = {
.unit = STK_DURATION_TYPE_SECOND_TENTHS,
.interval = 2
}
};
static struct play_tone_test play_tone_data_1114 = {
.pdu = play_tone_1114,
.pdu_len = sizeof(play_tone_1114),
.qualifier = 0x00,
.alpha_id = "<ABORT>",
.tone = STK_TONE_TYPE_ERROR,
.duration = {
.unit = STK_DURATION_TYPE_MINUTES,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1115 = {
.pdu = play_tone_1115,
.pdu_len = sizeof(play_tone_1115),
.qualifier = 0x00
};
static struct play_tone_test play_tone_data_211 = {
.pdu = play_tone_211,
.pdu_len = sizeof(play_tone_211),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_212 = {
.pdu = play_tone_212,
.pdu_len = sizeof(play_tone_212),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_213 = {
.pdu = play_tone_213,
.pdu_len = sizeof(play_tone_213),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_311 = {
.pdu = play_tone_311,
.pdu_len = sizeof(play_tone_311),
.qualifier = 0x00,
.alpha_id = "<BASIC-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct play_tone_test play_tone_data_321 = {
.pdu = play_tone_321,
.pdu_len = sizeof(play_tone_321),
.qualifier = 0x00,
.alpha_id = "<BASIC-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct play_tone_test play_tone_data_331 = {
.pdu = play_tone_331,
.pdu_len = sizeof(play_tone_331),
.qualifier = 0x00,
.alpha_id = "<COLOUR-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct play_tone_test play_tone_data_341 = {
.pdu = play_tone_341,
.pdu_len = sizeof(play_tone_341),
.qualifier = 0x00,
.alpha_id = "<COLOUR-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct play_tone_test play_tone_data_411 = {
.pdu = play_tone_411,
.pdu_len = sizeof(play_tone_411),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_412 = {
.pdu = play_tone_412,
.pdu_len = sizeof(play_tone_412),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_421 = {
.pdu = play_tone_421,
.pdu_len = sizeof(play_tone_421),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
}
};
static struct play_tone_test play_tone_data_422 = {
.pdu = play_tone_422,
.pdu_len = sizeof(play_tone_422),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_431 = {
.pdu = play_tone_431,
.pdu_len = sizeof(play_tone_431),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
}
};
static struct play_tone_test play_tone_data_432 = {
.pdu = play_tone_432,
.pdu_len = sizeof(play_tone_432),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_441 = {
.pdu = play_tone_441,
.pdu_len = sizeof(play_tone_441),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
}
};
static struct play_tone_test play_tone_data_442 = {
.pdu = play_tone_442,
.pdu_len = sizeof(play_tone_442),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_443 = {
.pdu = play_tone_443,
.pdu_len = sizeof(play_tone_443),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_451 = {
.pdu = play_tone_451,
.pdu_len = sizeof(play_tone_451),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
}
};
static struct play_tone_test play_tone_data_452 = {
.pdu = play_tone_452,
.pdu_len = sizeof(play_tone_452),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_453 = {
.pdu = play_tone_453,
.pdu_len = sizeof(play_tone_453),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_461 = {
.pdu = play_tone_461,
.pdu_len = sizeof(play_tone_461),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
}
};
static struct play_tone_test play_tone_data_462 = {
.pdu = play_tone_462,
.pdu_len = sizeof(play_tone_462),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_463 = {
.pdu = play_tone_463,
.pdu_len = sizeof(play_tone_463),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_471 = {
.pdu = play_tone_471,
.pdu_len = sizeof(play_tone_471),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
}
};
static struct play_tone_test play_tone_data_472 = {
.pdu = play_tone_472,
.pdu_len = sizeof(play_tone_472),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_473 = {
.pdu = play_tone_473,
.pdu_len = sizeof(play_tone_473),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_481 = {
.pdu = play_tone_481,
.pdu_len = sizeof(play_tone_481),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
}
};
static struct play_tone_test play_tone_data_482 = {
.pdu = play_tone_482,
.pdu_len = sizeof(play_tone_482),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_483 = {
.pdu = play_tone_483,
.pdu_len = sizeof(play_tone_483),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_491 = {
.pdu = play_tone_491,
.pdu_len = sizeof(play_tone_491),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
}
};
static struct play_tone_test play_tone_data_492 = {
.pdu = play_tone_492,
.pdu_len = sizeof(play_tone_492),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_493 = {
.pdu = play_tone_493,
.pdu_len = sizeof(play_tone_493),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_4101 = {
.pdu = play_tone_4101,
.pdu_len = sizeof(play_tone_4101),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct play_tone_test play_tone_data_4102 = {
.pdu = play_tone_4102,
.pdu_len = sizeof(play_tone_4102),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_511 = {
.pdu = play_tone_511,
.pdu_len = sizeof(play_tone_511),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_512 = {
.pdu = play_tone_512,
.pdu_len = sizeof(play_tone_512),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_513 = {
.pdu = play_tone_513,
.pdu_len = sizeof(play_tone_513),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_611 = {
.pdu = play_tone_611,
.pdu_len = sizeof(play_tone_611),
.qualifier = 0x00,
.alpha_id = "80ル0",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_612 = {
.pdu = play_tone_612,
.pdu_len = sizeof(play_tone_612),
.qualifier = 0x00,
.alpha_id = "81ル1",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_613 = {
.pdu = play_tone_613,
.pdu_len = sizeof(play_tone_613),
.qualifier = 0x00,
.alpha_id = "82ル2",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
/* Defined in TS 102.384 Section 27.22.4.5 */
static void test_play_tone(gconstpointer data)
{
const struct play_tone_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PLAY_TONE);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_EARPIECE);
check_alpha_id(command->play_tone.alpha_id, test->alpha_id);
check_tone(command->play_tone.tone, test->tone);
check_duration(&command->play_tone.duration, &test->duration);
check_icon_id(&command->play_tone.icon_id, &test->icon_id);
check_text_attr(&command->play_tone.text_attr, &test->text_attr);
check_frame_id(&command->play_tone.frame_id, &test->frame_id);
stk_command_free(command);
}
struct poll_interval_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_duration duration;
};
static unsigned char poll_interval_111[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x03,
0x00, 0x82, 0x02, 0x81, 0x82,
0x84, 0x02, 0x01, 0x14 };
static struct poll_interval_test poll_interval_data_111 = {
.pdu = poll_interval_111,
.pdu_len = sizeof(poll_interval_111),
.qualifier = 0x00,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 20
}
};
/* Defined in TS 102.384 Section 27.22.4.6 */
static void test_poll_interval(gconstpointer data)
{
const struct poll_interval_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_POLL_INTERVAL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_duration(&command->poll_interval.duration, &test->duration);
stk_command_free(command);
}
struct setup_menu_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_item items[MAX_ITEM];
struct stk_items_next_action_indicator next_act;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
struct stk_text_attribute text_attr;
struct stk_item_text_attribute_list item_text_attr_list;
};
static unsigned char setup_menu_111[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34 };
static unsigned char setup_menu_112[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x04, 0x11, 0x4F, 0x6E, 0x65,
0x8F, 0x04, 0x12, 0x54, 0x77,
0x6F };
static unsigned char setup_menu_113[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_121[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x31, 0x8F, 0x05,
0x50, 0x5A, 0x65, 0x72, 0x6F,
0x8F, 0x04, 0x4F, 0x4F, 0x6E,
0x65, 0x8F, 0x04, 0x4E, 0x54,
0x77, 0x6F, 0x8F, 0x06, 0x4D,
0x54, 0x68, 0x72, 0x65, 0x65,
0x8F, 0x05, 0x4C, 0x46, 0x6F,
0x75, 0x72, 0x8F, 0x05, 0x4B,
0x46, 0x69, 0x76, 0x65, 0x8F,
0x04, 0x4A, 0x53, 0x69, 0x78,
0x8F, 0x06, 0x49, 0x53, 0x65,
0x76, 0x65, 0x6E, 0x8F, 0x06,
0x48, 0x45, 0x69, 0x67, 0x68,
0x74, 0x8F, 0x05, 0x47, 0x4E,
0x69, 0x6E, 0x65, 0x8F, 0x06,
0x46, 0x41, 0x6C, 0x70, 0x68,
0x61, 0x8F, 0x06, 0x45, 0x42,
0x72, 0x61, 0x76, 0x6F, 0x8F,
0x08, 0x44, 0x43, 0x68, 0x61,
0x72, 0x6C, 0x69, 0x65, 0x8F,
0x06, 0x43, 0x44, 0x65, 0x6C,
0x74, 0x61, 0x8F, 0x05, 0x42,
0x45, 0x63, 0x68, 0x6F, 0x8F,
0x09, 0x41, 0x46, 0x6F, 0x78,
0x2D, 0x74, 0x72, 0x6F, 0x74,
0x8F, 0x06, 0x40, 0x42, 0x6C,
0x61, 0x63, 0x6B, 0x8F, 0x06,
0x3F, 0x42, 0x72, 0x6F, 0x77,
0x6E, 0x8F, 0x04, 0x3E, 0x52,
0x65, 0x64, 0x8F, 0x07, 0x3D,
0x4F, 0x72, 0x61, 0x6E, 0x67,
0x65, 0x8F, 0x07, 0x3C, 0x59,
0x65, 0x6C, 0x6C, 0x6F, 0x77,
0x8F, 0x06, 0x3B, 0x47, 0x72,
0x65, 0x65, 0x6E, 0x8F, 0x05,
0x3A, 0x42, 0x6C, 0x75, 0x65,
0x8F, 0x07, 0x39, 0x56, 0x69,
0x6F, 0x6C, 0x65, 0x74, 0x8F,
0x05, 0x38, 0x47, 0x72, 0x65,
0x79, 0x8F, 0x06, 0x37, 0x57,
0x68, 0x69, 0x74, 0x65, 0x8F,
0x06, 0x36, 0x6D, 0x69, 0x6C,
0x6C, 0x69, 0x8F, 0x06, 0x35,
0x6D, 0x69, 0x63, 0x72, 0x6F,
0x8F, 0x05, 0x34, 0x6E, 0x61,
0x6E, 0x6F, 0x8F, 0x05, 0x33,
0x70, 0x69, 0x63, 0x6F };
static unsigned char setup_menu_122[] = { 0xD0, 0x81, 0xF3, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x32, 0x8F, 0x1D,
0xFF, 0x31, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x55, 0x6E, 0x63, 0x6F,
0x6E, 0x64, 0x69, 0x74, 0x69,
0x6F, 0x6E, 0x61, 0x6C, 0x8F,
0x1C, 0xFE, 0x32, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x55, 0x73, 0x65, 0x72, 0x20,
0x42, 0x75, 0x73, 0x79, 0x8F,
0x1B, 0xFD, 0x33, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x4E, 0x6F, 0x20, 0x52, 0x65,
0x70, 0x6C, 0x79, 0x8F, 0x25,
0xFC, 0x34, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x4F, 0x6E, 0x20, 0x55,
0x73, 0x65, 0x72, 0x20, 0x4E,
0x6F, 0x74, 0x20, 0x52, 0x65,
0x61, 0x63, 0x68, 0x61, 0x62,
0x6C, 0x65, 0x8F, 0x20, 0xFB,
0x35, 0x20, 0x42, 0x61, 0x72,
0x72, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x66, 0x20, 0x41, 0x6C,
0x6C, 0x20, 0x4F, 0x75, 0x74,
0x67, 0x6F, 0x69, 0x6E, 0x67,
0x20, 0x43, 0x61, 0x6C, 0x6C,
0x73, 0x8F, 0x24, 0xFA, 0x36,
0x20, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x13, 0xF9, 0x37, 0x20, 0x43,
0x4C, 0x49, 0x20, 0x50, 0x72,
0x65, 0x73, 0x65, 0x6E, 0x74,
0x61, 0x74, 0x69, 0x6F, 0x6E };
static unsigned char setup_menu_123[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x81, 0xEC, 0x54,
0x68, 0x65, 0x20, 0x53, 0x49,
0x4D, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x73, 0x75,
0x70, 0x70, 0x6C, 0x79, 0x20,
0x61, 0x20, 0x73, 0x65, 0x74,
0x20, 0x6F, 0x66, 0x20, 0x6D,
0x65, 0x6E, 0x75, 0x20, 0x69,
0x74, 0x65, 0x6D, 0x73, 0x2C,
0x20, 0x77, 0x68, 0x69, 0x63,
0x68, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x62, 0x65,
0x20, 0x69, 0x6E, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x65,
0x64, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x74, 0x68, 0x65,
0x20, 0x6D, 0x65, 0x6E, 0x75,
0x20, 0x73, 0x79, 0x73, 0x74,
0x65, 0x6D, 0x20, 0x28, 0x6F,
0x72, 0x20, 0x6F, 0x74, 0x68,
0x65, 0x72, 0x20, 0x4D, 0x4D,
0x49, 0x20, 0x66, 0x61, 0x63,
0x69, 0x6C, 0x69, 0x74, 0x79,
0x29, 0x20, 0x69, 0x6E, 0x20,
0x6F, 0x72, 0x64, 0x65, 0x72,
0x20, 0x74, 0x6F, 0x20, 0x67,
0x69, 0x76, 0x65, 0x20, 0x74,
0x68, 0x65, 0x20, 0x75, 0x73,
0x65, 0x72, 0x20, 0x74, 0x68,
0x65, 0x20, 0x6F, 0x70, 0x70,
0x6F, 0x72, 0x74, 0x75, 0x6E,
0x69, 0x74, 0x79, 0x20, 0x74,
0x6F, 0x20, 0x63, 0x68, 0x6F,
0x6F, 0x73, 0x65, 0x20, 0x6F,
0x6E, 0x65, 0x20, 0x6F, 0x66,
0x20, 0x74, 0x68, 0x65, 0x73,
0x65, 0x20, 0x6D, 0x65, 0x6E,
0x75, 0x20, 0x69, 0x74, 0x65,
0x6D, 0x73, 0x20, 0x61, 0x74,
0x20, 0x68, 0x69, 0x73, 0x20,
0x6F, 0x77, 0x6E, 0x20, 0x64,
0x69, 0x73, 0x63, 0x72, 0x65,
0x74, 0x69, 0x6F, 0x6E, 0x2E,
0x20, 0x45, 0x61, 0x63, 0x68,
0x20, 0x69, 0x74, 0x65, 0x6D,
0x20, 0x63, 0x6F, 0x6D, 0x70,
0x72, 0x69, 0x73, 0x65, 0x73,
0x20, 0x61, 0x20, 0x73, 0x68,
0x8F, 0x02, 0x01, 0x59 };
static unsigned char setup_menu_211[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x25,
0x80, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34 };
static unsigned char setup_menu_311[] = { 0xD0, 0x41, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x18, 0x04, 0x13, 0x10, 0x15,
0x26 };
static unsigned char setup_menu_411[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x9E, 0x02, 0x01, 0x01,
0x9F, 0x04, 0x01, 0x05, 0x05,
0x05 };
static unsigned char setup_menu_421[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x9E, 0x02, 0x00, 0x01,
0x9F, 0x04, 0x00, 0x05, 0x05,
0x05 };
static unsigned char setup_menu_511[] = { 0xD0, 0x29, 0x81, 0x03, 0x01, 0x25,
0x01, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32 };
static unsigned char setup_menu_611[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x00, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4, 0x00,
0x06, 0x00, 0xB4 };
static unsigned char setup_menu_612[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_621[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x01, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x01, 0xB4,
0x00, 0x06, 0x01, 0xB4, 0x00,
0x06, 0x01, 0xB4 };
static unsigned char setup_menu_622[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_631[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x02, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x02, 0xB4,
0x00, 0x06, 0x02, 0xB4, 0x00,
0x06, 0x02, 0xB4 };
static unsigned char setup_menu_632[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_641[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x04, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x04, 0xB4,
0x00, 0x06, 0x04, 0xB4, 0x00,
0x06, 0x04, 0xB4 };
static unsigned char setup_menu_642[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36, 0xD0, 0x04,
0x00, 0x0E, 0x00, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4, 0x00,
0x06, 0x00, 0xB4 };
static unsigned char setup_menu_643[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x33, 0x8F, 0x07, 0x07, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x37,
0x8F, 0x07, 0x08, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x38, 0x8F,
0x07, 0x09, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x39 };
static unsigned char setup_menu_651[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x08, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x08, 0xB4,
0x00, 0x06, 0x08, 0xB4, 0x00,
0x06, 0x08, 0xB4 };
static unsigned char setup_menu_661[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x10, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x10, 0xB4,
0x00, 0x06, 0x10, 0xB4, 0x00,
0x06, 0x10, 0xB4 };
static unsigned char setup_menu_671[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x20, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x20, 0xB4,
0x00, 0x06, 0x20, 0xB4, 0x00,
0x06, 0x20, 0xB4 };
static unsigned char setup_menu_681[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x40, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x40, 0xB4,
0x00, 0x06, 0x40, 0xB4, 0x00,
0x06, 0x40, 0xB4 };
static unsigned char setup_menu_691[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x80, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x80, 0xB4,
0x00, 0x06, 0x80, 0xB4, 0x00,
0x06, 0x80, 0xB4 };
static unsigned char setup_menu_6101[] = { 0xD0, 0x46, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0xD0, 0x04, 0x00, 0x0C,
0x00, 0xB4, 0xD1, 0x0C, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4, 0x00, 0x06, 0x00,
0xB4 };
static unsigned char setup_menu_711[] = { 0xD0, 0x81, 0x9C, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x19, 0x80, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15, 0x8F, 0x1C,
0x01, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x31, 0x8F, 0x1C,
0x02, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x32, 0x8F, 0x1C,
0x03, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x33, 0x8F, 0x1C,
0x04, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x34 };
static unsigned char setup_menu_712[] = { 0xD0, 0x60, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8F, 0x1C, 0x11,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x35, 0x8F, 0x1C, 0x12,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x36 };
static unsigned char setup_menu_713[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_811[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x53,
0x55, 0x8F, 0x08, 0x01, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x00, 0x8F, 0x08, 0x02, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x8C, 0x8F, 0x08, 0x03, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x09, 0x8F, 0x08, 0x04, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x56,
0xDB };
static unsigned char setup_menu_812[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x53,
0x55, 0x8F, 0x04, 0x11, 0x80,
0x4E, 0x00, 0x8F, 0x04, 0x12,
0x80, 0x4E, 0x8C };
static unsigned char setup_menu_813[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_911[] = { 0xD0, 0x44, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x01, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x31, 0x8F, 0x0A,
0x02, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x32,
0x8F, 0x0A, 0x03, 0x80, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0x00, 0x33, 0x8F, 0x0A, 0x04,
0x80, 0x00, 0x38, 0x00, 0x30,
0x30, 0xEB, 0x00, 0x34 };
static unsigned char setup_menu_912[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x11, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x35, 0x8F, 0x0A,
0x12, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x36 };
static unsigned char setup_menu_913[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static struct setup_menu_test setup_menu_data_111 = {
.pdu = setup_menu_111,
.pdu_len = sizeof(setup_menu_111),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.items[3] = {
.id = 4,
.text = "Item 4"
}
};
static struct setup_menu_test setup_menu_data_112 = {
.pdu = setup_menu_112,
.pdu_len = sizeof(setup_menu_112),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 0x11,
.text = "One"
},
.items[1] = {
.id = 0x12,
.text = "Two"
}
};
static struct setup_menu_test setup_menu_data_113 = {
.pdu = setup_menu_113,
.pdu_len = sizeof(setup_menu_113),
.qualifier = 0x00
};
static struct setup_menu_test setup_menu_data_121 = {
.pdu = setup_menu_121,
.pdu_len = sizeof(setup_menu_121),
.qualifier = 0x00,
.alpha_id = "LargeMenu1",
.items[0] = {
.id = 0x50,
.text = "Zero"
},
.items[1] = {
.id = 0x4F,
.text = "One"
},
.items[2] = {
.id = 0x4E,
.text = "Two"
},
.items[3] = {
.id = 0x4D,
.text = "Three"
},
.items[4] = {
.id = 0x4C,
.text = "Four"
},
.items[5] = {
.id = 0x4B,
.text = "Five"
},
.items[6] = {
.id = 0x4A,
.text = "Six"
},
.items[7] = {
.id = 0x49,
.text = "Seven"
},
.items[8] = {
.id = 0x48,
.text = "Eight"
},
.items[9] = {
.id = 0x47,
.text = "Nine"
},
.items[10] = {
.id = 0x46,
.text = "Alpha"
},
.items[11] = {
.id = 0x45,
.text = "Bravo"
},
.items[12] = {
.id = 0x44,
.text = "Charlie"
},
.items[13] = {
.id = 0x43,
.text = "Delta"
},
.items[14] = {
.id = 0x42,
.text = "Echo"
},
.items[15] = {
.id = 0x41,
.text = "Fox-trot"
},
.items[16] = {
.id = 0x40,
.text = "Black"
},
.items[17] = {
.id = 0x3F,
.text = "Brown"
},
.items[18] = {
.id = 0x3E,
.text = "Red"
},
.items[19] = {
.id = 0x3D,
.text = "Orange"
},
.items[20] = {
.id = 0x3C,
.text = "Yellow"
},
.items[21] = {
.id = 0x3B,
.text = "Green"
},
.items[22] = {
.id = 0x3A,
.text = "Blue"
},
.items[23] = {
.id = 0x39,
.text = "Violet"
},
.items[24] = {
.id = 0x38,
.text = "Grey"
},
.items[25] = {
.id = 0x37,
.text = "White"
},
.items[26] = {
.id = 0x36,
.text = "milli"
},
.items[27] = {
.id = 0x35,
.text = "micro"
},
.items[28] = {
.id = 0x34,
.text = "nano"
},
.items[29] = {
.id = 0x33,
.text = "pico"
}
};
static struct setup_menu_test setup_menu_data_122 = {
.pdu = setup_menu_122,
.pdu_len = sizeof(setup_menu_122),
.qualifier = 0x00,
.alpha_id = "LargeMenu2",
.items[0] = {
.id = 0xFF,
.text = "1 Call Forward Unconditional"
},
.items[1] = {
.id = 0xFE,
.text = "2 Call Forward On User Busy"
},
.items[2] = {
.id = 0xFD,
.text = "3 Call Forward On No Reply"
},
.items[3] = {
.id = 0xFC,
.text = "4 Call Forward On User Not Reachable"
},
.items[4] = {
.id = 0xFB,
.text = "5 Barring Of All Outgoing Calls"
},
.items[5] = {
.id = 0xFA,
.text = "6 Barring Of All Outgoing Int Calls"
},
.items[6] = {
.id = 0xF9,
.text = "7 CLI Presentation"
}
};
static struct setup_menu_test setup_menu_data_123 = {
.pdu = setup_menu_123,
.pdu_len = sizeof(setup_menu_123),
.qualifier = 0x00,
.alpha_id = "The SIM shall supply a set of menu items, which shall "
"be integrated with the menu system (or other MMI "
"facility) in order to give the user the opportunity "
"to choose one of these menu items at his own "
"discretion. Each item comprises a sh",
.items[0] = {
.id = 0x01,
.text = "Y"
}
};
static struct setup_menu_test setup_menu_data_211 = {
.pdu = setup_menu_211,
.pdu_len = sizeof(setup_menu_211),
.qualifier = 0x80,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.items[3] = {
.id = 4,
.text = "Item 4"
}
};
static struct setup_menu_test setup_menu_data_311 = {
.pdu = setup_menu_311,
.pdu_len = sizeof(setup_menu_311),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.items[3] = {
.id = 4,
.text = "Item 4"
},
.next_act = {
.list = { STK_COMMAND_TYPE_SEND_SMS,
STK_COMMAND_TYPE_SETUP_CALL,
STK_COMMAND_TYPE_LAUNCH_BROWSER,
STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO },
.len = 4
}
};
static struct setup_menu_test setup_menu_data_411 = {
.pdu = setup_menu_411,
.pdu_len = sizeof(setup_menu_411),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct setup_menu_test setup_menu_data_421 = {
.pdu = setup_menu_421,
.pdu_len = sizeof(setup_menu_421),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct setup_menu_test setup_menu_data_511 = {
.pdu = setup_menu_511,
.pdu_len = sizeof(setup_menu_511),
.qualifier = 0x01,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
}
};
static struct setup_menu_test setup_menu_data_611 = {
.pdu = setup_menu_611,
.pdu_len = sizeof(setup_menu_611),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_612 = {
.pdu = setup_menu_612,
.pdu_len = sizeof(setup_menu_612),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items[0] = {
.id = 4,
.text = "Item 4"
},
.items[1] = {
.id = 5,
.text = "Item 5"
},
.items[2] = {
.id = 6,
.text = "Item 6"
}
};
static struct setup_menu_test setup_menu_data_621 = {
.pdu = setup_menu_621,
.pdu_len = sizeof(setup_menu_621),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x01, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x01, 0xB4, 0x00, 0x06, 0x01, 0xB4,
0x00, 0x06, 0x01, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_622 = {
.pdu = setup_menu_622,
.pdu_len = sizeof(setup_menu_622),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items[0] = {
.id = 4,
.text = "Item 4"
},
.items[1] = {
.id = 5,
.text = "Item 5"
},
.items[2] = {
.id = 6,
.text = "Item 6"
}
};
/*
* Some problem with data of item #3 in item_text_attr_list
* and the explanation
*/
static struct setup_menu_test setup_menu_data_631 = {
.pdu = setup_menu_631,
.pdu_len = sizeof(setup_menu_631),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x02, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x02, 0xB4, 0x00, 0x06, 0x02, 0xB4,
0x00, 0x06, 0x02, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_632 = {
.pdu = setup_menu_632,
.pdu_len = sizeof(setup_menu_632),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items[0] = {
.id = 4,
.text = "Item 4"
},
.items[1] = {
.id = 5,
.text = "Item 5"
},
.items[2] = {
.id = 6,
.text = "Item 6"
}
};
static struct setup_menu_test setup_menu_data_641 = {
.pdu = setup_menu_641,
.pdu_len = sizeof(setup_menu_641),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x04, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x04, 0xB4, 0x00, 0x06, 0x04, 0xB4,
0x00, 0x06, 0x04, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_642 = {
.pdu = setup_menu_642,
.pdu_len = sizeof(setup_menu_642),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items[0] = {
.id = 4,
.text = "Item 4"
},
.items[1] = {
.id = 5,
.text = "Item 5"
},
.items[2] = {
.id = 6,
.text = "Item 6"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_643 = {
.pdu = setup_menu_643,
.pdu_len = sizeof(setup_menu_643),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 3",
.items[0] = {
.id = 7,
.text = "Item 7"
},
.items[1] = {
.id = 8,
.text = "Item 8"
},
.items[2] = {
.id = 9,
.text = "Item 9"
}
};
static struct setup_menu_test setup_menu_data_651 = {
.pdu = setup_menu_651,
.pdu_len = sizeof(setup_menu_651),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x08, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x08, 0xB4, 0x00, 0x06, 0x08, 0xB4,
0x00, 0x06, 0x08, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_661 = {
.pdu = setup_menu_661,
.pdu_len = sizeof(setup_menu_661),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x10, 0xB4, 0x00, 0x06, 0x10, 0xB4,
0x00, 0x06, 0x10, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_671 = {
.pdu = setup_menu_671,
.pdu_len = sizeof(setup_menu_671),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x20, 0xB4, 0x00, 0x06, 0x20, 0xB4,
0x00, 0x06, 0x20, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_681 = {
.pdu = setup_menu_681,
.pdu_len = sizeof(setup_menu_681),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x40, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x40, 0xB4, 0x00, 0x06, 0x40, 0xB4,
0x00, 0x06, 0x40, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_691 = {
.pdu = setup_menu_691,
.pdu_len = sizeof(setup_menu_691),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x80, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x80, 0xB4, 0x00, 0x06, 0x80, 0xB4,
0x00, 0x06, 0x80, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_6101 = {
.pdu = setup_menu_6101,
.pdu_len = sizeof(setup_menu_6101),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0C, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_menu_test setup_menu_data_711 = {
.pdu = setup_menu_711,
.pdu_len = sizeof(setup_menu_711),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items[0] = {
.id = 1,
.text = "ЗДРАВСТВУЙТЕ1"
},
.items[1] = {
.id = 2,
.text = "ЗДРАВСТВУЙТЕ2"
},
.items[2] = {
.id = 3,
.text = "ЗДРАВСТВУЙТЕ3"
},
.items[3] = {
.id = 4,
.text = "ЗДРАВСТВУЙТЕ4"
}
};
static struct setup_menu_test setup_menu_data_712 = {
.pdu = setup_menu_712,
.pdu_len = sizeof(setup_menu_712),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items[0] = {
.id = 0x11,
.text = "ЗДРАВСТВУЙТЕ5"
},
.items[1] = {
.id = 0x12,
.text = "ЗДРАВСТВУЙТЕ6"
}
};
static struct setup_menu_test setup_menu_data_713 = {
.pdu = setup_menu_713,
.pdu_len = sizeof(setup_menu_713),
.qualifier = 0x00
};
static struct setup_menu_test setup_menu_data_811 = {
.pdu = setup_menu_811,
.pdu_len = sizeof(setup_menu_811),
.qualifier = 0x00,
.alpha_id = "工具箱单",
.items[0] = {
.id = 1,
.text = "项目一"
},
.items[1] = {
.id = 2,
.text = "项目二"
},
.items[2] = {
.id = 3,
.text = "项目三"
},
.items[3] = {
.id = 4,
.text = "项目四"
}
};
static struct setup_menu_test setup_menu_data_812 = {
.pdu = setup_menu_812,
.pdu_len = sizeof(setup_menu_812),
.qualifier = 0x00,
.alpha_id = "工具箱单",
.items[0] = {
.id = 0x11,
.text = ""
},
.items[1] = {
.id = 0x12,
.text = ""
}
};
static struct setup_menu_test setup_menu_data_813 = {
.pdu = setup_menu_813,
.pdu_len = sizeof(setup_menu_813),
.qualifier = 0x00
};
static struct setup_menu_test setup_menu_data_911 = {
.pdu = setup_menu_911,
.pdu_len = sizeof(setup_menu_911),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items[0] = {
.id = 1,
.text = "80ル1"
},
.items[1] = {
.id = 2,
.text = "80ル2"
},
.items[2] = {
.id = 3,
.text = "80ル3"
},
.items[3] = {
.id = 4,
.text = "80ル4"
}
};
static struct setup_menu_test setup_menu_data_912 = {
.pdu = setup_menu_912,
.pdu_len = sizeof(setup_menu_912),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items[0] = {
.id = 0x11,
.text = "80ル5"
},
.items[1] = {
.id = 0x12,
.text = "80ル6"
}
};
static struct setup_menu_test setup_menu_data_913 = {
.pdu = setup_menu_913,
.pdu_len = sizeof(setup_menu_913),
.qualifier = 0x00
};
/* Defined in TS 102.384 Section 27.22.4.7 */
static void test_setup_menu(gconstpointer data)
{
const struct setup_menu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_MENU);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
if (test->alpha_id)
g_assert(command->setup_menu.alpha_id);
check_alpha_id(command->setup_menu.alpha_id, test->alpha_id);
check_items(command->setup_menu.items, test->items);
check_items_next_action_indicator(&command->setup_menu.next_act,
&test->next_act);
check_icon_id(&command->setup_menu.icon_id, &test->icon_id);
check_item_icon_id_list(&command->setup_menu.item_icon_id_list,
&test->item_icon_id_list);
check_text_attr(&command->setup_menu.text_attr, &test->text_attr);
check_item_text_attribute_list(&command->setup_menu.item_text_attr_list,
&test->item_text_attr_list);
stk_command_free(command);
}
struct select_item_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_item items[MAX_ITEM];
struct stk_items_next_action_indicator next_act;
unsigned char item_id;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
struct stk_text_attribute text_attr;
struct stk_item_text_attribute_list item_text_attr_list;
struct stk_frame_id frame_id;
};
static unsigned char select_item_111[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x8F, 0x07,
0x04, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x34 };
static unsigned char select_item_121[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x31, 0x8F, 0x05,
0x50, 0x5A, 0x65, 0x72, 0x6F,
0x8F, 0x04, 0x4F, 0x4F, 0x6E,
0x65, 0x8F, 0x04, 0x4E, 0x54,
0x77, 0x6F, 0x8F, 0x06, 0x4D,
0x54, 0x68, 0x72, 0x65, 0x65,
0x8F, 0x05, 0x4C, 0x46, 0x6F,
0x75, 0x72, 0x8F, 0x05, 0x4B,
0x46, 0x69, 0x76, 0x65, 0x8F,
0x04, 0x4A, 0x53, 0x69, 0x78,
0x8F, 0x06, 0x49, 0x53, 0x65,
0x76, 0x65, 0x6E, 0x8F, 0x06,
0x48, 0x45, 0x69, 0x67, 0x68,
0x74, 0x8F, 0x05, 0x47, 0x4E,
0x69, 0x6E, 0x65, 0x8F, 0x06,
0x46, 0x41, 0x6C, 0x70, 0x68,
0x61, 0x8F, 0x06, 0x45, 0x42,
0x72, 0x61, 0x76, 0x6F, 0x8F,
0x08, 0x44, 0x43, 0x68, 0x61,
0x72, 0x6C, 0x69, 0x65, 0x8F,
0x06, 0x43, 0x44, 0x65, 0x6C,
0x74, 0x61, 0x8F, 0x05, 0x42,
0x45, 0x63, 0x68, 0x6F, 0x8F,
0x09, 0x41, 0x46, 0x6F, 0x78,
0x2D, 0x74, 0x72, 0x6F, 0x74,
0x8F, 0x06, 0x40, 0x42, 0x6C,
0x61, 0x63, 0x6B, 0x8F, 0x06,
0x3F, 0x42, 0x72, 0x6F, 0x77,
0x6E, 0x8F, 0x04, 0x3E, 0x52,
0x65, 0x64, 0x8F, 0x07, 0x3D,
0x4F, 0x72, 0x61, 0x6E, 0x67,
0x65, 0x8F, 0x07, 0x3C, 0x59,
0x65, 0x6C, 0x6C, 0x6F, 0x77,
0x8F, 0x06, 0x3B, 0x47, 0x72,
0x65, 0x65, 0x6E, 0x8F, 0x05,
0x3A, 0x42, 0x6C, 0x75, 0x65,
0x8F, 0x07, 0x39, 0x56, 0x69,
0x6F, 0x6C, 0x65, 0x74, 0x8F,
0x05, 0x38, 0x47, 0x72, 0x65,
0x79, 0x8F, 0x06, 0x37, 0x57,
0x68, 0x69, 0x74, 0x65, 0x8F,
0x06, 0x36, 0x6D, 0x69, 0x6C,
0x6C, 0x69, 0x8F, 0x06, 0x35,
0x6D, 0x69, 0x63, 0x72, 0x6F,
0x8F, 0x05, 0x34, 0x6E, 0x61,
0x6E, 0x6F, 0x8F, 0x05, 0x33,
0x70, 0x69, 0x63, 0x6F };
static unsigned char select_item_131[] = { 0xD0, 0x81, 0xFB, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x32, 0x8F, 0x1E,
0xFF, 0x43, 0x61, 0x6C, 0x6C,
0x20, 0x46, 0x6F, 0x72, 0x77,
0x61, 0x72, 0x64, 0x69, 0x6E,
0x67, 0x20, 0x55, 0x6E, 0x63,
0x6F, 0x6E, 0x64, 0x69, 0x74,
0x69, 0x6F, 0x6E, 0x61, 0x6C,
0x8F, 0x1D, 0xFE, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x6E, 0x20, 0x55, 0x73, 0x65,
0x72, 0x20, 0x42, 0x75, 0x73,
0x79, 0x8F, 0x1C, 0xFD, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x6E, 0x20, 0x4E, 0x6F,
0x20, 0x52, 0x65, 0x70, 0x6C,
0x79, 0x8F, 0x26, 0xFC, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x6E, 0x20, 0x55, 0x73,
0x65, 0x72, 0x20, 0x4E, 0x6F,
0x74, 0x20, 0x52, 0x65, 0x61,
0x63, 0x68, 0x61, 0x62, 0x6C,
0x65, 0x8F, 0x1E, 0xFB, 0x42,
0x61, 0x72, 0x72, 0x69, 0x6E,
0x67, 0x20, 0x4F, 0x66, 0x20,
0x41, 0x6C, 0x6C, 0x20, 0x4F,
0x75, 0x74, 0x67, 0x6F, 0x69,
0x6E, 0x67, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x73, 0x8F, 0x2C,
0xFA, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x65, 0x72,
0x6E, 0x61, 0x74, 0x69, 0x6F,
0x6E, 0x61, 0x6C, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x11, 0xF9, 0x43, 0x4C, 0x49,
0x20, 0x50, 0x72, 0x65, 0x73,
0x65, 0x6E, 0x74, 0x61, 0x74,
0x69, 0x6F, 0x6E };
static unsigned char select_item_141[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0B, 0x53, 0x65, 0x6C,
0x65, 0x63, 0x74, 0x20, 0x49,
0x74, 0x65, 0x6D, 0x8F, 0x04,
0x11, 0x4F, 0x6E, 0x65, 0x8F,
0x04, 0x12, 0x54, 0x77, 0x6F };
static unsigned char select_item_151[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x81, 0xED, 0x54,
0x68, 0x65, 0x20, 0x53, 0x49,
0x4D, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x73, 0x75,
0x70, 0x70, 0x6C, 0x79, 0x20,
0x61, 0x20, 0x73, 0x65, 0x74,
0x20, 0x6F, 0x66, 0x20, 0x69,
0x74, 0x65, 0x6D, 0x73, 0x20,
0x66, 0x72, 0x6F, 0x6D, 0x20,
0x77, 0x68, 0x69, 0x63, 0x68,
0x20, 0x74, 0x68, 0x65, 0x20,
0x75, 0x73, 0x65, 0x72, 0x20,
0x6D, 0x61, 0x79, 0x20, 0x63,
0x68, 0x6F, 0x6F, 0x73, 0x65,
0x20, 0x6F, 0x6E, 0x65, 0x2E,
0x20, 0x45, 0x61, 0x63, 0x68,
0x20, 0x69, 0x74, 0x65, 0x6D,
0x20, 0x63, 0x6F, 0x6D, 0x70,
0x72, 0x69, 0x73, 0x65, 0x73,
0x20, 0x61, 0x20, 0x73, 0x68,
0x6F, 0x72, 0x74, 0x20, 0x69,
0x64, 0x65, 0x6E, 0x74, 0x69,
0x66, 0x69, 0x65, 0x72, 0x20,
0x28, 0x75, 0x73, 0x65, 0x64,
0x20, 0x74, 0x6F, 0x20, 0x69,
0x6E, 0x64, 0x69, 0x63, 0x61,
0x74, 0x65, 0x20, 0x74, 0x68,
0x65, 0x20, 0x73, 0x65, 0x6C,
0x65, 0x63, 0x74, 0x69, 0x6F,
0x6E, 0x29, 0x20, 0x61, 0x6E,
0x64, 0x20, 0x61, 0x20, 0x74,
0x65, 0x78, 0x74, 0x20, 0x73,
0x74, 0x72, 0x69, 0x6E, 0x67,
0x2E, 0x20, 0x4F, 0x70, 0x74,
0x69, 0x6F, 0x6E, 0x61, 0x6C,
0x6C, 0x79, 0x20, 0x74, 0x68,
0x65, 0x20, 0x53, 0x49, 0x4D,
0x20, 0x6D, 0x61, 0x79, 0x20,
0x69, 0x6E, 0x63, 0x6C, 0x75,
0x64, 0x65, 0x20, 0x61, 0x6E,
0x20, 0x61, 0x6C, 0x70, 0x68,
0x61, 0x20, 0x69, 0x64, 0x65,
0x6E, 0x74, 0x69, 0x66, 0x69,
0x65, 0x72, 0x2E, 0x20, 0x54,
0x68, 0x65, 0x20, 0x61, 0x6C,
0x70, 0x68, 0x61, 0x20, 0x69,
0x64, 0x65, 0x6E, 0x74, 0x69,
0x66, 0x69, 0x65, 0x72, 0x20,
0x69, 0x8F, 0x02, 0x01, 0x59 };
static unsigned char select_item_161[] = { 0xD0, 0x81, 0xF3, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x30, 0x4C,
0x61, 0x72, 0x67, 0x65, 0x4D,
0x65, 0x6E, 0x75, 0x8F, 0x1D,
0xFF, 0x31, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x55, 0x6E, 0x63, 0x6F,
0x6E, 0x64, 0x69, 0x74, 0x69,
0x6F, 0x6E, 0x61, 0x6C, 0x8F,
0x1C, 0xFE, 0x32, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x55, 0x73, 0x65, 0x72, 0x20,
0x42, 0x75, 0x73, 0x79, 0x8F,
0x1B, 0xFD, 0x33, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x4E, 0x6F, 0x20, 0x52, 0x65,
0x70, 0x6C, 0x79, 0x8F, 0x25,
0xFC, 0x34, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x4F, 0x6E, 0x20, 0x55,
0x73, 0x65, 0x72, 0x20, 0x4E,
0x6F, 0x74, 0x20, 0x52, 0x65,
0x61, 0x63, 0x68, 0x61, 0x62,
0x6C, 0x65, 0x8F, 0x20, 0xFB,
0x35, 0x20, 0x42, 0x61, 0x72,
0x72, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x66, 0x20, 0x41, 0x6C,
0x6C, 0x20, 0x4F, 0x75, 0x74,
0x67, 0x6F, 0x69, 0x6E, 0x67,
0x20, 0x43, 0x61, 0x6C, 0x6C,
0x73, 0x8F, 0x24, 0xFA, 0x36,
0x20, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x13, 0xF9, 0x37, 0x20, 0x43,
0x4C, 0x49, 0x20, 0x50, 0x72,
0x65, 0x73, 0x65, 0x6E, 0x74,
0x61, 0x74, 0x69, 0x6F, 0x6E };
static unsigned char select_item_211[] = { 0xD0, 0x39, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x18, 0x03,
0x13, 0x10, 0x26 };
static unsigned char select_item_311[] = { 0xD0, 0x37, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x90, 0x01,
0x02 };
static unsigned char select_item_411[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x80, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_511[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x9E, 0x02,
0x01, 0x01, 0x9F, 0x04, 0x01,
0x05, 0x05, 0x05 };
static unsigned char select_item_521[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x9E, 0x02,
0x00, 0x01, 0x9F, 0x04, 0x00,
0x05, 0x05, 0x05 };
static unsigned char select_item_611[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x03, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_621[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x01, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_711[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x24,
0x04, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32 };
static unsigned char select_item_811[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0A, 0x3C, 0x54, 0x49,
0x4D, 0x45, 0x2D, 0x4F, 0x55,
0x54, 0x3E, 0x8F, 0x07, 0x01,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x31, 0x8F, 0x07, 0x02, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x32,
0x8F, 0x07, 0x03, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x33 };
static unsigned char select_item_911[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_912[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_921[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x01, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x01, 0xB4, 0x00, 0x06,
0x01, 0xB4 };
static unsigned char select_item_922[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_931[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x02, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x02, 0xB4, 0x00, 0x06,
0x02, 0xB4 };
static unsigned char select_item_932[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_941[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x04, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x04, 0xB4, 0x00, 0x06,
0x04, 0xB4 };
static unsigned char select_item_942[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_943[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_951[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x08, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x08, 0xB4, 0x00, 0x06,
0x08, 0xB4 };
static unsigned char select_item_952[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_953[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_961[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x10, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x10, 0xB4, 0x00, 0x06,
0x10, 0xB4 };
static unsigned char select_item_962[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_963[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_971[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x20, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x20, 0xB4, 0x00, 0x06,
0x20, 0xB4 };
static unsigned char select_item_972[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_973[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_981[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x40, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x40, 0xB4, 0x00, 0x06,
0x40, 0xB4 };
static unsigned char select_item_982[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_983[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_991[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x80, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x80, 0xB4, 0x00, 0x06,
0x80, 0xB4 };
static unsigned char select_item_992[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_993[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_9101[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_9102[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_1011[] = { 0xD0, 0x7E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8F, 0x1C, 0x01,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x31, 0x8F, 0x1C, 0x02,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x32, 0x8F, 0x1C, 0x03,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x33 };
static unsigned char select_item_1021[] = { 0xD0, 0x53, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0F, 0x81, 0x0C, 0x08,
0x97, 0x94, 0xA0, 0x90, 0x92,
0xA1, 0xA2, 0x92, 0xA3, 0x99,
0xA2, 0x95, 0x8F, 0x11, 0x01,
0x81, 0x0D, 0x08, 0x97, 0x94,
0xA0, 0x90, 0x92, 0xA1, 0xA2,
0x92, 0xA3, 0x99, 0xA2, 0x95,
0x31, 0x8F, 0x11, 0x02, 0x81,
0x0D, 0x08, 0x97, 0x94, 0xA0,
0x90, 0x92, 0xA1, 0xA2, 0x92,
0xA3, 0x99, 0xA2, 0x95, 0x32,
0x8F, 0x11, 0x03, 0x81, 0x0D,
0x08, 0x97, 0x94, 0xA0, 0x90,
0x92, 0xA1, 0xA2, 0x92, 0xA3,
0x99, 0xA2, 0x95, 0x33 };
static unsigned char select_item_1031[] = { 0xD0, 0x57, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x82, 0x0C, 0x04,
0x10, 0x87, 0x84, 0x90, 0x80,
0x82, 0x91, 0x92, 0x82, 0x93,
0x89, 0x92, 0x85, 0x8F, 0x12,
0x01, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x31, 0x8F, 0x12,
0x02, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x32, 0x8F, 0x12,
0x03, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x33 };
static unsigned char select_item_1111[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0B, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x90,
0x09, 0x62, 0xE9, 0x8F, 0x08,
0x01, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x00, 0x8F, 0x08,
0x02, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x8C, 0x8F, 0x08,
0x03, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x09, 0x8F, 0x08,
0x04, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x56, 0xDB };
static unsigned char select_item_1211[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x01, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x31, 0x8F, 0x0A,
0x02, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x32,
0x8F, 0x0A, 0x03, 0x80, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0x00, 0x33 };
static unsigned char select_item_1221[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x07, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x30, 0x8F,
0x08, 0x01, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x31, 0x8F,
0x08, 0x02, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x32, 0x8F,
0x08, 0x03, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x33 };
static unsigned char select_item_1231[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x08, 0x82, 0x04, 0x30,
0xA0, 0x38, 0x32, 0xCB, 0x30,
0x8F, 0x09, 0x01, 0x82, 0x04,
0x30, 0xA0, 0x38, 0x32, 0xCB,
0x31, 0x8F, 0x09, 0x02, 0x82,
0x04, 0x30, 0xA0, 0x38, 0x32,
0xCB, 0x32, 0x8F, 0x09, 0x03,
0x82, 0x04, 0x30, 0xA0, 0x38,
0x32, 0xCB, 0x33 };
static struct select_item_test select_item_data_111 = {
.pdu = select_item_111,
.pdu_len = sizeof(select_item_111),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.items[3] = {
.id = 4,
.text = "Item 4"
}
};
static struct select_item_test select_item_data_121 = {
.pdu = select_item_121,
.pdu_len = sizeof(select_item_121),
.qualifier = 0x00,
.alpha_id = "LargeMenu1",
.items[0] = {
.id = 0x50,
.text = "Zero"
},
.items[1] = {
.id = 0x4F,
.text = "One"
},
.items[2] = {
.id = 0x4E,
.text = "Two"
},
.items[3] = {
.id = 0x4D,
.text = "Three"
},
.items[4] = {
.id = 0x4C,
.text = "Four"
},
.items[5] = {
.id = 0x4B,
.text = "Five"
},
.items[6] = {
.id = 0x4A,
.text = "Six"
},
.items[7] = {
.id = 0x49,
.text = "Seven"
},
.items[8] = {
.id = 0x48,
.text = "Eight"
},
.items[9] = {
.id = 0x47,
.text = "Nine"
},
.items[10] = {
.id = 0x46,
.text = "Alpha"
},
.items[11] = {
.id = 0x45,
.text = "Bravo"
},
.items[12] = {
.id = 0x44,
.text = "Charlie"
},
.items[13] = {
.id = 0x43,
.text = "Delta"
},
.items[14] = {
.id = 0x42,
.text = "Echo"
},
.items[15] = {
.id = 0x41,
.text = "Fox-trot"
},
.items[16] = {
.id = 0x40,
.text = "Black"
},
.items[17] = {
.id = 0x3F,
.text = "Brown"
},
.items[18] = {
.id = 0x3E,
.text = "Red"
},
.items[19] = {
.id = 0x3D,
.text = "Orange"
},
.items[20] = {
.id = 0x3C,
.text = "Yellow"
},
.items[21] = {
.id = 0x3B,
.text = "Green"
},
.items[22] = {
.id = 0x3A,
.text = "Blue"
},
.items[23] = {
.id = 0x39,
.text = "Violet"
},
.items[24] = {
.id = 0x38,
.text = "Grey"
},
.items[25] = {
.id = 0x37,
.text = "White"
},
.items[26] = {
.id = 0x36,
.text = "milli"
},
.items[27] = {
.id = 0x35,
.text = "micro"
},
.items[28] = {
.id = 0x34,
.text = "nano"
},
.items[29] = {
.id = 0x33,
.text = "pico"
}
};
static struct select_item_test select_item_data_131 = {
.pdu = select_item_131,
.pdu_len = sizeof(select_item_131),
.qualifier = 0x00,
.alpha_id = "LargeMenu2",
.items[0] = {
.id = 0xFF,
.text = "Call Forwarding Unconditional"
},
.items[1] = {
.id = 0xFE,
.text = "Call Forwarding On User Busy"
},
.items[2] = {
.id = 0xFD,
.text = "Call Forwarding On No Reply"
},
.items[3] = {
.id = 0xFC,
.text = "Call Forwarding On User Not Reachable"
},
.items[4] = {
.id = 0xFB,
.text = "Barring Of All Outgoing Calls"
},
.items[5] = {
.id = 0xFA,
.text = "Barring Of All Outgoing International Calls"
},
.items[6] = {
.id = 0xF9,
.text = "CLI Presentation"
}
};
static struct select_item_test select_item_data_141 = {
.pdu = select_item_141,
.pdu_len = sizeof(select_item_141),
.qualifier = 0x00,
.alpha_id = "Select Item",
.items[0] = {
.id = 0x11,
.text = "One"
},
.items[1] = {
.id = 0x12,
.text = "Two"
}
};
static struct select_item_test select_item_data_151 = {
.pdu = select_item_151,
.pdu_len = sizeof(select_item_151),
.qualifier = 0x00,
.alpha_id = "The SIM shall supply a set of items from which the user "
"may choose one. Each item comprises a short identifier (used "
"to indicate the selection) and a text string. Optionally the "
"SIM may include an alpha identifier. The alpha identifier i",
.items[0] = {
.id = 0x01,
.text = "Y"
}
};
static struct select_item_test select_item_data_161 = {
.pdu = select_item_161,
.pdu_len = sizeof(select_item_161),
.qualifier = 0x00,
.alpha_id = "0LargeMenu",
.items[0] = {
.id = 0xFF,
.text = "1 Call Forward Unconditional"
},
.items[1] = {
.id = 0xFE,
.text = "2 Call Forward On User Busy"
},
.items[2] = {
.id = 0xFD,
.text = "3 Call Forward On No Reply"
},
.items[3] = {
.id = 0xFC,
.text = "4 Call Forward On User Not Reachable"
},
.items[4] = {
.id = 0xFB,
.text = "5 Barring Of All Outgoing Calls"
},
.items[5] = {
.id = 0xFA,
.text = "6 Barring Of All Outgoing Int Calls"
},
.items[6] = {
.id = 0xF9,
.text = "7 CLI Presentation"
}
};
static struct select_item_test select_item_data_211 = {
.pdu = select_item_211,
.pdu_len = sizeof(select_item_211),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.next_act = {
.list = { STK_COMMAND_TYPE_SEND_SMS,
STK_COMMAND_TYPE_SETUP_CALL,
STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO},
.len = 3
}
};
static struct select_item_test select_item_data_311 = {
.pdu = select_item_311,
.pdu_len = sizeof(select_item_311),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.item_id = 0x02
};
static struct select_item_test select_item_data_411 = {
.pdu = select_item_411,
.pdu_len = sizeof(select_item_411),
.qualifier = 0x80,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
}
};
static struct select_item_test select_item_data_511 = {
.pdu = select_item_511,
.pdu_len = sizeof(select_item_511),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct select_item_test select_item_data_521 = {
.pdu = select_item_521,
.pdu_len = sizeof(select_item_521),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct select_item_test select_item_data_611 = {
.pdu = select_item_611,
.pdu_len = sizeof(select_item_611),
.qualifier = 0x03,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
}
};
static struct select_item_test select_item_data_621 = {
.pdu = select_item_621,
.pdu_len = sizeof(select_item_621),
.qualifier = 0x01,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
}
};
static struct select_item_test select_item_data_711 = {
.pdu = select_item_711,
.pdu_len = sizeof(select_item_711),
.qualifier = 0x04,
.alpha_id = "Toolkit Select",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
}
};
static struct select_item_test select_item_data_811 = {
.pdu = select_item_811,
.pdu_len = sizeof(select_item_811),
.qualifier = 0x00,
.alpha_id = "<TIME-OUT>",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.items[2] = {
.id = 3,
.text = "Item 3"
}
};
static struct select_item_test select_item_data_911 = {
.pdu = select_item_911,
.pdu_len = sizeof(select_item_911),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_912 = {
.pdu = select_item_912,
.pdu_len = sizeof(select_item_912),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
}
};
static struct select_item_test select_item_data_921 = {
.pdu = select_item_921,
.pdu_len = sizeof(select_item_921),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x01, 0xB4, 0x00, 0x06, 0x01, 0xB4 }
}
};
static struct select_item_test select_item_data_922 = {
.pdu = select_item_922,
.pdu_len = sizeof(select_item_922),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
}
};
static struct select_item_test select_item_data_931 = {
.pdu = select_item_931,
.pdu_len = sizeof(select_item_931),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x02, 0xB4, 0x00, 0x06, 0x02, 0xB4 }
}
};
static struct select_item_test select_item_data_932 = {
.pdu = select_item_932,
.pdu_len = sizeof(select_item_932),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
}
};
static struct select_item_test select_item_data_941 = {
.pdu = select_item_941,
.pdu_len = sizeof(select_item_941),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x04, 0xB4, 0x00, 0x06, 0x04, 0xB4 }
}
};
static struct select_item_test select_item_data_942 = {
.pdu = select_item_942,
.pdu_len = sizeof(select_item_942),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_943 = {
.pdu = select_item_943,
.pdu_len = sizeof(select_item_943),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_951 = {
.pdu = select_item_951,
.pdu_len = sizeof(select_item_951),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x08, 0xB4, 0x00, 0x06, 0x08, 0xB4 }
}
};
static struct select_item_test select_item_data_952 = {
.pdu = select_item_952,
.pdu_len = sizeof(select_item_952),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_953 = {
.pdu = select_item_953,
.pdu_len = sizeof(select_item_953),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_961 = {
.pdu = select_item_961,
.pdu_len = sizeof(select_item_961),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x10, 0xB4, 0x00, 0x06, 0x10, 0xB4 }
}
};
static struct select_item_test select_item_data_962 = {
.pdu = select_item_962,
.pdu_len = sizeof(select_item_962),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_963 = {
.pdu = select_item_963,
.pdu_len = sizeof(select_item_963),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_971 = {
.pdu = select_item_971,
.pdu_len = sizeof(select_item_971),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x20, 0xB4, 0x00, 0x06, 0x20, 0xB4 }
}
};
static struct select_item_test select_item_data_972 = {
.pdu = select_item_972,
.pdu_len = sizeof(select_item_972),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_973 = {
.pdu = select_item_973,
.pdu_len = sizeof(select_item_973),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_981 = {
.pdu = select_item_981,
.pdu_len = sizeof(select_item_981),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x40, 0xB4, 0x00, 0x06, 0x40, 0xB4 }
}
};
static struct select_item_test select_item_data_982 = {
.pdu = select_item_982,
.pdu_len = sizeof(select_item_982),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_983 = {
.pdu = select_item_983,
.pdu_len = sizeof(select_item_983),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_991 = {
.pdu = select_item_991,
.pdu_len = sizeof(select_item_991),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x80, 0xB4, 0x00, 0x06, 0x80, 0xB4 }
}
};
static struct select_item_test select_item_data_992 = {
.pdu = select_item_992,
.pdu_len = sizeof(select_item_992),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_993 = {
.pdu = select_item_993,
.pdu_len = sizeof(select_item_993),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items[0] = {
.id = 1,
.text = "Item 5"
},
.items[1] = {
.id = 2,
.text = "Item 6"
}
};
static struct select_item_test select_item_data_9101 = {
.pdu = select_item_9101,
.pdu_len = sizeof(select_item_9101),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items[0] = {
.id = 1,
.text = "Item 1"
},
.items[1] = {
.id = 2,
.text = "Item 2"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct select_item_test select_item_data_9102 = {
.pdu = select_item_9102,
.pdu_len = sizeof(select_item_9102),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items[0] = {
.id = 1,
.text = "Item 3"
},
.items[1] = {
.id = 2,
.text = "Item 4"
}
};
static struct select_item_test select_item_data_1011 = {
.pdu = select_item_1011,
.pdu_len = sizeof(select_item_1011),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items[0] = {
.id = 1,
.text = "ЗДРАВСТВУЙТЕ1"
},
.items[1] = {
.id = 2,
.text = "ЗДРАВСТВУЙТЕ2"
},
.items[2] = {
.id = 3,
.text = "ЗДРАВСТВУЙТЕ3"
}
};
static struct select_item_test select_item_data_1021 = {
.pdu = select_item_1021,
.pdu_len = sizeof(select_item_1021),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items[0] = {
.id = 1,
.text = "ЗДРАВСТВУЙТЕ1"
},
.items[1] = {
.id = 2,
.text = "ЗДРАВСТВУЙТЕ2"
},
.items[2] = {
.id = 3,
.text = "ЗДРАВСТВУЙТЕ3"
}
};
static struct select_item_test select_item_data_1031 = {
.pdu = select_item_1031,
.pdu_len = sizeof(select_item_1031),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items[0] = {
.id = 1,
.text = "ЗДРАВСТВУЙТЕ1"
},
.items[1] = {
.id = 2,
.text = "ЗДРАВСТВУЙТЕ2"
},
.items[2] = {
.id = 3,
.text = "ЗДРАВСТВУЙТЕ3"
}
};
static struct select_item_test select_item_data_1111 = {
.pdu = select_item_1111,
.pdu_len = sizeof(select_item_1111),
.qualifier = 0x00,
.alpha_id = "工具箱选择",
.items[0] = {
.id = 1,
.text = "项目一"
},
.items[1] = {
.id = 2,
.text = "项目二"
},
.items[2] = {
.id = 3,
.text = "项目三"
},
.items[3] = {
.id = 4,
.text = "项目四"
}
};
static struct select_item_test select_item_data_1211 = {
.pdu = select_item_1211,
.pdu_len = sizeof(select_item_1211),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items[0] = {
.id = 1,
.text = "80ル1"
},
.items[1] = {
.id = 2,
.text = "80ル2"
},
.items[2] = {
.id = 3,
.text = "80ル3"
}
};
static struct select_item_test select_item_data_1221 = {
.pdu = select_item_1221,
.pdu_len = sizeof(select_item_1221),
.qualifier = 0x00,
.alpha_id = "81ル0",
.items[0] = {
.id = 1,
.text = "81ル1"
},
.items[1] = {
.id = 2,
.text = "81ル2"
},
.items[2] = {
.id = 3,
.text = "81ル3"
}
};
static struct select_item_test select_item_data_1231 = {
.pdu = select_item_1231,
.pdu_len = sizeof(select_item_1231),
.qualifier = 0x00,
.alpha_id = "82ル0",
.items[0] = {
.id = 1,
.text = "82ル1"
},
.items[1] = {
.id = 2,
.text = "82ル2"
},
.items[2] = {
.id = 3,
.text = "82ル3"
}
};
static void test_select_item(gconstpointer data)
{
const struct select_item_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SELECT_ITEM);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_alpha_id(command->select_item.alpha_id, test->alpha_id);
check_items(command->select_item.items, test->items);
check_items_next_action_indicator(&command->select_item.next_act,
&test->next_act);
check_item_id(command->select_item.item_id, test->item_id);
check_icon_id(&command->select_item.icon_id, &test->icon_id);
check_item_icon_id_list(&command->select_item.item_icon_id_list,
&test->item_icon_id_list);
check_text_attr(&command->select_item.text_attr, &test->text_attr);
check_item_text_attribute_list(
&command->select_item.item_text_attr_list,
&test->item_text_attr_list);
check_frame_id(&command->select_item.frame_id, &test->frame_id);
stk_command_free(command);
}
struct send_sms_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_address address;
struct sms gsm_sms;
struct stk_common_byte_array cdma_sms;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
/* 3GPP TS 31.124 Section 27.22.4.10.1.4.2 */
static unsigned char send_sms_111[] = { 0xD0, 0x37, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83, 0x85,
0x07, 0x53, 0x65, 0x6E, 0x64, 0x20,
0x53, 0x4D, 0x86, 0x09, 0x91, 0x11,
0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0xF8, 0x8B, 0x18, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76, 0xF8,
0x40, 0xF4, 0x0C, 0x54, 0x65, 0x73,
0x74, 0x20, 0x4D, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65 };
static struct send_sms_test send_sms_data_111 = {
.pdu = send_sms_111,
.pdu_len = sizeof(send_sms_111),
.qualifier = 0x00,
.alpha_id = "Send SM",
.address = {
.ton_npi = 0x91,
.number = "112233445566778"
},
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr.address = "012345678",
.udl = 12,
.ud = "Test Message"
} }
}
};
static void test_send_sms(gconstpointer data)
{
const struct send_sms_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SEND_SMS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->send_sms.alpha_id, test->alpha_id);
check_address(&command->send_sms.address, &test->address);
check_gsm_sms_tpdu(&command->send_sms.gsm_sms, &test->gsm_sms);
check_cdma_sms_tpdu(&command->send_sms.cdma_sms, &test->cdma_sms);
check_icon_id(&command->select_item.icon_id, &test->icon_id);
check_text_attr(&command->select_item.text_attr, &test->text_attr);
check_frame_id(&command->select_item.frame_id, &test->frame_id);
stk_command_free(command);
}
struct setup_call_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id_usr_cfm;
struct stk_address addr;
struct stk_ccp ccp;
struct stk_subaddress subaddr;
struct stk_duration duration;
struct stk_icon_id icon_id_usr_cfm;
char *alpha_id_call_setup;
struct stk_icon_id icon_id_call_setup;
struct stk_text_attribute text_attr_usr_cfm;
struct stk_text_attribute text_attr_call_setup;
struct stk_frame_id frame_id;
};
static unsigned char setup_call_111[] = { 0xD0, 0x1E, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x08, 0x4E, 0x6F, 0x74,
0x20, 0x62, 0x75, 0x73, 0x79,
0x86, 0x09, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65, 0x1C,
0x2C };
static unsigned char setup_call_141[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x10,
0x02, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x4F, 0x6E, 0x20,
0x68, 0x6F, 0x6C, 0x64, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C };
static unsigned char setup_call_151[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x10,
0x04, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x44, 0x69, 0x73,
0x63, 0x6F, 0x6E, 0x6E, 0x65,
0x63, 0x74, 0x86, 0x09, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x1C, 0x2C };
static unsigned char setup_call_181[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x11, 0x43, 0x61, 0x70,
0x61, 0x62, 0x69, 0x6C, 0x69,
0x74, 0x79, 0x20, 0x63, 0x6F,
0x6E, 0x66, 0x69, 0x67, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x87, 0x02, 0x01, 0xA0 };
static unsigned char setup_call_191[] = { 0xD0, 0x1C, 0x81, 0x03, 0x01, 0x10,
0x01, 0x82, 0x02, 0x81, 0x83,
0x86, 0x11, 0x91, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10 };
static unsigned char setup_call_1101[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x10, 0x01, 0x82, 0x02, 0x81,
0x83, 0x85, 0x81, 0xED, 0x54,
0x68, 0x72, 0x65, 0x65, 0x20,
0x74, 0x79, 0x70, 0x65, 0x73,
0x20, 0x61, 0x72, 0x65, 0x20,
0x64, 0x65, 0x66, 0x69, 0x6E,
0x65, 0x64, 0x3A, 0x20, 0x2D,
0x20, 0x73, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x61, 0x20,
0x63, 0x61, 0x6C, 0x6C, 0x2C,
0x20, 0x62, 0x75, 0x74, 0x20,
0x6F, 0x6E, 0x6C, 0x79, 0x20,
0x69, 0x66, 0x20, 0x6E, 0x6F,
0x74, 0x20, 0x63, 0x75, 0x72,
0x72, 0x65, 0x6E, 0x74, 0x6C,
0x79, 0x20, 0x62, 0x75, 0x73,
0x79, 0x20, 0x6F, 0x6E, 0x20,
0x61, 0x6E, 0x6F, 0x74, 0x68,
0x65, 0x72, 0x20, 0x63, 0x61,
0x6C, 0x6C, 0x3B, 0x20, 0x2D,
0x20, 0x73, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x61, 0x20,
0x63, 0x61, 0x6C, 0x6C, 0x2C,
0x20, 0x70, 0x75, 0x74, 0x74,
0x69, 0x6E, 0x67, 0x20, 0x61,
0x6C, 0x6C, 0x20, 0x6F, 0x74,
0x68, 0x65, 0x72, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x73, 0x20,
0x28, 0x69, 0x66, 0x20, 0x61,
0x6E, 0x79, 0x29, 0x20, 0x6F,
0x6E, 0x20, 0x68, 0x6F, 0x6C,
0x64, 0x3B, 0x20, 0x2D, 0x20,
0x73, 0x65, 0x74, 0x20, 0x75,
0x70, 0x20, 0x61, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x2C, 0x20,
0x64, 0x69, 0x73, 0x63, 0x6F,
0x6E, 0x6E, 0x65, 0x63, 0x74,
0x69, 0x6E, 0x67, 0x20, 0x61,
0x6C, 0x6C, 0x20, 0x6F, 0x74,
0x68, 0x65, 0x72, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x73, 0x20,
0x28, 0x69, 0x66, 0x20, 0x61,
0x6E, 0x79, 0x29, 0x20, 0x66,
0x69, 0x72, 0x73, 0x74, 0x2E,
0x20, 0x46, 0x6F, 0x72, 0x20,
0x65, 0x61, 0x63, 0x68, 0x20,
0x6F, 0x66, 0x20, 0x74, 0x68,
0x65, 0x73, 0x65, 0x20, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2C,
0x20, 0x86, 0x02, 0x91, 0x10 };
static unsigned char setup_call_1111[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x61, 0x6C,
0x6C, 0x65, 0x64, 0x20, 0x70,
0x61, 0x72, 0x74, 0x79, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x88, 0x07, 0x80, 0x50, 0x95,
0x95, 0x95, 0x95, 0x95 };
static unsigned char setup_call_1121[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x10,
0x01, 0x82, 0x02, 0x81, 0x83,
0x85, 0x08, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6F, 0x6E,
0x86, 0x09, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65, 0x1C,
0x2C, 0x84, 0x02, 0x01, 0x0A };
static unsigned char setup_call_211[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x85, 0x04, 0x43, 0x41, 0x4C,
0x4C };
static unsigned char setup_call_311[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x31, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x01, 0x01 };
static unsigned char setup_call_321[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x32, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x00, 0x01 };
static unsigned char setup_call_331[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x33, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x01, 0x02 };
static unsigned char setup_call_341[] = { 0xD0, 0x4C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x34, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x00, 0x01, 0x85,
0x16, 0x53, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x63, 0x61,
0x6C, 0x6C, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x20, 0x33, 0x2E,
0x34, 0x2E, 0x32, 0x9E, 0x02,
0x00, 0x01 };
static unsigned char setup_call_411[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_412[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_421[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x01,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x01, 0xB4 };
static unsigned char setup_call_422[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_431[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x02,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x02, 0xB4 };
static unsigned char setup_call_432[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_441[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x04,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x04, 0xB4 };
static unsigned char setup_call_442[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_443[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_451[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x08,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x08, 0xB4 };
static unsigned char setup_call_452[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_453[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_461[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x10,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x10, 0xB4 };
static unsigned char setup_call_462[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_463[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_471[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x20,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x20, 0xB4 };
static unsigned char setup_call_472[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_473[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_481[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x40,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x40, 0xB4 };
static unsigned char setup_call_482[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_483[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_491[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x80,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x80, 0xB4 };
static unsigned char setup_call_492[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_493[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_4101[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0x4B };
static unsigned char setup_call_4102[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_511[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65 };
static unsigned char setup_call_521[] = { 0xD0, 0x4C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x1B, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x00, 0x31, 0x86,
0x07, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x85, 0x1B,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x32 };
static unsigned char setup_call_611[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4E, 0x0D,
0x5F, 0xD9, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65 };
static unsigned char setup_call_621[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x78, 0x6E,
0x5B, 0x9A, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x85, 0x07, 0x80, 0x62,
0x53, 0x75, 0x35, 0x8B, 0xDD };
static unsigned char setup_call_711[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x03, 0x80, 0x30, 0xEB,
0x86, 0x07, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65 };
static unsigned char setup_call_721[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x30, 0xEB,
0x00, 0x31, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x85, 0x05, 0x80, 0x30,
0xEB, 0x00, 0x32 };
static struct setup_call_test setup_call_data_111 = {
.pdu = setup_call_111,
.pdu_len = sizeof(setup_call_111),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Not busy",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
}
};
static struct setup_call_test setup_call_data_141 = {
.pdu = setup_call_141,
.pdu_len = sizeof(setup_call_141),
.qualifier = 0x02,
.alpha_id_usr_cfm = "On hold",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
}
};
static struct setup_call_test setup_call_data_151 = {
.pdu = setup_call_151,
.pdu_len = sizeof(setup_call_151),
.qualifier = 0x04,
.alpha_id_usr_cfm = "Disconnect",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
}
};
static struct setup_call_test setup_call_data_181 = {
.pdu = setup_call_181,
.pdu_len = sizeof(setup_call_181),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Capability config",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.ccp = {
.len = 0x02,
.ccp = { 0x01, 0xA0 }
}
};
static struct setup_call_test setup_call_data_191 = {
.pdu = setup_call_191,
.pdu_len = sizeof(setup_call_191),
.qualifier = 0x01,
.addr = {
.ton_npi = 0x91,
.number = "01234567890123456789012345678901"
}
};
static struct setup_call_test setup_call_data_1101 = {
.pdu = setup_call_1101,
.pdu_len = sizeof(setup_call_1101),
.qualifier = 0x01,
.alpha_id_usr_cfm = "Three types are defined: - set up a call, but "
"only if not currently busy on another call; - set "
"up a call, putting all other calls (if any) on hold; "
"- set up a call, disconnecting all other calls (if "
"any) first. For each of these types, ",
.addr = {
.ton_npi = 0x91,
.number = "01"
}
};
static struct setup_call_test setup_call_data_1111 = {
.pdu = setup_call_1111,
.pdu_len = sizeof(setup_call_1111),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Called party",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.subaddr = {
.len = 0x07,
.subaddr = { 0x80, 0x50, 0x95, 0x95, 0x95, 0x95, 0x95 }
}
};
static struct setup_call_test setup_call_data_1121 = {
.pdu = setup_call_1121,
.pdu_len = sizeof(setup_call_1121),
.qualifier = 0x01,
.alpha_id_usr_cfm = "Duration",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10,
}
};
static struct setup_call_test setup_call_data_211 = {
.pdu = setup_call_211,
.pdu_len = sizeof(setup_call_211),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL"
};
static struct setup_call_test setup_call_data_311 = {
.pdu = setup_call_311,
.pdu_len = sizeof(setup_call_311),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.1.1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_321 = {
.pdu = setup_call_321,
.pdu_len = sizeof(setup_call_321),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.2.1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_331 = {
.pdu = setup_call_331,
.pdu_len = sizeof(setup_call_331),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.3.1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct setup_call_test setup_call_data_341 = {
.pdu = setup_call_341,
.pdu_len = sizeof(setup_call_341),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.4.1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
},
.alpha_id_call_setup = "Set up call Icon 3.4.2",
.icon_id_call_setup = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_411 = {
.pdu = setup_call_411,
.pdu_len = sizeof(setup_call_411),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_412 = {
.pdu = setup_call_412,
.pdu_len = sizeof(setup_call_412),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_421 = {
.pdu = setup_call_421,
.pdu_len = sizeof(setup_call_421),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x01, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x01, 0xB4 }
}
};
static struct setup_call_test setup_call_data_422 = {
.pdu = setup_call_422,
.pdu_len = sizeof(setup_call_422),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_431 = {
.pdu = setup_call_431,
.pdu_len = sizeof(setup_call_431),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x02, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x02, 0xB4 }
}
};
static struct setup_call_test setup_call_data_432 = {
.pdu = setup_call_432,
.pdu_len = sizeof(setup_call_432),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_441 = {
.pdu = setup_call_441,
.pdu_len = sizeof(setup_call_441),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x04, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x04, 0xB4 }
}
};
static struct setup_call_test setup_call_data_442 = {
.pdu = setup_call_442,
.pdu_len = sizeof(setup_call_442),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_443 = {
.pdu = setup_call_443,
.pdu_len = sizeof(setup_call_443),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_451 = {
.pdu = setup_call_451,
.pdu_len = sizeof(setup_call_451),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x08, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x08, 0xB4 }
}
};
static struct setup_call_test setup_call_data_452 = {
.pdu = setup_call_452,
.pdu_len = sizeof(setup_call_452),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_453 = {
.pdu = setup_call_453,
.pdu_len = sizeof(setup_call_453),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_461 = {
.pdu = setup_call_461,
.pdu_len = sizeof(setup_call_461),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x10, 0xB4 }
}
};
static struct setup_call_test setup_call_data_462 = {
.pdu = setup_call_462,
.pdu_len = sizeof(setup_call_462),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_463 = {
.pdu = setup_call_463,
.pdu_len = sizeof(setup_call_463),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_471 = {
.pdu = setup_call_471,
.pdu_len = sizeof(setup_call_471),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x20, 0xB4 }
}
};
static struct setup_call_test setup_call_data_472 = {
.pdu = setup_call_472,
.pdu_len = sizeof(setup_call_472),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_473 = {
.pdu = setup_call_473,
.pdu_len = sizeof(setup_call_473),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_481 = {
.pdu = setup_call_481,
.pdu_len = sizeof(setup_call_481),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x40, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x40, 0xB4 }
}
};
static struct setup_call_test setup_call_data_482 = {
.pdu = setup_call_482,
.pdu_len = sizeof(setup_call_482),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_483 = {
.pdu = setup_call_483,
.pdu_len = sizeof(setup_call_483),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_491 = {
.pdu = setup_call_491,
.pdu_len = sizeof(setup_call_491),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x80, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x80, 0xB4 }
}
};
static struct setup_call_test setup_call_data_492 = {
.pdu = setup_call_492,
.pdu_len = sizeof(setup_call_492),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_493 = {
.pdu = setup_call_493,
.pdu_len = sizeof(setup_call_493),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_4101 = {
.pdu = setup_call_4101,
.pdu_len = sizeof(setup_call_4101),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0x4B }
}
};
static struct setup_call_test setup_call_data_4102 = {
.pdu = setup_call_4102,
.pdu_len = sizeof(setup_call_4102),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
.number = "012340123456a1a2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_511 = {
.pdu = setup_call_511,
.pdu_len = sizeof(setup_call_511),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ЗДРАВСТВУЙТЕ",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_521 = {
.pdu = setup_call_521,
.pdu_len = sizeof(setup_call_521),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ЗДРАВСТВУЙТЕ1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "ЗДРАВСТВУЙТЕ2"
};
static struct setup_call_test setup_call_data_611 = {
.pdu = setup_call_611,
.pdu_len = sizeof(setup_call_611),
.qualifier = 0x00,
.alpha_id_usr_cfm = "不忙",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_621 = {
.pdu = setup_call_621,
.pdu_len = sizeof(setup_call_621),
.qualifier = 0x00,
.alpha_id_usr_cfm = "确定",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "打电话"
};
static struct setup_call_test setup_call_data_711 = {
.pdu = setup_call_711,
.pdu_len = sizeof(setup_call_711),
.qualifier = 0x00,
.alpha_id_usr_cfm = "",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_721 = {
.pdu = setup_call_721,
.pdu_len = sizeof(setup_call_721),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ル1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "ル2"
};
static void test_setup_call(gconstpointer data)
{
const struct setup_call_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_CALL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->setup_call.alpha_id_usr_cfm,
test->alpha_id_usr_cfm);
check_address(&command->setup_call.addr, &test->addr);
check_ccp(&command->setup_call.ccp, &test->ccp);
check_subaddress(&command->setup_call.subaddr, &test->subaddr);
check_duration(&command->setup_call.duration, &test->duration);
check_icon_id(&command->setup_call.icon_id_usr_cfm,
&test->icon_id_usr_cfm);
check_alpha_id(command->setup_call.alpha_id_call_setup,
test->alpha_id_call_setup);
check_icon_id(&command->setup_call.icon_id_call_setup,
&test->icon_id_call_setup);
check_text_attr(&command->setup_call.text_attr_usr_cfm,
&test->text_attr_usr_cfm);
check_text_attr(&command->setup_call.text_attr_call_setup,
&test->text_attr_call_setup);
check_frame_id(&command->setup_call.frame_id, &test->frame_id);
stk_command_free(command);
}
struct refresh_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_file file_list[MAX_ITEM];
struct stk_aid aid;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char refresh_121[] = { 0xD0, 0x10, 0x81, 0x03, 0x01, 0x01,
0x01, 0x82, 0x02, 0x81, 0x82,
0x92, 0x05, 0x01, 0x3F, 0x00,
0x2F, 0xE2 };
static unsigned char refresh_151[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x01,
0x04, 0x82, 0x02, 0x81, 0x82 };
static struct refresh_test refresh_data_121 = {
.pdu = refresh_121,
.pdu_len = sizeof(refresh_121),
.qualifier = 0x01,
.file_list[0] = {
.len = 4,
.file = { 0x3F, 0x00, 0x2F, 0xE2 }
}
};
static struct refresh_test refresh_data_151 = {
.pdu = refresh_151,
.pdu_len = sizeof(refresh_151),
.qualifier = 0x04
};
/* Defined in TS 102.384 Section 27.22.4.7 */
static void test_refresh(gconstpointer data)
{
const struct refresh_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_REFRESH);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_file_list(command->refresh.file_list, test->file_list);
check_aid(&command->refresh.aid, &test->aid);
check_alpha_id(command->refresh.alpha_id, test->alpha_id);
check_icon_id(&command->refresh.icon_id, &test->icon_id);
check_text_attr(&command->refresh.text_attr, &test->text_attr);
check_frame_id(&command->refresh.frame_id, &test->frame_id);
stk_command_free(command);
}
struct polling_off_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char polling_off_112[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x04,
0x00, 0x82, 0x02, 0x81, 0x82 };
static struct polling_off_test polling_off_data_112 = {
.pdu = polling_off_112,
.pdu_len = sizeof(polling_off_112),
.qualifier = 0x00,
};
static void test_polling_off(gconstpointer data)
{
const struct polling_off_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_POLLING_OFF);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct provide_local_info_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char provide_local_info_121[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x01, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_141[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x03, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_151[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x04, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_181[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x07, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_191[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x08, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_1111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x0A, 0x82, 0x02, 0x81,
0x82 };
static struct provide_local_info_test provide_local_info_data_121 = {
.pdu = provide_local_info_121,
.pdu_len = sizeof(provide_local_info_121),
.qualifier = 0x01
};
static struct provide_local_info_test provide_local_info_data_141 = {
.pdu = provide_local_info_141,
.pdu_len = sizeof(provide_local_info_141),
.qualifier = 0x03
};
static struct provide_local_info_test provide_local_info_data_151 = {
.pdu = provide_local_info_151,
.pdu_len = sizeof(provide_local_info_151),
.qualifier = 0x04
};
static struct provide_local_info_test provide_local_info_data_181 = {
.pdu = provide_local_info_181,
.pdu_len = sizeof(provide_local_info_181),
.qualifier = 0x07
};
static struct provide_local_info_test provide_local_info_data_191 = {
.pdu = provide_local_info_191,
.pdu_len = sizeof(provide_local_info_191),
.qualifier = 0x08
};
static struct provide_local_info_test provide_local_info_data_1111 = {
.pdu = provide_local_info_1111,
.pdu_len = sizeof(provide_local_info_1111),
.qualifier = 0x0A
};
static void test_provide_local_info(gconstpointer data)
{
const struct provide_local_info_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct setup_event_list_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_event_list event_list;
};
static unsigned char setup_event_list_111[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x04 };
static unsigned char setup_event_list_121[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x02, 0x05, 0x07 };
static unsigned char setup_event_list_122[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static unsigned char setup_event_list_131[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static unsigned char setup_event_list_132[] = { 0xD0, 0x0B, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x00 };
static unsigned char setup_event_list_141[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static struct setup_event_list_test setup_event_list_data_111 = {
.pdu = setup_event_list_111,
.pdu_len = sizeof(setup_event_list_111),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_USER_ACTIVITY }
}
};
static struct setup_event_list_test setup_event_list_data_121 = {
.pdu = setup_event_list_121,
.pdu_len = sizeof(setup_event_list_121),
.qualifier = 0x00,
.event_list = {
.len = 2,
.list = { STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE,
STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_122 = {
.pdu = setup_event_list_122,
.pdu_len = sizeof(setup_event_list_122),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_131 = {
.pdu = setup_event_list_131,
.pdu_len = sizeof(setup_event_list_131),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_132 = {
.pdu = setup_event_list_132,
.pdu_len = sizeof(setup_event_list_132),
.qualifier = 0x00
};
static struct setup_event_list_test setup_event_list_data_141 = {
.pdu = setup_event_list_141,
.pdu_len = sizeof(setup_event_list_141),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static void test_setup_event_list(gconstpointer data)
{
const struct setup_event_list_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_EVENT_LIST);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_event_list(&command->setup_event_list.event_list,
&test->event_list);
stk_command_free(command);
}
struct perform_card_apdu_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
unsigned char dst;
struct stk_c_apdu c_apdu;
};
static unsigned char perform_card_apdu_111[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static unsigned char perform_card_apdu_112[] = { 0xD0, 0x10, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x05, 0xA0, 0xC0,
0x00, 0x00, 0x1B };
static unsigned char perform_card_apdu_121[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x7F, 0x20 };
static unsigned char perform_card_apdu_122[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x6F, 0x30 };
static unsigned char perform_card_apdu_123[] = { 0xD0, 0x28, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x1D, 0xA0, 0xD6,
0x00, 0x00, 0x18, 0x00, 0x01,
0x02, 0x03, 0x04, 0x05, 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17 };
static unsigned char perform_card_apdu_124[] = { 0xD0, 0x10, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x05, 0xA0, 0xB0,
0x00, 0x00, 0x18 };
static unsigned char perform_card_apdu_125[] = { 0xD0, 0x28, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x1D, 0xA0, 0xD6,
0x00, 0x00, 0x18, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF };
static unsigned char perform_card_apdu_151[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x17, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static unsigned char perform_card_apdu_211[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static struct perform_card_apdu_test perform_card_apdu_data_111 = {
.pdu = perform_card_apdu_111,
.pdu_len = sizeof(perform_card_apdu_111),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_112 = {
.pdu = perform_card_apdu_112,
.pdu_len = sizeof(perform_card_apdu_112),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_GET_RESPONSE,
.p1 = 0x00,
.p2 = 0x00,
.has_le = 1,
.le = 0x1B
}
};
static struct perform_card_apdu_test perform_card_apdu_data_121 = {
.pdu = perform_card_apdu_121,
.pdu_len = sizeof(perform_card_apdu_121),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x7F, 0x20 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_122 = {
.pdu = perform_card_apdu_122,
.pdu_len = sizeof(perform_card_apdu_122),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x6F, 0x30 }
}
};
/* Byte 14 of Data is not correct in spec. */
static struct perform_card_apdu_test perform_card_apdu_data_123 = {
.pdu = perform_card_apdu_123,
.pdu_len = sizeof(perform_card_apdu_123),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_UPDATE_BINARY_D6,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x18,
.data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_124 = {
.pdu = perform_card_apdu_124,
.pdu_len = sizeof(perform_card_apdu_124),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_READ_BINARY_B0,
.p1 = 0x00,
.p2 = 0x00,
.has_le = 1,
.le = 0x18
}
};
static struct perform_card_apdu_test perform_card_apdu_data_125 = {
.pdu = perform_card_apdu_125,
.pdu_len = sizeof(perform_card_apdu_125),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_UPDATE_BINARY_D6,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x18,
.data = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_151 = {
.pdu = perform_card_apdu_151,
.pdu_len = sizeof(perform_card_apdu_151),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_7,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_211 = {
.pdu = perform_card_apdu_211,
.pdu_len = sizeof(perform_card_apdu_211),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static void test_perform_card_apdu(gconstpointer data)
{
const struct perform_card_apdu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PERFORM_CARD_APDU);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == test->dst);
check_c_apdu(&command->perform_card_apdu.c_apdu, &test->c_apdu);
stk_command_free(command);
}
struct get_reader_status_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char get_reader_status_111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x33, 0x00, 0x82, 0x02, 0x81,
0x82 };
static struct get_reader_status_test get_reader_status_data_111 = {
.pdu = get_reader_status_111,
.pdu_len = sizeof(get_reader_status_111),
.qualifier = STK_QUALIFIER_TYPE_CARD_READER_STATUS,
};
static void test_get_reader_status(gconstpointer data)
{
const struct get_reader_status_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_READER_STATUS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
if (command->qualifier == STK_QUALIFIER_TYPE_CARD_READER_STATUS)
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
else
g_assert(command->dst <
STK_DEVICE_IDENTITY_TYPE_CARD_READER_0 ||
command->dst >
STK_DEVICE_IDENTITY_TYPE_CARD_READER_7);
stk_command_free(command);
}
struct timer_mgmt_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
unsigned char timer_id;
struct stk_timer_value timer_value;
};
static unsigned char timer_mgmt_111[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x50, 0x00 };
static unsigned char timer_mgmt_112[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_113[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x10, 0x03 };
static unsigned char timer_mgmt_114[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_121[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x32, 0x95, 0x95 };
static unsigned char timer_mgmt_122[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_123[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x00, 0x10, 0x01 };
static unsigned char timer_mgmt_124[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_131[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x00, 0x02, 0x00 };
static unsigned char timer_mgmt_132[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_133[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x10, 0x00, 0x00 };
static unsigned char timer_mgmt_134[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_141[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_142[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_143[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03 };
static unsigned char timer_mgmt_144[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04 };
static unsigned char timer_mgmt_145[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05 };
static unsigned char timer_mgmt_146[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06 };
static unsigned char timer_mgmt_147[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07 };
static unsigned char timer_mgmt_148[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_151[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_152[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_153[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03 };
static unsigned char timer_mgmt_154[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04 };
static unsigned char timer_mgmt_155[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05 };
static unsigned char timer_mgmt_156[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06 };
static unsigned char timer_mgmt_157[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07 };
static unsigned char timer_mgmt_158[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_161[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_162[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_163[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_164[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_165[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_166[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_167[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_168[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_211[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x01 };
static unsigned char timer_mgmt_221[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x03 };
static struct timer_mgmt_test timer_mgmt_data_111 = {
.pdu = timer_mgmt_111,
.pdu_len = sizeof(timer_mgmt_111),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.minute = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_112 = {
.pdu = timer_mgmt_112,
.pdu_len = sizeof(timer_mgmt_112),
.qualifier = 0x02,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_113 = {
.pdu = timer_mgmt_113,
.pdu_len = sizeof(timer_mgmt_113),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.minute = 1,
.second = 30
}
};
static struct timer_mgmt_test timer_mgmt_data_114 = {
.pdu = timer_mgmt_114,
.pdu_len = sizeof(timer_mgmt_114),
.qualifier = 0x01,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_121 = {
.pdu = timer_mgmt_121,
.pdu_len = sizeof(timer_mgmt_121),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.hour = 23,
.minute = 59,
.second = 59
}
};
static struct timer_mgmt_test timer_mgmt_data_122 = {
.pdu = timer_mgmt_122,
.pdu_len = sizeof(timer_mgmt_122),
.qualifier = 0x02,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_123 = {
.pdu = timer_mgmt_123,
.pdu_len = sizeof(timer_mgmt_123),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.minute = 1,
.second = 10
}
};
static struct timer_mgmt_test timer_mgmt_data_124 = {
.pdu = timer_mgmt_124,
.pdu_len = sizeof(timer_mgmt_124),
.qualifier = 0x01,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_131 = {
.pdu = timer_mgmt_131,
.pdu_len = sizeof(timer_mgmt_131),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.minute = 20
}
};
static struct timer_mgmt_test timer_mgmt_data_132 = {
.pdu = timer_mgmt_132,
.pdu_len = sizeof(timer_mgmt_132),
.qualifier = 0x02,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_133 = {
.pdu = timer_mgmt_133,
.pdu_len = sizeof(timer_mgmt_133),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.hour = 1
}
};
static struct timer_mgmt_test timer_mgmt_data_134 = {
.pdu = timer_mgmt_134,
.pdu_len = sizeof(timer_mgmt_134),
.qualifier = 0x01,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_141 = {
.pdu = timer_mgmt_141,
.pdu_len = sizeof(timer_mgmt_141),
.qualifier = 0x02,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_142 = {
.pdu = timer_mgmt_142,
.pdu_len = sizeof(timer_mgmt_142),
.qualifier = 0x02,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_143 = {
.pdu = timer_mgmt_143,
.pdu_len = sizeof(timer_mgmt_143),
.qualifier = 0x02,
.timer_id = 3
};
static struct timer_mgmt_test timer_mgmt_data_144 = {
.pdu = timer_mgmt_144,
.pdu_len = sizeof(timer_mgmt_144),
.qualifier = 0x02,
.timer_id = 4
};
static struct timer_mgmt_test timer_mgmt_data_145 = {
.pdu = timer_mgmt_145,
.pdu_len = sizeof(timer_mgmt_145),
.qualifier = 0x02,
.timer_id = 5
};
static struct timer_mgmt_test timer_mgmt_data_146 = {
.pdu = timer_mgmt_146,
.pdu_len = sizeof(timer_mgmt_146),
.qualifier = 0x02,
.timer_id = 6
};
static struct timer_mgmt_test timer_mgmt_data_147 = {
.pdu = timer_mgmt_147,
.pdu_len = sizeof(timer_mgmt_147),
.qualifier = 0x02,
.timer_id = 7
};
static struct timer_mgmt_test timer_mgmt_data_148 = {
.pdu = timer_mgmt_148,
.pdu_len = sizeof(timer_mgmt_148),
.qualifier = 0x02,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_151 = {
.pdu = timer_mgmt_151,
.pdu_len = sizeof(timer_mgmt_151),
.qualifier = 0x01,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_152 = {
.pdu = timer_mgmt_152,
.pdu_len = sizeof(timer_mgmt_152),
.qualifier = 0x01,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_153 = {
.pdu = timer_mgmt_153,
.pdu_len = sizeof(timer_mgmt_153),
.qualifier = 0x01,
.timer_id = 3
};
static struct timer_mgmt_test timer_mgmt_data_154 = {
.pdu = timer_mgmt_154,
.pdu_len = sizeof(timer_mgmt_154),
.qualifier = 0x01,
.timer_id = 4
};
static struct timer_mgmt_test timer_mgmt_data_155 = {
.pdu = timer_mgmt_155,
.pdu_len = sizeof(timer_mgmt_155),
.qualifier = 0x01,
.timer_id = 5
};
static struct timer_mgmt_test timer_mgmt_data_156 = {
.pdu = timer_mgmt_156,
.pdu_len = sizeof(timer_mgmt_156),
.qualifier = 0x01,
.timer_id = 6
};
static struct timer_mgmt_test timer_mgmt_data_157 = {
.pdu = timer_mgmt_157,
.pdu_len = sizeof(timer_mgmt_157),
.qualifier = 0x01,
.timer_id = 7
};
static struct timer_mgmt_test timer_mgmt_data_158 = {
.pdu = timer_mgmt_158,
.pdu_len = sizeof(timer_mgmt_158),
.qualifier = 0x01,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_161 = {
.pdu = timer_mgmt_161,
.pdu_len = sizeof(timer_mgmt_161),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_162 = {
.pdu = timer_mgmt_162,
.pdu_len = sizeof(timer_mgmt_162),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_163 = {
.pdu = timer_mgmt_163,
.pdu_len = sizeof(timer_mgmt_163),
.qualifier = 0x00,
.timer_id = 3,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_164 = {
.pdu = timer_mgmt_164,
.pdu_len = sizeof(timer_mgmt_164),
.qualifier = 0x00,
.timer_id = 4,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_165 = {
.pdu = timer_mgmt_165,
.pdu_len = sizeof(timer_mgmt_165),
.qualifier = 0x00,
.timer_id = 5,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_166 = {
.pdu = timer_mgmt_166,
.pdu_len = sizeof(timer_mgmt_166),
.qualifier = 0x00,
.timer_id = 6,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_167 = {
.pdu = timer_mgmt_167,
.pdu_len = sizeof(timer_mgmt_167),
.qualifier = 0x00,
.timer_id = 7,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_168 = {
.pdu = timer_mgmt_168,
.pdu_len = sizeof(timer_mgmt_168),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_211 = {
.pdu = timer_mgmt_211,
.pdu_len = sizeof(timer_mgmt_211),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 10
}
};
static struct timer_mgmt_test timer_mgmt_data_221 = {
.pdu = timer_mgmt_221,
.pdu_len = sizeof(timer_mgmt_221),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 30
}
};
static void test_timer_mgmt(gconstpointer data)
{
const struct timer_mgmt_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_TIMER_MANAGEMENT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_timer_id(command->timer_mgmt.timer_id, test->timer_id);
check_timer_value(&command->timer_mgmt.timer_value, &test->timer_value);
stk_command_free(command);
}
struct terminal_response_test {
const unsigned char *pdu;
unsigned int pdu_len;
struct stk_response response;
};
static void test_terminal_response_encoding(gconstpointer data)
{
const struct terminal_response_test *test = data;
unsigned char buf[512];
unsigned int len;
len = stk_pdu_from_response(&test->response, buf, sizeof(buf));
g_assert(len == test->pdu_len);
g_assert(memcmp(buf, test->pdu, len) == 0);
}
static const unsigned char display_text_response_111[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test display_text_response_data_111 = {
.pdu = display_text_response_111,
.pdu_len = sizeof(display_text_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char display_text_response_121[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x01,
};
static const struct terminal_response_test display_text_response_data_121 = {
.pdu = display_text_response_121,
.pdu_len = sizeof(display_text_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* Screen is busy */
.additional = (unsigned char *) "\1",
},
},
};
static const unsigned char display_text_response_131[] = {
0x81, 0x03, 0x01, 0x21, 0x81, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test display_text_response_data_131 = {
.pdu = display_text_response_131,
.pdu_len = sizeof(display_text_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x81, /* Wait for user to clear, High priority */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char display_text_response_151[] = {
0x81, 0x03, 0x01, 0x21, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test display_text_response_data_151 = {
.pdu = display_text_response_151,
.pdu_len = sizeof(display_text_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char display_text_response_171[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x11,
};
static const struct terminal_response_test display_text_response_data_171 = {
.pdu = display_text_response_171,
.pdu_len = sizeof(display_text_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const unsigned char display_text_response_181[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x10,
};
static const struct terminal_response_test display_text_response_data_181 = {
.pdu = display_text_response_181,
.pdu_len = sizeof(display_text_response_181),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char display_text_response_191[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x32,
};
static const struct terminal_response_test display_text_response_data_191 = {
.pdu = display_text_response_191,
.pdu_len = sizeof(display_text_response_191),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_DATA_NOT_UNDERSTOOD,
},
},
};
static const unsigned char display_text_response_211[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x12,
};
static const struct terminal_response_test display_text_response_data_211 = {
.pdu = display_text_response_211,
.pdu_len = sizeof(display_text_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const unsigned char display_text_response_511b[] = {
0x81, 0x03, 0x01, 0x21, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test display_text_response_data_511b = {
.pdu = display_text_response_511b,
.pdu_len = sizeof(display_text_response_511b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char get_inkey_response_111[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_inkey_response_data_111 = {
.pdu = get_inkey_response_111,
.pdu_len = sizeof(get_inkey_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_inkey_response_121[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x30,
};
static const struct terminal_response_test get_inkey_response_data_121 = {
.pdu = get_inkey_response_121,
.pdu_len = sizeof(get_inkey_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "0",
},
}},
},
};
static const unsigned char get_inkey_response_131[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x11,
};
static const struct terminal_response_test get_inkey_response_data_131 = {
.pdu = get_inkey_response_131,
.pdu_len = sizeof(get_inkey_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const unsigned char get_inkey_response_141[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x10,
};
static const struct terminal_response_test get_inkey_response_data_141 = {
.pdu = get_inkey_response_141,
.pdu_len = sizeof(get_inkey_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char get_inkey_response_151[] = {
0x81, 0x03, 0x01, 0x22, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x71,
};
static const struct terminal_response_test get_inkey_response_data_151 = {
.pdu = get_inkey_response_151,
.pdu_len = sizeof(get_inkey_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x01, /* SMS alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "q",
},
}},
},
};
static const unsigned char get_inkey_response_161[] = {
0x81, 0x03, 0x01, 0x22, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x78,
};
static const struct terminal_response_test get_inkey_response_data_161 = {
.pdu = get_inkey_response_161,
.pdu_len = sizeof(get_inkey_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x01, /* SMS alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "x",
},
}},
},
};
static const unsigned char get_inkey_response_211[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x12,
};
static const struct terminal_response_test get_inkey_response_data_211 = {
.pdu = get_inkey_response_211,
.pdu_len = sizeof(get_inkey_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const unsigned char get_inkey_response_411[] = {
0x81, 0x03, 0x01, 0x22, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x03, 0x08, 0x04,
0x14,
};
static const struct terminal_response_test get_inkey_response_data_411 = {
.pdu = get_inkey_response_411,
.pdu_len = sizeof(get_inkey_response_411),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "Д",
},
}},
},
};
static const unsigned char get_inkey_response_511[] = {
0x81, 0x03, 0x01, 0x22, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x01,
};
static const struct terminal_response_test get_inkey_response_data_511 = {
.pdu = get_inkey_response_511,
.pdu_len = sizeof(get_inkey_response_511),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x04, /* Yes/No response */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "Yes",
.yesno = TRUE,
},
}},
},
};
static const unsigned char get_inkey_response_512[] = {
0x81, 0x03, 0x01, 0x22, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x00,
};
static const struct terminal_response_test get_inkey_response_data_512 = {
.pdu = get_inkey_response_512,
.pdu_len = sizeof(get_inkey_response_512),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x04, /* Yes/No response */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = NULL,
.yesno = TRUE,
},
}},
},
};
static const unsigned char get_inkey_response_611b[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_inkey_response_data_611b = {
.pdu = get_inkey_response_611b,
.pdu_len = sizeof(get_inkey_response_611b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_inkey_response_711[] = {
0x81, 0x03, 0x01, 0x22, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x13,
};
static const struct terminal_response_test get_inkey_response_data_711 = {
.pdu = get_inkey_response_711,
.pdu_len = sizeof(get_inkey_response_711),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x80, /* Help information available */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_HELP_REQUESTED,
},
},
};
static const unsigned char get_inkey_response_712[] = {
0x81, 0x03, 0x01, 0x22, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_inkey_response_data_712 = {
.pdu = get_inkey_response_712,
.pdu_len = sizeof(get_inkey_response_712),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x80, /* Help information available */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_inkey_response_811[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x12, 0x04, 0x02, 0x01, 0x11,
};
static const struct terminal_response_test get_inkey_response_data_811 = {
.pdu = get_inkey_response_811,
.pdu_len = sizeof(get_inkey_response_811),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
{ .get_inkey = {
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 17,
},
}},
},
};
static const unsigned char get_inkey_response_912[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x23,
};
static const struct terminal_response_test get_inkey_response_data_912 = {
.pdu = get_inkey_response_912,
.pdu_len = sizeof(get_inkey_response_912),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "#",
},
}},
},
};
static const unsigned char get_inkey_response_1111[] = {
0x81, 0x03, 0x01, 0x22, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x03, 0x08, 0x59,
0x7d,
};
static const struct terminal_response_test get_inkey_response_data_1111 = {
.pdu = get_inkey_response_1111,
.pdu_len = sizeof(get_inkey_response_1111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "",
},
}},
},
};
static const unsigned char get_inkey_response_1311[] = {
0x81, 0x03, 0x01, 0x22, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x03, 0x08, 0x30,
0xeb,
};
static const struct terminal_response_test get_inkey_response_data_1311 = {
.pdu = get_inkey_response_1311,
.pdu_len = sizeof(get_inkey_response_1311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "",
},
}},
},
};
static const unsigned char get_input_response_111[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x31,
0x32, 0x33, 0x34, 0x35,
};
static const struct terminal_response_test get_input_response_data_111 = {
.pdu = get_input_response_111,
.pdu_len = sizeof(get_input_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "12345",
},
}},
},
};
static const unsigned char get_input_response_121[] = {
0x81, 0x03, 0x01, 0x23, 0x08, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x00, 0xb6,
0x9b, 0x6a, 0xb4, 0x02,
};
static const struct terminal_response_test get_input_response_data_121 = {
.pdu = get_input_response_121,
.pdu_len = sizeof(get_input_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x08, /* Input is packed */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "67*#+",
.packed = TRUE,
},
}},
},
};
static const unsigned char get_input_response_131[] = {
0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x41,
0x62, 0x43, 0x64, 0x45,
};
static const struct terminal_response_test get_input_response_data_131 = {
.pdu = get_input_response_131,
.pdu_len = sizeof(get_input_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x01, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "AbCdE",
},
}},
},
};
static const unsigned char get_input_response_141[] = {
0x81, 0x03, 0x01, 0x23, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x08, 0x04, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
};
static const struct terminal_response_test get_input_response_data_141 = {
.pdu = get_input_response_141,
.pdu_len = sizeof(get_input_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x04, /* Hide text */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "2345678",
},
}},
},
};
static const unsigned char get_input_response_151[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x15, 0x04, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x30,
};
static const struct terminal_response_test get_input_response_data_151 = {
.pdu = get_input_response_151,
.pdu_len = sizeof(get_input_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "12345678901234567890",
},
}},
},
};
static const unsigned char get_input_response_161[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x11,
};
static const struct terminal_response_test get_input_response_data_161 = {
.pdu = get_input_response_161,
.pdu_len = sizeof(get_input_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const unsigned char get_input_response_171[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x10,
};
static const struct terminal_response_test get_input_response_data_171 = {
.pdu = get_input_response_171,
.pdu_len = sizeof(get_input_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char get_input_response_181[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0xa1, 0x04,
0x2a, 0x2a, 0x2a, 0x31, 0x31, 0x31, 0x31, 0x31,
0x31, 0x31, 0x31, 0x31, 0x31, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x32, 0x32, 0x32, 0x32, 0x32,
0x32, 0x32, 0x32, 0x32, 0x32, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x33, 0x33, 0x33, 0x33, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x34, 0x34, 0x34, 0x34, 0x34,
0x34, 0x34, 0x34, 0x34, 0x34, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x36, 0x36, 0x36, 0x36, 0x36,
0x36, 0x36, 0x36, 0x36, 0x36, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x37, 0x37, 0x37, 0x37, 0x37,
0x37, 0x37, 0x37, 0x37, 0x37, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x38, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x39, 0x39, 0x39, 0x39, 0x39,
0x39, 0x39, 0x39, 0x39, 0x39, 0x23, 0x23, 0x23,
0x2a, 0x2a, 0x2a, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x23, 0x23, 0x23,
};
static const struct terminal_response_test get_input_response_data_181 = {
.pdu = get_input_response_181,
.pdu_len = sizeof(get_input_response_181),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "***1111111111###***2222222222###"
"***3333333333###***4444444444###"
"***5555555555###***6666666666###"
"***7777777777###***8888888888###"
"***9999999999###***0000000000###",
},
}},
},
};
static const unsigned char get_input_response_191a[] = {
0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x01, 0x04,
};
static const unsigned char get_input_response_191b[] = {
0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x00,
};
static const struct terminal_response_test get_input_response_data_191 = {
/* Either get_input_response_191a or get_input_response_191b is ok */
.pdu = get_input_response_191a,
.pdu_len = sizeof(get_input_response_191a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x01, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "",
},
}},
},
};
static const unsigned char get_input_response_211[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x12,
};
static const struct terminal_response_test get_input_response_data_211 = {
.pdu = get_input_response_211,
.pdu_len = sizeof(get_input_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const unsigned char get_input_response_311[] = {
0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x48,
0x45, 0x4c, 0x4c, 0x4f,
};
static const struct terminal_response_test get_input_response_data_311 = {
.pdu = get_input_response_311,
.pdu_len = sizeof(get_input_response_311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x01, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "HELLO",
},
}},
},
};
static const unsigned char get_input_response_411[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x19, 0x08, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
};
static const struct terminal_response_test get_input_response_data_411 = {
.pdu = get_input_response_411,
.pdu_len = sizeof(get_input_response_411),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ЗДРАВСТВУЙТЕ",
},
}},
},
};
static const unsigned char get_input_response_421[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15,
0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19,
};
static const struct terminal_response_test get_input_response_data_421 = {
.pdu = get_input_response_421,
.pdu_len = sizeof(get_input_response_421),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ",
},
}},
},
};
static const unsigned char get_input_response_611a[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_input_response_data_611a = {
.pdu = get_input_response_611a,
.pdu_len = sizeof(get_input_response_611a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_input_response_611b[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_input_response_data_611b = {
.pdu = get_input_response_611b,
.pdu_len = sizeof(get_input_response_611b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .get_input = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_input_response_711[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x13,
};
static const struct terminal_response_test get_input_response_data_711 = {
.pdu = get_input_response_711,
.pdu_len = sizeof(get_input_response_711),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_HELP_REQUESTED,
},
},
};
static const unsigned char get_input_response_812[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x32,
0x32, 0x32, 0x32, 0x32,
};
static const struct terminal_response_test get_input_response_data_812 = {
.pdu = get_input_response_812,
.pdu_len = sizeof(get_input_response_812),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "22222",
},
}},
},
};
static const unsigned char get_input_response_843[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x33,
0x33, 0x33, 0x33, 0x33,
};
static const struct terminal_response_test get_input_response_data_843 = {
.pdu = get_input_response_843,
.pdu_len = sizeof(get_input_response_843),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "33333",
},
}},
},
};
static const unsigned char get_input_response_1011[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x05, 0x08, 0x4f,
0x60, 0x59, 0x7d,
};
static const struct terminal_response_test get_input_response_data_1011 = {
.pdu = get_input_response_1011,
.pdu_len = sizeof(get_input_response_1011),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "你好",
},
}},
},
};
static const unsigned char get_input_response_1021[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d,
0x4f, 0x60, 0x59, 0x7d,
};
static const struct terminal_response_test get_input_response_data_1021 = {
.pdu = get_input_response_1021,
.pdu_len = sizeof(get_input_response_1021),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好",
},
}},
},
};
static const unsigned char get_input_response_1211[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x05, 0x08, 0x30,
0xeb, 0x30, 0xeb,
};
static const struct terminal_response_test get_input_response_data_1211 = {
.pdu = get_input_response_1211,
.pdu_len = sizeof(get_input_response_1211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ルル",
},
}},
},
};
static const unsigned char get_input_response_1221[] = {
0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb,
0x30, 0xeb, 0x30, 0xeb,
};
static const struct terminal_response_test get_input_response_data_1221 = {
.pdu = get_input_response_1221,
.pdu_len = sizeof(get_input_response_1221),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルル",
},
}},
},
};
static const unsigned char send_sms_response_111[] = {
0x81, 0x03, 0x01, 0x13, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test send_sms_response_data_111 = {
.pdu = send_sms_response_111,
.pdu_len = sizeof(send_sms_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_sms_response_121[] = {
0x81, 0x03, 0x01, 0x13, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test send_sms_response_data_121 = {
.pdu = send_sms_response_121,
.pdu_len = sizeof(send_sms_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x01, /* Packing required */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_sms_response_311b[] = {
0x81, 0x03, 0x01, 0x13, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test send_sms_response_data_311b = {
.pdu = send_sms_response_311b,
.pdu_len = sizeof(send_sms_response_311b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char play_tone_response_111[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test play_tone_response_data_111 = {
.pdu = play_tone_response_111,
.pdu_len = sizeof(play_tone_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char play_tone_response_119b[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x30,
};
static const struct terminal_response_test play_tone_response_data_119b = {
.pdu = play_tone_response_119b,
.pdu_len = sizeof(play_tone_response_119b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NOT_CAPABLE,
},
},
};
static const unsigned char play_tone_response_1114[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x10,
};
static const struct terminal_response_test play_tone_response_data_1114 = {
.pdu = play_tone_response_1114,
.pdu_len = sizeof(play_tone_response_1114),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char play_tone_response_311b[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test play_tone_response_data_311b = {
.pdu = play_tone_response_311b,
.pdu_len = sizeof(play_tone_response_311b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
/* TS 102 384 */
static const unsigned char poll_interval_response_111[] = {
0x81, 0x03, 0x01, 0x03, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x84, 0x02, 0x01, 0x14,
};
static const struct terminal_response_test poll_interval_response_data_111 = {
.pdu = poll_interval_response_111,
.pdu_len = sizeof(poll_interval_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_POLL_INTERVAL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .poll_interval = {
.max_interval = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 20,
},
}},
},
};
/* 3GPP TS 31.124 */
static const unsigned char poll_interval_response_111a[] = {
0x81, 0x03, 0x01, 0x03, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x84, 0x02, 0x00, 0x01,
};
static const unsigned char poll_interval_response_111b[] = {
0x81, 0x03, 0x01, 0x03, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x84, 0x02, 0x01, 0x3c,
};
static const struct terminal_response_test poll_interval_response_data_111a = {
/* Either poll_interval_response_111a or b is ok */
.pdu = poll_interval_response_111a,
.pdu_len = sizeof(poll_interval_response_111a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_POLL_INTERVAL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .poll_interval = {
.max_interval = {
.unit = STK_DURATION_TYPE_MINUTES,
.interval = 1,
},
}},
},
};
static const unsigned char refresh_response_111a[] = {
0x81, 0x03, 0x01, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_111a = {
.pdu = refresh_response_111a,
.pdu_len = sizeof(refresh_response_111a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x03, /* USIM Initialization */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_111b[] = {
0x81, 0x03, 0x01, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_111b = {
.pdu = refresh_response_111b,
.pdu_len = sizeof(refresh_response_111b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x03, /* USIM Initialization */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_121a[] = {
0x81, 0x03, 0x01, 0x01, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_121a = {
.pdu = refresh_response_121a,
.pdu_len = sizeof(refresh_response_121a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x01, /* File Change Notification */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_121b[] = {
0x81, 0x03, 0x01, 0x01, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_121b = {
.pdu = refresh_response_121b,
.pdu_len = sizeof(refresh_response_121b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x01, /* File Change Notification */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_131a[] = {
0x81, 0x03, 0x01, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_131a = {
.pdu = refresh_response_131a,
.pdu_len = sizeof(refresh_response_131a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x02, /* USIM Initialization & File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_131b[] = {
0x81, 0x03, 0x01, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_131b = {
.pdu = refresh_response_131b,
.pdu_len = sizeof(refresh_response_131b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x02, /* USIM Initialization & File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_141a[] = {
0x81, 0x03, 0x01, 0x01, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_141a = {
.pdu = refresh_response_141a,
.pdu_len = sizeof(refresh_response_141a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x00, /* USIM Initialization & Full File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_141b[] = {
0x81, 0x03, 0x01, 0x01, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_141b = {
.pdu = refresh_response_141b,
.pdu_len = sizeof(refresh_response_141b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x00, /* USIM Initialization & Full File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_171[] = {
0x81, 0x03, 0x01, 0x01, 0x05, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_171 = {
.pdu = refresh_response_171,
.pdu_len = sizeof(refresh_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x05, /* USIM Application Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_241a[] = {
0x81, 0x03, 0x01, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x02,
};
static const struct terminal_response_test refresh_response_data_241a = {
.pdu = refresh_response_241a,
.pdu_len = sizeof(refresh_response_241a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x06, /* 3G Session Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* ME currently busy on call */
.additional = (unsigned char *) "\2",
},
},
};
static const unsigned char refresh_response_241b[] = {
0x81, 0x03, 0x01, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x01,
};
static const struct terminal_response_test refresh_response_data_241b = {
.pdu = refresh_response_241b,
.pdu_len = sizeof(refresh_response_241b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x06, /* 3G Session Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* Screen is busy */
.additional = (unsigned char *) "\1",
},
},
};
static const unsigned char refresh_response_311[] = {
0x81, 0x03, 0x01, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x20,
};
static const struct terminal_response_test refresh_response_data_311 = {
.pdu = refresh_response_311,
.pdu_len = sizeof(refresh_response_311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x07, /* Steering of roaming */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
},
},
};
static const unsigned char refresh_response_312[] = {
0x81, 0x03, 0x01, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_312 = {
.pdu = refresh_response_312,
.pdu_len = sizeof(refresh_response_312),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x07, /* Steering of roaming */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
g_test_add_data_func("/teststk/Display Text 1.1.1",
&display_text_data_111, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.3.1",
&display_text_data_131, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.4.1",
&display_text_data_141, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.5.1",
&display_text_data_151, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.6.1",
&display_text_data_161, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.7.1",
&display_text_data_171, test_display_text);
2010-03-01 21:16:01 +00:00
g_test_add_data_func("/teststk/Display Text 5.1.1",
&display_text_data_511, test_display_text);
g_test_add_data_func("/teststk/Display Text 5.2.1",
&display_text_data_521, test_display_text);
g_test_add_data_func("/teststk/Display Text 5.3.1",
&display_text_data_531, test_display_text);
g_test_add_data_func("/teststk/Display Text 6.1.1",
&display_text_data_611, test_display_text);
2010-03-01 22:03:06 +00:00
g_test_add_data_func("/teststk/Display Text 7.1.1",
&display_text_data_711, test_display_text);
g_test_add_data_func("/teststk/Display Text 9.1.1",
&display_text_data_911, test_display_text);
g_test_add_data_func("/teststk/Display Text 10.1.1",
&display_text_data_1011, test_display_text);
g_test_add_data_func("/teststk/Display Text response 1.1.1",
&display_text_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.2.1",
&display_text_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.3.1",
&display_text_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.5.1",
&display_text_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.7.1",
&display_text_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.8.1",
&display_text_response_data_181,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.9.1",
&display_text_response_data_191,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 2.1.1",
&display_text_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 5.1.1B",
&display_text_response_data_511b,
test_terminal_response_encoding);
2010-04-28 12:39:34 +00:00
g_test_add_data_func("/teststk/Get Inkey 1.1.1",
&get_inkey_data_111, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.2.1",
&get_inkey_data_121, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.3.1",
&get_inkey_data_131, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.4.1",
&get_inkey_data_141, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.5.1",
&get_inkey_data_151, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.6.1",
&get_inkey_data_161, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 2.1.1",
&get_inkey_data_211, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 3.1.1",
&get_inkey_data_311, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 3.2.1",
&get_inkey_data_321, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 4.1.1",
&get_inkey_data_411, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 5.1.1",
&get_inkey_data_511, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 5.1.2",
&get_inkey_data_512, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.1.1",
&get_inkey_data_611, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.2.1",
&get_inkey_data_621, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.3.1",
&get_inkey_data_631, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.4.1",
&get_inkey_data_641, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 7.1.1",
&get_inkey_data_711, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 7.1.2",
&get_inkey_data_712, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 8.1.1",
&get_inkey_data_811, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.1.1",
&get_inkey_data_911, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.1.2",
&get_inkey_data_912, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.2.1",
&get_inkey_data_921, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.2.2",
&get_inkey_data_922, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.3.1",
&get_inkey_data_931, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.3.2",
&get_inkey_data_932, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.1",
&get_inkey_data_941, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.2",
&get_inkey_data_942, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.3",
&get_inkey_data_943, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.1",
&get_inkey_data_951, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.2",
&get_inkey_data_952, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.3",
&get_inkey_data_953, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.1",
&get_inkey_data_961, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.2",
&get_inkey_data_962, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.3",
&get_inkey_data_963, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.1",
&get_inkey_data_971, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.2",
&get_inkey_data_972, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.3",
&get_inkey_data_973, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.1",
&get_inkey_data_981, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.2",
&get_inkey_data_982, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.3",
&get_inkey_data_983, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.1",
&get_inkey_data_991, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.2a",
&get_inkey_data_992a, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.2b",
&get_inkey_data_992b, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.3",
&get_inkey_data_993, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.10.1",
&get_inkey_data_9101, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.10.2",
&get_inkey_data_9102, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 10.1.1",
&get_inkey_data_1011, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 10.2.1",
&get_inkey_data_1021, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 11.1.1",
&get_inkey_data_1111, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 12.1.1",
&get_inkey_data_1211, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 12.2.1",
&get_inkey_data_1221, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 13.1.1",
&get_inkey_data_1311, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey response 1.1.1",
&get_inkey_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.2.1",
&get_inkey_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.3.1",
&get_inkey_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.4.1",
&get_inkey_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.5.1",
&get_inkey_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.6.1",
&get_inkey_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 2.1.1",
&get_inkey_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 4.1.1",
&get_inkey_response_data_411,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 5.1.1",
&get_inkey_response_data_511,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 5.1.2",
&get_inkey_response_data_512,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 6.1.1B",
&get_inkey_response_data_611b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 7.1.1",
&get_inkey_response_data_711,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 7.1.2",
&get_inkey_response_data_712,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 8.1.1",
&get_inkey_response_data_811,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 9.1.2",
&get_inkey_response_data_912,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 11.1.1",
&get_inkey_response_data_1111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 13.1.1",
&get_inkey_response_data_1311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input 1.1.1",
&get_input_data_111, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.2.1",
&get_input_data_121, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.3.1",
&get_input_data_131, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.4.1",
&get_input_data_141, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.5.1",
&get_input_data_151, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.6.1",
&get_input_data_161, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.7.1",
&get_input_data_171, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.8.1",
&get_input_data_181, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.9.1",
&get_input_data_191, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.10.1",
&get_input_data_1101, test_get_input);
g_test_add_data_func("/teststk/Get Input 2.1.1",
&get_input_data_211, test_get_input);
g_test_add_data_func("/teststk/Get Input 3.1.1",
&get_input_data_311, test_get_input);
g_test_add_data_func("/teststk/Get Input 3.2.1",
&get_input_data_321, test_get_input);
g_test_add_data_func("/teststk/Get Input 4.1.1",
&get_input_data_411, test_get_input);
g_test_add_data_func("/teststk/Get Input 4.2.1",
&get_input_data_421, test_get_input);
g_test_add_data_func("/teststk/Get Input 5.1.1",
&get_input_data_511, test_get_input);
g_test_add_data_func("/teststk/Get Input 5.2.1",
&get_input_data_521, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.1.1",
&get_input_data_611, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.2.1",
&get_input_data_621, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.3.1",
&get_input_data_631, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.4.1",
&get_input_data_641, test_get_input);
g_test_add_data_func("/teststk/Get Input 7.1.1",
&get_input_data_711, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.1.1",
&get_input_data_811, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.1.2",
&get_input_data_812, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.2.1",
&get_input_data_821, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.2.2",
&get_input_data_822, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.3.1",
&get_input_data_831, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.3.2",
&get_input_data_832, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.1",
&get_input_data_841, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.2",
&get_input_data_842, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.3",
&get_input_data_843, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.1",
&get_input_data_851, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.2",
&get_input_data_852, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.3",
&get_input_data_853, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.1",
&get_input_data_861, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.2",
&get_input_data_862, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.3",
&get_input_data_863, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.1",
&get_input_data_871, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.2",
&get_input_data_872, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.3",
&get_input_data_873, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.1",
&get_input_data_881, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.2",
&get_input_data_882, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.3",
&get_input_data_883, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.1",
&get_input_data_891, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.2",
&get_input_data_892, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.3",
&get_input_data_893, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.10.1",
&get_input_data_8101, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.10.2",
&get_input_data_8102, test_get_input);
g_test_add_data_func("/teststk/Get Input 9.1.1",
&get_input_data_911, test_get_input);
g_test_add_data_func("/teststk/Get Input 9.2.1",
&get_input_data_921, test_get_input);
g_test_add_data_func("/teststk/Get Input 10.1.1",
&get_input_data_1011, test_get_input);
g_test_add_data_func("/teststk/Get Input 10.2.1",
&get_input_data_1021, test_get_input);
g_test_add_data_func("/teststk/Get Input 11.1.1",
&get_input_data_1111, test_get_input);
g_test_add_data_func("/teststk/Get Input 11.2.1",
&get_input_data_1121, test_get_input);
g_test_add_data_func("/teststk/Get Input 12.1.1",
&get_input_data_1211, test_get_input);
g_test_add_data_func("/teststk/Get Input 12.2.1",
&get_input_data_1221, test_get_input);
g_test_add_data_func("/teststk/Get Input response 1.1.1",
&get_input_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.2.1",
&get_input_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.3.1",
&get_input_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.4.1",
&get_input_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.5.1",
&get_input_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.6.1",
&get_input_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.7.1",
&get_input_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.8.1",
&get_input_response_data_181,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.9.1",
&get_input_response_data_191,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 2.1.1",
&get_input_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 3.1.1",
&get_input_response_data_311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 4.1.1",
&get_input_response_data_411,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 4.2.1",
&get_input_response_data_421,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 6.1.1A",
&get_input_response_data_611a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 6.1.1B",
&get_input_response_data_611b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 7.1.1",
&get_input_response_data_711,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 8.1.2",
&get_input_response_data_812,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 8.4.3",
&get_input_response_data_843,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 10.1.1",
&get_input_response_data_1011,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 10.2.1",
&get_input_response_data_1021,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 12.1.1",
&get_input_response_data_1211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 12.2.1",
&get_input_response_data_1221,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/More Time 1.1.1",
&more_time_data_111, test_more_time);
g_test_add_data_func("/teststk/Play Tone 1.1.1",
&play_tone_data_111, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.2",
&play_tone_data_112, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.3",
&play_tone_data_113, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.4",
&play_tone_data_114, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.5",
&play_tone_data_115, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.6",
&play_tone_data_116, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.7",
&play_tone_data_117, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.8",
&play_tone_data_118, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.9",
&play_tone_data_119, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.10",
&play_tone_data_1110, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.11",
&play_tone_data_1111, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.12",
&play_tone_data_1112, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.13",
&play_tone_data_1113, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.14",
&play_tone_data_1114, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.15",
&play_tone_data_1115, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.1",
&play_tone_data_211, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.2",
&play_tone_data_212, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.3",
&play_tone_data_213, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.1.1",
&play_tone_data_311, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.2.1",
&play_tone_data_321, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.3.1",
&play_tone_data_331, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.4.1",
&play_tone_data_341, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.1.1",
&play_tone_data_411, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.1.2",
&play_tone_data_412, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.2.1",
&play_tone_data_421, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.2.2",
&play_tone_data_422, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.3.1",
&play_tone_data_431, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.3.2",
&play_tone_data_432, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.1",
&play_tone_data_441, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.2",
&play_tone_data_442, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.3",
&play_tone_data_443, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.1",
&play_tone_data_451, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.2",
&play_tone_data_452, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.3",
&play_tone_data_453, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.1",
&play_tone_data_461, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.2",
&play_tone_data_462, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.3",
&play_tone_data_463, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.1",
&play_tone_data_471, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.2",
&play_tone_data_472, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.3",
&play_tone_data_473, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.1",
&play_tone_data_481, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.2",
&play_tone_data_482, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.3",
&play_tone_data_483, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.1",
&play_tone_data_491, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.2",
&play_tone_data_492, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.3",
&play_tone_data_493, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.10.1",
&play_tone_data_4101, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.10.2",
&play_tone_data_4102, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.1",
&play_tone_data_511, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.2",
&play_tone_data_512, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.3",
&play_tone_data_513, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.1",
&play_tone_data_611, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.2",
&play_tone_data_612, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.3",
&play_tone_data_613, test_play_tone);
g_test_add_data_func("/teststk/Play Tone response 1.1.1",
&play_tone_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 1.1.9B",
&play_tone_response_data_119b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 1.1.14",
&play_tone_response_data_1114,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 3.1.1B",
&play_tone_response_data_311b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Poll Interval 1.1.1",
&poll_interval_data_111, test_poll_interval);
g_test_add_data_func("/teststk/Poll Interval response 1.1.1",
&poll_interval_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Poll Interval response 1.1.1A",
&poll_interval_response_data_111a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Menu 1.1.1",
&setup_menu_data_111, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.1.2",
&setup_menu_data_112, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.1.3",
&setup_menu_data_113, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.1",
&setup_menu_data_121, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.2",
&setup_menu_data_122, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.3",
&setup_menu_data_123, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 2.1.1",
&setup_menu_data_211, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 3.1.1",
&setup_menu_data_311, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 4.1.1",
&setup_menu_data_411, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 4.2.1",
&setup_menu_data_421, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 5.1.1",
&setup_menu_data_511, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.1.1",
&setup_menu_data_611, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.1.2",
&setup_menu_data_612, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.2.1",
&setup_menu_data_621, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.2.2",
&setup_menu_data_622, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.3.1",
&setup_menu_data_631, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.3.2",
&setup_menu_data_632, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.1",
&setup_menu_data_641, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.2",
&setup_menu_data_642, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.3",
&setup_menu_data_643, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.5.1",
&setup_menu_data_651, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.6.1",
&setup_menu_data_661, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.7.1",
&setup_menu_data_671, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.8.1",
&setup_menu_data_681, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.9.1",
&setup_menu_data_691, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.10.1",
&setup_menu_data_6101, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.1",
&setup_menu_data_711, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.2",
&setup_menu_data_712, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.3",
&setup_menu_data_713, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.1",
&setup_menu_data_811, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.2",
&setup_menu_data_812, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.3",
&setup_menu_data_813, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.1",
&setup_menu_data_911, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.2",
&setup_menu_data_912, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.3",
&setup_menu_data_913, test_setup_menu);
g_test_add_data_func("/teststk/Select Item 1.1.1",
&select_item_data_111, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.2.1",
&select_item_data_121, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.3.1",
&select_item_data_131, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.4.1",
&select_item_data_141, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.5.1",
&select_item_data_151, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.6.1",
&select_item_data_161, test_select_item);
g_test_add_data_func("/teststk/Select Item 2.1.1",
&select_item_data_211, test_select_item);
g_test_add_data_func("/teststk/Select Item 3.1.1",
&select_item_data_311, test_select_item);
g_test_add_data_func("/teststk/Select Item 4.1.1",
&select_item_data_411, test_select_item);
g_test_add_data_func("/teststk/Select Item 5.1.1",
&select_item_data_511, test_select_item);
g_test_add_data_func("/teststk/Select Item 5.2.1",
&select_item_data_521, test_select_item);
g_test_add_data_func("/teststk/Select Item 6.1.1",
&select_item_data_611, test_select_item);
g_test_add_data_func("/teststk/Select Item 6.2.1",
&select_item_data_621, test_select_item);
g_test_add_data_func("/teststk/Select Item 7.1.1",
&select_item_data_711, test_select_item);
g_test_add_data_func("/teststk/Select Item 8.1.1",
&select_item_data_811, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.1.1",
&select_item_data_911, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.1.2",
&select_item_data_912, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.2.1",
&select_item_data_921, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.2.2",
&select_item_data_922, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.3.1",
&select_item_data_931, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.3.2",
&select_item_data_932, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.1",
&select_item_data_941, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.2",
&select_item_data_942, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.3",
&select_item_data_943, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.1",
&select_item_data_951, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.2",
&select_item_data_952, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.3",
&select_item_data_953, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.1",
&select_item_data_961, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.2",
&select_item_data_962, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.3",
&select_item_data_963, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.1",
&select_item_data_971, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.2",
&select_item_data_972, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.3",
&select_item_data_973, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.1",
&select_item_data_981, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.2",
&select_item_data_982, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.3",
&select_item_data_983, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.1",
&select_item_data_991, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.2",
&select_item_data_992, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.3",
&select_item_data_993, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.10.1",
&select_item_data_9101, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.10.2",
&select_item_data_9102, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.1.1",
&select_item_data_1011, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.2.1",
&select_item_data_1021, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.3.1",
&select_item_data_1031, test_select_item);
g_test_add_data_func("/teststk/Select Item 11.1.1",
&select_item_data_1111, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.1.1",
&select_item_data_1211, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.2.1",
&select_item_data_1221, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.3.1",
&select_item_data_1231, test_select_item);
g_test_add_data_func("/teststk/Send SMS 1.1.1",
&send_sms_data_111, test_send_sms);
g_test_add_data_func("/teststk/Send SMS response 1.1.1",
&send_sms_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send SMS response 1.2.1",
&send_sms_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send SMS response 3.1.1B",
&send_sms_response_data_311b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Call 1.1.1",
&setup_call_data_111, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.4.1",
&setup_call_data_141, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.5.1",
&setup_call_data_151, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.8.1",
&setup_call_data_181, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.9.1",
&setup_call_data_191, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.10.1",
&setup_call_data_1101, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.11.1",
&setup_call_data_1111, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.12.1",
&setup_call_data_1121, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 2.1.1",
&setup_call_data_211, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.1.1",
&setup_call_data_311, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.2.1",
&setup_call_data_321, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.3.1",
&setup_call_data_331, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.4.1",
&setup_call_data_341, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.1.1",
&setup_call_data_411, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.1.2",
&setup_call_data_412, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.2.1",
&setup_call_data_421, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.2.2",
&setup_call_data_422, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.3.1",
&setup_call_data_431, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.3.2",
&setup_call_data_432, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.1",
&setup_call_data_441, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.2",
&setup_call_data_442, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.3",
&setup_call_data_443, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.1",
&setup_call_data_451, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.2",
&setup_call_data_452, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.3",
&setup_call_data_453, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.1",
&setup_call_data_461, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.2",
&setup_call_data_462, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.3",
&setup_call_data_463, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.1",
&setup_call_data_471, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.2",
&setup_call_data_472, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.3",
&setup_call_data_473, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.1",
&setup_call_data_481, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.2",
&setup_call_data_482, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.3",
&setup_call_data_483, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.1",
&setup_call_data_491, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.2",
&setup_call_data_492, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.3",
&setup_call_data_493, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.10.1",
&setup_call_data_4101, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.10.2",
&setup_call_data_4102, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 5.1.1",
&setup_call_data_511, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 5.2.1",
&setup_call_data_521, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 6.1.1",
&setup_call_data_611, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 6.2.1",
&setup_call_data_621, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 7.1.1",
&setup_call_data_711, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 7.2.1",
&setup_call_data_721, test_setup_call);
g_test_add_data_func("/teststk/Refresh 1.2.1",
&refresh_data_121, test_refresh);
g_test_add_data_func("/teststk/Refresh 1.5.1",
&refresh_data_151, test_refresh);
g_test_add_data_func("/teststk/Refresh response 1.1.1A",
&refresh_response_data_111a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.1.1B",
&refresh_response_data_111b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.2.1A",
&refresh_response_data_121a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.2.1B",
&refresh_response_data_121b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.3.1A",
&refresh_response_data_131a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.3.1B",
&refresh_response_data_141b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.4.1A",
&refresh_response_data_141a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.4.1B",
&refresh_response_data_141b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.7.1",
&refresh_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 2.4.1A",
&refresh_response_data_241a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 2.4.1B",
&refresh_response_data_241b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 3.1.1",
&refresh_response_data_311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 3.1.2",
&refresh_response_data_312,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Polling off 1.1.2",
&polling_off_data_112, test_polling_off);
g_test_add_data_func("/teststk/Provide Local Info 1.2.1",
&provide_local_info_data_121, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.4.1",
&provide_local_info_data_141, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.5.1",
&provide_local_info_data_151, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.8.1",
&provide_local_info_data_181, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.9.1",
&provide_local_info_data_191, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.11.1",
&provide_local_info_data_1111, test_provide_local_info);
g_test_add_data_func("/teststk/Setup Event List 1.1.1",
&setup_event_list_data_111, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.2.1",
&setup_event_list_data_121, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.2.2",
&setup_event_list_data_122, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.3.1",
&setup_event_list_data_131, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.3.2",
&setup_event_list_data_132, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.4.1",
&setup_event_list_data_141, test_setup_event_list);
g_test_add_data_func("/teststk/Perform Card APDU 1.1.1",
&perform_card_apdu_data_111, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.1.2",
&perform_card_apdu_data_112, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.1",
&perform_card_apdu_data_121, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.2",
&perform_card_apdu_data_122, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.3",
&perform_card_apdu_data_123, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.4",
&perform_card_apdu_data_124, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.5",
&perform_card_apdu_data_125, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.5.1",
&perform_card_apdu_data_151, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 2.1.1",
&perform_card_apdu_data_211, test_perform_card_apdu);
g_test_add_data_func("/teststk/Get Reader Status 1.1.1",
&get_reader_status_data_111, test_get_reader_status);
g_test_add_data_func("/teststk/Timer Management 1.1.1",
&timer_mgmt_data_111, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.2",
&timer_mgmt_data_112, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.3",
&timer_mgmt_data_113, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.4",
&timer_mgmt_data_114, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.1",
&timer_mgmt_data_121, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.2",
&timer_mgmt_data_122, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.3",
&timer_mgmt_data_123, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.4",
&timer_mgmt_data_124, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.1",
&timer_mgmt_data_131, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.2",
&timer_mgmt_data_132, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.3",
&timer_mgmt_data_133, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.4",
&timer_mgmt_data_134, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.1",
&timer_mgmt_data_141, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.2",
&timer_mgmt_data_142, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.3",
&timer_mgmt_data_143, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.4",
&timer_mgmt_data_144, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.5",
&timer_mgmt_data_145, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.6",
&timer_mgmt_data_146, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.7",
&timer_mgmt_data_147, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.8",
&timer_mgmt_data_148, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.1",
&timer_mgmt_data_151, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.2",
&timer_mgmt_data_152, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.3",
&timer_mgmt_data_153, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.4",
&timer_mgmt_data_154, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.5",
&timer_mgmt_data_155, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.6",
&timer_mgmt_data_156, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.7",
&timer_mgmt_data_157, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.8",
&timer_mgmt_data_158, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.1",
&timer_mgmt_data_161, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.2",
&timer_mgmt_data_162, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.3",
&timer_mgmt_data_163, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.4",
&timer_mgmt_data_164, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.5",
&timer_mgmt_data_165, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.6",
&timer_mgmt_data_166, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.7",
&timer_mgmt_data_167, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.8",
&timer_mgmt_data_168, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 2.1.1",
&timer_mgmt_data_211, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 2.2.1",
&timer_mgmt_data_221, test_timer_mgmt);
return g_test_run();
}