Extend the "pdu" test

The new part of this test currently fails though.
This commit is contained in:
Pierre Pronchery 2015-12-30 14:38:31 +01:00
parent 38aaba0a63
commit 40e8fea674
3 changed files with 33 additions and 9 deletions

View File

@ -843,7 +843,8 @@ static char * _hayes_message_to_pdu(HayesChannel * channel, char const * number,
+ strlen((data != NULL) ? data : ""); + strlen((data != NULL) ? data : "");
if(addr != NULL && (ret = malloc(len)) != NULL) if(addr != NULL && (ret = malloc(len)) != NULL)
{ {
if(hayeschannel_has_quirks(channel, /* XXX no longer require the channel here */
if(channel != NULL && hayeschannel_has_quirks(channel,
HAYES_QUIRK_WANT_SMSC_IN_PDU)) HAYES_QUIRK_WANT_SMSC_IN_PDU))
smsc = "00"; smsc = "00";
if(snprintf(ret, len, "%s%s%02lX%s%s%s%s%02lX%s", smsc, prefix, if(snprintf(ret, len, "%s%s%02lX%s%s%s%s%02lX%s", smsc, prefix,

View File

@ -37,18 +37,23 @@ static int _pdu(void);
static int _pdu_decode(char const * pdu, char const * number, static int _pdu_decode(char const * pdu, char const * number,
char const * datetime, ModemMessageEncoding encoding, char const * datetime, ModemMessageEncoding encoding,
char const * message); char const * message);
static int _pdu_encode(void);
/* functions */ /* functions */
/* pdu */ /* pdu */
static int _pdu(void) static int _pdu(void)
{ {
return _pdu_decode("07916407058099F9040B916407752743" int ret = 0;
"F60000990121017580001554747A0E4A"
"CF416110945805B5CBF379F85C06", ret |= (_pdu_decode("07916407058099F9040B916407752743"
"+46705772346", "12/10/1999 12:57:08", "F60000990121017580001554747A0E4A"
MODEM_MESSAGE_ENCODING_UTF8, "CF416110945805B5CBF379F85C06",
"This is a PDU message"); "+46705772346", "12/10/1999 12:57:08",
MODEM_MESSAGE_ENCODING_UTF8,
"This is a PDU message") != 0) ? 1 : 0;
ret |= (_pdu_encode() != 0) ? 2 : 0;
return ret;
} }
@ -111,8 +116,26 @@ static int _pdu_decode(char const * pdu, char const * number,
} }
/* pdu_encode */
static int _pdu_encode(void)
{
int ret;
char * pdu;
char const number[] = "1234";
ModemMessageEncoding encoding = MODEM_MESSAGE_ENCODING_ASCII;
char const string[] = "This is just a test.";
if((pdu = _hayes_message_to_pdu(NULL, number, encoding,
sizeof(string) - 1, string)) == NULL)
return -1;
ret = _pdu_decode(pdu, number, NULL, encoding, string);
free(pdu);
return ret;
}
/* main */ /* main */
int main(void) int main(void)
{ {
return (_pdu() == 0) ? 0 : 2; return (_pdu() << 1);
} }

View File

@ -101,10 +101,10 @@ FAILED=
echo "Performing tests:" 1>&2 echo "Performing tests:" 1>&2
_test "hayes" _test "hayes"
_test "modems" _test "modems"
_test "pdu"
_test "plugins" _test "plugins"
_test "ussd" _test "ussd"
echo "Expected failures:" 1>&2 echo "Expected failures:" 1>&2
_fail "pdu"
if [ -n "$FAILED" ]; then if [ -n "$FAILED" ]; then
echo "Failed tests:$FAILED" 1>&2 echo "Failed tests:$FAILED" 1>&2
exit 2 exit 2