All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Gu <yang.gu@intel.com>
To: ofono@ofono.org
Subject: [PATCH 11/27] test-stkutil: Add unit test for setup call parser
Date: Thu, 13 May 2010 18:48:28 +0800	[thread overview]
Message-ID: <1273747724-28019-11-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: 45157 bytes --]

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

diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 82df2e3..75ca258 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -98,6 +98,32 @@ 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)
@@ -7554,6 +7580,1284 @@ static void test_send_sms(gconstpointer data)
 	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);
+}
+
 int main(int argc, char **argv)
 {
 	g_test_init(&argc, &argv, NULL);
@@ -8089,5 +9393,96 @@ int main(int argc, char **argv)
 	g_test_add_data_func("/teststk/Send SMS 1.1.1",
 				&send_sms_data_111, test_send_sms);
 
+	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);
+
 	return g_test_run();
 }
-- 
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 ` [PATCH 04/27] test-stkutil: Add test for setup menu parser Yang Gu
2010-05-13 10:48 ` [PATCH 05/27] stkutil: Add select item proactive command parser 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 ` Yang Gu [this message]
2010-05-13 10:48 ` [PATCH 12/27] stkutil: Add refresh " 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-11-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.