@@ -386,70 +386,112 @@ static void error_printbin(const char *data, size_t size) {
386386static void error_print_object (cmp_object_t * obj ) {
387387 switch (obj -> type ) {
388388 case CMP_TYPE_POSITIVE_FIXNUM :
389- case CMP_TYPE_UINT8 :
390- error_printf ("%u" , obj -> as .u8 );
389+ error_printf ("positive fixint: %u" , obj -> as .u8 );
390+ break ;
391+ case CMP_TYPE_NEGATIVE_FIXNUM :
392+ error_printf ("negative fixnum: %d" , obj -> as .s8 );
391393 break ;
392394 case CMP_TYPE_FIXMAP :
395+ error_printf ("fixmap: %u" , obj -> as .bin_size );
396+ break ;
393397 case CMP_TYPE_MAP16 :
398+ error_printf ("map16: %u" , obj -> as .bin_size );
399+ break ;
394400 case CMP_TYPE_MAP32 :
401+ error_printf ("map32: %u" , obj -> as .bin_size );
402+ break ;
395403 case CMP_TYPE_FIXARRAY :
404+ error_printf ("fixarray: %u" , obj -> as .bin_size );
405+ break ;
396406 case CMP_TYPE_ARRAY16 :
407+ error_printf ("array16: %u" , obj -> as .bin_size );
408+ break ;
397409 case CMP_TYPE_ARRAY32 :
410+ error_printf ("array32: %u" , obj -> as .bin_size );
411+ break ;
398412 case CMP_TYPE_FIXSTR :
413+ error_printf ("fixstr: %u" , obj -> as .bin_size );
414+ break ;
399415 case CMP_TYPE_STR8 :
416+ error_printf ("str8: %u" , obj -> as .bin_size );
417+ break ;
400418 case CMP_TYPE_STR16 :
419+ error_printf ("str16: %u" , obj -> as .bin_size );
420+ break ;
401421 case CMP_TYPE_STR32 :
422+ error_printf ("str32: %u" , obj -> as .bin_size );
423+ break ;
402424 case CMP_TYPE_BIN8 :
425+ error_printf ("bin8: %u" , obj -> as .bin_size );
426+ break ;
403427 case CMP_TYPE_BIN16 :
428+ error_printf ("bin16: %u" , obj -> as .bin_size );
429+ break ;
404430 case CMP_TYPE_BIN32 :
405- error_printf ("%u" , obj -> as .bin_size );
431+ error_printf ("bin32: %u" , obj -> as .bin_size );
406432 break ;
407433 case CMP_TYPE_NIL :
408434 error_printf ("NULL" );
409435 break ;
410436 case CMP_TYPE_BOOLEAN :
411437 if (obj -> as .boolean )
412- error_printf ("true" );
438+ error_printf ("bool: true" );
413439 else
414- error_printf ("false" );
440+ error_printf ("bool: false" );
415441 break ;
416442 case CMP_TYPE_EXT8 :
443+ error_printf ("ext8: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
444+ break ;
417445 case CMP_TYPE_EXT16 :
446+ error_printf ("ext16: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
447+ break ;
418448 case CMP_TYPE_EXT32 :
449+ error_printf ("ext32: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
450+ break ;
419451 case CMP_TYPE_FIXEXT1 :
452+ error_printf ("fixext1: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
453+ break ;
420454 case CMP_TYPE_FIXEXT2 :
455+ error_printf ("fixext2: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
456+ break ;
421457 case CMP_TYPE_FIXEXT4 :
458+ error_printf ("fixext4: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
459+ break ;
422460 case CMP_TYPE_FIXEXT8 :
461+ error_printf ("fixext8: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
462+ break ;
423463 case CMP_TYPE_FIXEXT16 :
424- error_printf ("{%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
464+ error_printf ("fixext16: {%d, %u}" , obj -> as .ext .type , obj -> as .ext .size );
425465 break ;
426466 case CMP_TYPE_FLOAT :
427- error_printf ("%f" , obj -> as .flt );
467+ error_printf ("float: %f" , obj -> as .flt );
428468 break ;
429469 case CMP_TYPE_DOUBLE :
430- error_printf ("%f" , obj -> as .dbl );
470+ error_printf ("double: %f" , obj -> as .dbl );
471+ break ;
472+ case CMP_TYPE_UINT8 :
473+ error_printf ("uint8: %u" , obj -> as .u8 );
431474 break ;
432475 case CMP_TYPE_UINT16 :
433- error_printf ("%u" , obj -> as .u16 );
476+ error_printf ("uint16: %u" , obj -> as .u16 );
434477 break ;
435478 case CMP_TYPE_UINT32 :
436- error_printf ("%u" , obj -> as .u32 );
479+ error_printf ("uint32: %u" , obj -> as .u32 );
437480 break ;
438481 case CMP_TYPE_UINT64 :
439- error_printf ("%" PRIu64 , obj -> as .u64 );
482+ error_printf ("uint64: %" PRIu64 , obj -> as .u64 );
440483 break ;
441- case CMP_TYPE_NEGATIVE_FIXNUM :
442484 case CMP_TYPE_SINT8 :
443- error_printf ("%d" , obj -> as .s8 );
485+ error_printf ("int8: %d" , obj -> as .s8 );
444486 break ;
445487 case CMP_TYPE_SINT16 :
446- error_printf ("%d" , obj -> as .s16 );
488+ error_printf ("int16: %d" , obj -> as .s16 );
447489 break ;
448490 case CMP_TYPE_SINT32 :
449- error_printf ("%d" , obj -> as .s32 );
491+ error_printf ("int32: %d" , obj -> as .s32 );
450492 break ;
451493 case CMP_TYPE_SINT64 :
452- error_printf ("%" PRId64 , obj -> as .s64 );
494+ error_printf ("int64: %" PRId64 , obj -> as .s64 );
453495 break ;
454496 }
455497}
@@ -1203,15 +1245,27 @@ bool run_binary_tests(void) {
12031245
12041246 setup_cmp_and_buf (& cmp , & buf );
12051247
1248+ test_format_with_length (
1249+ cmp_write_bin8 , cmp_read_bin , bin_size , "" , 0 , "\xc4\x00" , 2
1250+ );
12061251 test_format_with_length (
12071252 cmp_write_bin8 , cmp_read_bin , bin_size , "Hey there\n" , 10 , "\xc4\x0aHey there\n" , 12
12081253 );
1254+ test_format_with_length (
1255+ cmp_write_bin16 , cmp_read_bin , bin_size , "" , 0 , "\xc5\x00\x00" , 3
1256+ );
12091257 test_format_with_length (
12101258 cmp_write_bin16 , cmp_read_bin , bin_size , "Hey there\n" , 10 , "\xc5\x00\x0aHey there\n" , 13
12111259 );
1260+ test_format_with_length (
1261+ cmp_write_bin32 , cmp_read_bin , bin_size , "" , 0 , "\xc6\x00\x00\x00\x00" , 5
1262+ );
12121263 test_format_with_length (
12131264 cmp_write_bin32 , cmp_read_bin , bin_size , "Hey there\n" , 10 , "\xc6\x00\x00\x00\x0aHey there\n" , 15
12141265 );
1266+ test_format_with_length (
1267+ cmp_write_bin , cmp_read_bin , bin_size , "" , 0 , "\xc4\x00" , 2
1268+ );
12151269 test_format_with_length (
12161270 cmp_write_bin , cmp_read_bin , bin_size , "Hey there\n" , 10 , "\xc4\x0aHey there\n" , 12
12171271 );
@@ -1226,18 +1280,33 @@ bool run_string_tests(void) {
12261280
12271281 setup_cmp_and_buf (& cmp , & buf );
12281282
1283+ test_format_with_length (
1284+ cmp_write_fixstr , cmp_read_str , str_size , "" , 0 , "\xa0" , 1
1285+ );
12291286 test_format_with_length (
12301287 cmp_write_fixstr , cmp_read_str , str_size , "Hey there\n" , 10 , "\xaaHey there\n" , 11
12311288 );
1289+ test_format_with_length (
1290+ cmp_write_str8 , cmp_read_str , str_size , "" , 0 , "\xd9\x00" , 2
1291+ );
12321292 test_format_with_length (
12331293 cmp_write_str8 , cmp_read_str , str_size , "Hey there\n" , 10 , "\xd9\x0aHey there\n" , 12
12341294 );
1295+ test_format_with_length (
1296+ cmp_write_str16 , cmp_read_str , str_size , "" , 0 , "\xda\x00\x00" , 3
1297+ );
12351298 test_format_with_length (
12361299 cmp_write_str16 , cmp_read_str , str_size , "Hey there\n" , 10 , "\xda\x00\x0aHey there\n" , 13
12371300 );
1301+ test_format_with_length (
1302+ cmp_write_str32 , cmp_read_str , str_size , "" , 0 , "\xdb\x00\x00\x00\x00" , 5
1303+ );
12381304 test_format_with_length (
12391305 cmp_write_str32 , cmp_read_str , str_size , "Hey there\n" , 10 , "\xdb\x00\x00\x00\x0aHey there\n" , 15
12401306 );
1307+ test_format_with_length (
1308+ cmp_write_str , cmp_read_str , str_size , "" , 0 , "\xa0" , 1
1309+ );
12411310 test_format_with_length (
12421311 cmp_write_str , cmp_read_str , str_size , "Hey there\n" , 10 , "\xaaHey there\n" , 11
12431312 );
@@ -1252,10 +1321,30 @@ bool run_array_tests(void) {
12521321
12531322 setup_cmp_and_buf (& cmp , & buf );
12541323
1255- test_format (cmp_write_fixarray , cmp_read_array , array_size , uint32_t , 10 , "\x9a" , 1 );
1256- test_format (cmp_write_array16 , cmp_read_array , array_size , uint32_t , 10 , "\xdc\x00\x0a" , 3 );
1257- test_format (cmp_write_array32 , cmp_read_array , array_size , uint32_t , 10 , "\xdd\x00\x00\x00\x0a" , 5 );
1258- test_format (cmp_write_array , cmp_read_array , array_size , uint32_t , 10 , "\x9a" , 1 );
1324+ test_format (
1325+ cmp_write_fixarray , cmp_read_array , array_size , uint32_t , 0 , "\x90" , 1
1326+ );
1327+ test_format (
1328+ cmp_write_fixarray , cmp_read_array , array_size , uint32_t , 10 , "\x9a" , 1
1329+ );
1330+ test_format (
1331+ cmp_write_array16 , cmp_read_array , array_size , uint32_t , 0 , "\xdc\x00\x00" , 3
1332+ );
1333+ test_format (
1334+ cmp_write_array16 , cmp_read_array , array_size , uint32_t , 10 , "\xdc\x00\x0a" , 3
1335+ );
1336+ test_format (
1337+ cmp_write_array32 , cmp_read_array , array_size , uint32_t , 0 , "\xdd\x00\x00\x00\x00" , 5
1338+ );
1339+ test_format (
1340+ cmp_write_array32 , cmp_read_array , array_size , uint32_t , 10 , "\xdd\x00\x00\x00\x0a" , 5
1341+ );
1342+ test_format (
1343+ cmp_write_array , cmp_read_array , array_size , uint32_t , 0 , "\x90" , 1
1344+ );
1345+ test_format (
1346+ cmp_write_array , cmp_read_array , array_size , uint32_t , 10 , "\x9a" , 1
1347+ );
12591348
12601349 return true;
12611350}
@@ -1267,10 +1356,30 @@ bool run_map_tests(void) {
12671356
12681357 setup_cmp_and_buf (& cmp , & buf );
12691358
1270- test_format (cmp_write_fixmap , cmp_read_map , map_size , uint32_t , 10 , "\x8a" , 1 );
1271- test_format (cmp_write_map16 , cmp_read_map , map_size , uint32_t , 10 , "\xde\x00\x0a" , 3 );
1272- test_format (cmp_write_map32 , cmp_read_map , map_size , uint32_t , 10 , "\xdf\x00\x00\x00\x0a" , 5 );
1273- test_format (cmp_write_map , cmp_read_map , map_size , uint32_t , 10 , "\x8a" , 1 );
1359+ test_format (
1360+ cmp_write_fixmap , cmp_read_map , map_size , uint32_t , 0 , "\x80" , 1
1361+ );
1362+ test_format (
1363+ cmp_write_fixmap , cmp_read_map , map_size , uint32_t , 10 , "\x8a" , 1
1364+ );
1365+ test_format (
1366+ cmp_write_map16 , cmp_read_map , map_size , uint32_t , 0 , "\xde\x00\x00" , 3
1367+ );
1368+ test_format (
1369+ cmp_write_map16 , cmp_read_map , map_size , uint32_t , 10 , "\xde\x00\x0a" , 3
1370+ );
1371+ test_format (
1372+ cmp_write_map32 , cmp_read_map , map_size , uint32_t , 0 , "\xdf\x00\x00\x00\x00" , 5
1373+ );
1374+ test_format (
1375+ cmp_write_map32 , cmp_read_map , map_size , uint32_t , 10 , "\xdf\x00\x00\x00\x0a" , 5
1376+ );
1377+ test_format (
1378+ cmp_write_map , cmp_read_map , map_size , uint32_t , 0 , "\x80" , 1
1379+ );
1380+ test_format (
1381+ cmp_write_map , cmp_read_map , map_size , uint32_t , 10 , "\x8a" , 1
1382+ );
12741383
12751384 return true;
12761385}
0 commit comments