mirror of git://git.sysmocom.de/ofono
test-stkutil: SMS-PP Data Download envelope tests
This commit is contained in:
parent
8be222d46e
commit
d9f4abfd3f
|
@ -17890,6 +17890,167 @@ static const struct terminal_response_test launch_browser_response_data_411b = {
|
|||
},
|
||||
};
|
||||
|
||||
struct envelope_test {
|
||||
const unsigned char *pdu;
|
||||
unsigned int pdu_len;
|
||||
struct stk_envelope envelope;
|
||||
};
|
||||
|
||||
static void test_envelope_encoding(gconstpointer data)
|
||||
{
|
||||
const struct envelope_test *test = data;
|
||||
const unsigned char *pdu;
|
||||
unsigned int pdu_len;
|
||||
|
||||
pdu = stk_pdu_from_envelope(&test->envelope, &pdu_len);
|
||||
|
||||
if (test->pdu)
|
||||
g_assert(pdu);
|
||||
else
|
||||
g_assert(pdu == NULL);
|
||||
|
||||
g_assert(pdu_len == test->pdu_len);
|
||||
g_assert(memcmp(pdu, test->pdu, pdu_len) == 0);
|
||||
}
|
||||
|
||||
static const unsigned char sms_pp_data_download_161[] = {
|
||||
0xd1, 0x2d, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09,
|
||||
0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
||||
0xf8, 0x8b, 0x1c, 0x04, 0x04, 0x91, 0x21, 0x43,
|
||||
0x7f, 0x16, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x20,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
};
|
||||
|
||||
static const struct envelope_test sms_pp_data_download_data_161 = {
|
||||
.pdu = sms_pp_data_download_161,
|
||||
.pdu_len = sizeof(sms_pp_data_download_161),
|
||||
.envelope = {
|
||||
.type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD,
|
||||
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
|
||||
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
|
||||
{ .sms_pp_download = {
|
||||
.address = {
|
||||
.ton_npi = 0x91, /* Intl, ISDN */
|
||||
.number = "112233445566778",
|
||||
},
|
||||
.message = {
|
||||
.oaddr = {
|
||||
.number_type =
|
||||
SMS_NUMBER_TYPE_INTERNATIONAL,
|
||||
.numbering_plan =
|
||||
SMS_NUMBERING_PLAN_ISDN,
|
||||
.address = "1234",
|
||||
},
|
||||
.pid = SMS_PID_TYPE_USIM_DOWNLOAD,
|
||||
.dcs = 0x16, /* Uncompressed, Class 2, 8-bit */
|
||||
.scts = {
|
||||
.year = 98,
|
||||
.month = 1,
|
||||
.day = 1,
|
||||
},
|
||||
.udl = 13,
|
||||
.ud = "Short Message",
|
||||
},
|
||||
}},
|
||||
},
|
||||
};
|
||||
|
||||
static const unsigned char sms_pp_data_download_162[] = {
|
||||
0xd1, 0x2d, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09,
|
||||
0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
||||
0xf8, 0x8b, 0x1c, 0x04, 0x04, 0x91, 0x21, 0x43,
|
||||
0x7f, 0xf6, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x20,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
};
|
||||
|
||||
static const struct envelope_test sms_pp_data_download_data_162 = {
|
||||
.pdu = sms_pp_data_download_162,
|
||||
.pdu_len = sizeof(sms_pp_data_download_162),
|
||||
.envelope = {
|
||||
.type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD,
|
||||
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
|
||||
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
|
||||
{ .sms_pp_download = {
|
||||
.address = {
|
||||
.ton_npi = 0x91, /* Intl, ISDN */
|
||||
.number = "112233445566778",
|
||||
},
|
||||
.message = {
|
||||
.oaddr = {
|
||||
.number_type =
|
||||
SMS_NUMBER_TYPE_INTERNATIONAL,
|
||||
.numbering_plan =
|
||||
SMS_NUMBERING_PLAN_ISDN,
|
||||
.address = "1234",
|
||||
},
|
||||
.pid = SMS_PID_TYPE_USIM_DOWNLOAD,
|
||||
.dcs = 0xf6, /* Data, Class 2, 8-bit */
|
||||
.scts = {
|
||||
.year = 98,
|
||||
.month = 1,
|
||||
.day = 1,
|
||||
},
|
||||
.udl = 13,
|
||||
.ud = "Short Message",
|
||||
},
|
||||
}},
|
||||
},
|
||||
};
|
||||
|
||||
static const unsigned char sms_pp_data_download_182[] = {
|
||||
0xd1, 0x3e, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09,
|
||||
0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
||||
0xf8, 0x8b, 0x2d, 0x44, 0x04, 0x91, 0x21, 0x43,
|
||||
0x7f, 0xf6, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x02, 0x70, 0x00, 0x00, 0x19, 0x00,
|
||||
0x0d, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xdc, 0xdc,
|
||||
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
|
||||
};
|
||||
|
||||
static const struct envelope_test sms_pp_data_download_data_182 = {
|
||||
.pdu = sms_pp_data_download_182,
|
||||
.pdu_len = sizeof(sms_pp_data_download_182),
|
||||
.envelope = {
|
||||
.type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD,
|
||||
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
|
||||
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
|
||||
{ .sms_pp_download = {
|
||||
.address = {
|
||||
.ton_npi = 0x91, /* Intl, ISDN */
|
||||
.number = "112233445566778",
|
||||
},
|
||||
.message = {
|
||||
.udhi = TRUE,
|
||||
.oaddr = {
|
||||
.number_type =
|
||||
SMS_NUMBER_TYPE_INTERNATIONAL,
|
||||
.numbering_plan =
|
||||
SMS_NUMBERING_PLAN_ISDN,
|
||||
.address = "1234",
|
||||
},
|
||||
.pid = SMS_PID_TYPE_USIM_DOWNLOAD,
|
||||
.dcs = 0xf6, /* Data, Class 2, 8-bit */
|
||||
.scts = {
|
||||
.year = 98,
|
||||
.month = 1,
|
||||
.day = 1,
|
||||
},
|
||||
.udl = 30,
|
||||
.ud = {
|
||||
0x02, 0x70, 0x00, 0x00, 0x19, 0x00,
|
||||
0x0d, 0x00, 0x00, 0x00, 0x00, 0xbf,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0xdc, 0xdc, 0xdc, 0xdc,
|
||||
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
|
||||
},
|
||||
},
|
||||
}},
|
||||
},
|
||||
};
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
@ -19560,5 +19721,15 @@ int main(int argc, char **argv)
|
|||
&launch_browser_response_data_411b,
|
||||
test_terminal_response_encoding);
|
||||
|
||||
g_test_add_data_func("/teststk/SMS-PP data download 1.6.1",
|
||||
&sms_pp_data_download_data_161,
|
||||
test_envelope_encoding);
|
||||
g_test_add_data_func("/teststk/SMS-PP data download 1.6.2",
|
||||
&sms_pp_data_download_data_162,
|
||||
test_envelope_encoding);
|
||||
g_test_add_data_func("/teststk/SMS-PP data download 1.8.2",
|
||||
&sms_pp_data_download_data_182,
|
||||
test_envelope_encoding);
|
||||
|
||||
return g_test_run();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue