289
{ "112233445566778899aabbccddeeff1122",
290
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
292
{ "112233445566778899aabbccddeeff1122 blah",
293
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
295
{ "112233445566778899aabbccddeeff1122\tblah",
296
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
298
{ "112233445566778899aabbccddeeff1122\nblah",
299
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
301
/* Valid tests yielding an empty string. */
314
/* Test trailing Nul feature. */
315
{ "112233445566778899aabbccddeeff112200",
316
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
318
{ "112233445566778899aabbccddeeff112200 ",
319
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22",
321
/* Test buffer size. (buffer is of length 20) */
322
{ "6162636465666768696A6b6c6D6e6f70717273",
323
"abcdefghijklmnopqrs",
325
{ "6162636465666768696A6b6c6D6e6f7071727300",
326
"abcdefghijklmnopqrs",
328
{ "6162636465666768696A6b6c6D6e6f7071727374",
331
{ "6162636465666768696A6b6c6D6e6f707172737400",
334
{ "6162636465666768696A6b6c6D6e6f707172737475",
339
{ "112233445566778899aabbccddeeff1122334", NULL, 0 },
340
{ "112233445566778899AABBCCDDEEFF1122334", NULL, 0 },
341
{ "112233445566778899AABBCCDDEEFG11223344", NULL, 0 },
342
{ "0:0112233445566778899aabbccddeeff11223344", NULL, 0 },
343
{ "112233445566778899aabbccddeeff11223344:", NULL, 0 },
344
{ "112233445566778899aabbccddeeff112233445", NULL, 0 },
345
{ "112233445566778899aabbccddeeff1122334455", NULL, 0, 1 },
346
{ "112233445566778899aabbccddeeff11223344blah", NULL, 0 },
360
for (idx=0; tests[idx].hex; idx++)
362
tail = hex2str (tests[idx].hex, buffer, sizeof buffer, &count);
365
/* Good case test. */
368
else if (strcmp (tests[idx].str, buffer))
370
else if (tail - tests[idx].hex != tests[idx].off)
372
else if (strlen (buffer) != count)
383
/* Same tests again using in-place conversion. */
384
for (idx=0; tests[idx].hex; idx++)
388
assert (strlen (tests[idx].hex)+1 < sizeof tmpbuf);
389
strcpy (tmpbuf, tests[idx].hex);
391
/* Note: we still need to use 20 as buffer length because our
392
tests assume that. */
393
tail = hex2str (tmpbuf, tmpbuf, 20, &count);
396
/* Good case test. */
399
else if (strcmp (tests[idx].str, tmpbuf))
401
else if (tail - tmpbuf != tests[idx].off)
403
else if (strlen (tmpbuf) != count)
411
if (strcmp (tmpbuf, tests[idx].hex))
412
fail (idx); /* Buffer was modified. */
416
/* Test the allocation variant. */
417
for (idx=0; tests[idx].hex; idx++)
419
if (tests[idx].no_alloc_test)
422
result = hex2str_alloc (tests[idx].hex, &count);
425
/* Good case test. */
428
else if (strcmp (tests[idx].str, result))
430
else if (count != tests[idx].off)
280
448
main (int argc, char **argv)
284
454
test_hexcolon2bin ();
286
456
test_bin2hexcolon ();