All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Gu <yang.gu@intel.com>
To: ofono@ofono.org
Subject: [PATCH 04/27] test-stkutil: Add test for setup menu parser
Date: Thu, 13 May 2010 18:48:21 +0800	[thread overview]
Message-ID: <1273747724-28019-4-git-send-email-yang.gu@intel.com> (raw)
In-Reply-To: <1273747724-28019-1-git-send-email-yang.gu@intel.com>

[-- Attachment #1: Type: text/plain, Size: 47915 bytes --]

---
 unit/test-stkutil.c | 1616 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1616 insertions(+), 0 deletions(-)

diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 4cce0f5..dc33183 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -35,6 +35,8 @@
 #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)
 {
@@ -77,6 +79,28 @@ static void check_duration(const struct stk_duration *command,
 	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);
+	g_assert(g_str_equal(command->text, test->text));
+}
+
+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)
@@ -85,6 +109,15 @@ static void check_response_length(const struct stk_response_length *command,
 	g_assert(command->max == test->max);
 }
 
+/* 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.31 */
 static void check_icon_id(const struct stk_icon_id *command,
 					const struct stk_icon_id *test)
@@ -93,6 +126,15 @@ static void check_icon_id(const struct stk_icon_id *command,
 	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.72 */
 static void check_text_attr(const struct stk_text_attribute *command,
 					const struct stk_text_attribute *test)
@@ -101,6 +143,15 @@ static void check_text_attr(const struct stk_text_attribute *command,
 	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)
@@ -3926,6 +3977,1500 @@ static void test_poll_interval(gconstpointer data)
 	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_common_text(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 send_sms_test {
 	const unsigned char *pdu;
 	unsigned int pdu_len;
@@ -4367,6 +5912,77 @@ int main(int argc, char **argv)
 	g_test_add_data_func("/teststk/Poll Interval 1.1.1",
 				&poll_interval_data_111, test_poll_interval);
 
+	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/Send SMS 1.1",
 				&send_sms_data_11, test_send_sms);
 
-- 
1.7.0.4


  parent reply	other threads:[~2010-05-13 10:48 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-13 10:48 [PATCH 01/27] stk: Add poll interval proactive command parser Yang Gu
2010-05-13 10:48 ` [PATCH 02/27] test-stkutil: Add test for poll interval parser Yang Gu
2010-05-13 10:48 ` [PATCH 03/27] stkutil: Add setup menu proactive command parser Yang Gu
2010-05-13 10:48 ` Yang Gu [this message]
2010-05-13 10:48 ` [PATCH 05/27] stkutil: Add select item " Yang Gu
2010-05-13 10:48 ` [PATCH 06/27] test-stkutil: Add test for select item parser Yang Gu
2010-05-13 10:48 ` [PATCH 07/27] test-stkutil: Use dedicated functions to check Yang Gu
2010-05-13 10:48 ` [PATCH 08/27] test-stkutil: Refactor test for send sms parser Yang Gu
2010-05-13 10:48 ` [PATCH 09/27] stk: Adjust the sequence of dataobj Yang Gu
2010-05-13 10:48 ` [PATCH 10/27] stkutil: Add setup call proactive command parser Yang Gu
2010-05-13 10:48 ` [PATCH 11/27] test-stkutil: Add unit test for setup call parser Yang Gu
2010-05-13 10:48 ` [PATCH 12/27] stkutil: Add refresh proactive command parser Yang Gu
2010-05-13 10:48 ` [PATCH 13/27] test-stkutil: Add test for refresh parser Yang Gu
2010-05-13 10:48 ` [PATCH 14/27] stkutil: Add polling off proactive command parser Yang Gu
2010-05-13 10:48 ` [PATCH 15/27] test-stkutil: Add test for polling off parser Yang Gu
2010-05-13 10:48 ` [PATCH 16/27] stkutil: Add provide local info command parser Yang Gu
2010-05-13 10:48 ` [PATCH 17/27] test-stk: Add test for provide local info parser Yang Gu
2010-05-13 10:48 ` [PATCH 18/27] stkutil: Add event list command parser Yang Gu
2010-05-13 10:48 ` [PATCH 19/27] test-stkutil: Add test for event list parser Yang Gu
2010-05-13 10:48 ` [PATCH 20/27] stkutil: Add perform card apdu command parser Yang Gu
2010-05-13 10:48 ` [PATCH 21/27] test-stk: Add test for perform card apdu parser Yang Gu
2010-05-13 10:48 ` [PATCH 22/27] stkutil: Add power off card command parser Yang Gu
2010-05-13 10:48 ` [PATCH 23/27] stkutil: Add power on " Yang Gu
2010-05-13 10:48 ` [PATCH 24/27] stkutil: Add get reader status " Yang Gu
2010-05-13 10:48 ` [PATCH 25/27] test-stk: Add test for get reader status parser Yang Gu
2010-05-13 10:48 ` [PATCH 26/27] stkutil: Add timer management command parser Yang Gu
2010-05-13 10:48 ` [PATCH 27/27] test-stk: Add test for timer management parser Yang Gu
2010-05-13 20:37 ` [PATCH 01/27] stk: Add poll interval proactive command parser Denis Kenzior
2010-05-14  8:37   ` Gu, Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1273747724-28019-4-git-send-email-yang.gu@intel.com \
    --to=yang.gu@intel.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.