diff --git a/src/lua/msgpackffi.lua b/src/lua/msgpackffi.lua index d7fcebd69e81626b7c7d4e949f9e335c1934396f..df937a49e888e3958929701a2d4fb47fc7ab470a 100644 --- a/src/lua/msgpackffi.lua +++ b/src/lua/msgpackffi.lua @@ -290,34 +290,39 @@ on_encode(ffi.typeof('double'), encode_double) local decode_r +local NUMBER_INT_MAX = 4503599627370496LL -- 2^52 + local function decode_u8(data) local num = ffi.cast(uint8_ptr_t, data[0])[0] data[0] = data[0] + 1 - return num + return tonumber(num) end local function decode_u16(data) local num = bswap_u16(ffi.cast(uint16_ptr_t, data[0])[0]) data[0] = data[0] + 2 - return num + return tonumber(num) end local function decode_u32(data) local num = bswap_u32(ffi.cast(uint32_ptr_t, data[0])[0]) data[0] = data[0] + 4 - return num + return tonumber(num) end local function decode_u64(data) local num = bswap_u64(ffi.cast(uint64_ptr_t, data[0])[0]) data[0] = data[0] + 8 - return num + if num < NUMBER_INT_MAX then + return tonumber(num) -- return as 'number' + end + return num -- return as 'cdata' end local function decode_i8(data) local num = ffi.cast(int8_ptr_t, data[0])[0] data[0] = data[0] + 1 - return num + return tonumber(num) end local function decode_i16(data) @@ -333,9 +338,13 @@ local function decode_i32(data) end local function decode_i64(data) - local num = bswap_u64(ffi.cast(uint64_ptr_t, data[0])[0]) + local num = ffi.cast('int64_t', ffi.cast('uint64_t', + bswap_u64(ffi.cast(uint64_ptr_t, data[0])[0]))) data[0] = data[0] + 8 - return ffi.cast('int64_t', ffi.cast('uint64_t', num)) + if num > -NUMBER_INT_MAX and num < NUMBER_INT_MAX then + return tonumber(num) -- return as 'number' + end + return num -- return as 'cdata' end local bswap_buf = ffi.new('char[8]') @@ -427,17 +436,15 @@ decode_r = function(data) local c = data[0][0] data[0] = data[0] + 1 if c <= 0x7f then - return c -- fixint + return tonumber(c) -- fixint elseif c >= 0xa0 and c <= 0xbf then return decode_str(data, bit.band(c, 0x1f)) -- fixstr elseif c >= 0x90 and c <= 0x9f then return decode_array(data, bit.band(c, 0xf)) -- fixarray elseif c >= 0x80 and c <= 0x8f then return decode_map(data, bit.band(c, 0xf)) -- fixmap - elseif c <= 0x7f then - return c2 elseif c >= 0xe0 then - return ffi.cast('signed char',c) + return tonumber(ffi.cast('signed char',c)) -- negfixint elseif c == 0xc0 then return msgpack.NULL elseif c == 0xc2 then diff --git a/test/app/json.result b/test/app/json.result index 1443f601815a6e535bdf7db203855b7e66129a4b..a899ccf6befcceeedc8a4598ba49901b2fc0a56a 100644 --- a/test/app/json.result +++ b/test/app/json.result @@ -2,97 +2,177 @@ TAP version 13 # json 1..9 # unsigned - 1..56 + 1..118 ok - encode/decode for 0 + ok - encode/decode type for 0 ok - encode/decode for 0LL + ok - encode/decode type for 0LL ok - encode/decode for 0ULL + ok - encode/decode type for 0ULL ok - encode/decode for 1 + ok - encode/decode type for 1 ok - encode/decode for 1LL + ok - encode/decode type for 1LL ok - encode/decode for 1ULL + ok - encode/decode type for 1ULL ok - encode/decode for 127 + ok - encode/decode type for 127 ok - encode/decode for 127LL + ok - encode/decode type for 127LL ok - encode/decode for 127ULL + ok - encode/decode type for 127ULL ok - encode/decode for 128 + ok - encode/decode type for 128 ok - encode/decode for 128LL + ok - encode/decode type for 128LL ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for 255 + ok - encode/decode type for 255 ok - encode/decode for 255LL + ok - encode/decode type for 255LL ok - encode/decode for 255ULL + ok - encode/decode type for 255ULL ok - encode/decode for 256 + ok - encode/decode type for 256 ok - encode/decode for 256LL + ok - encode/decode type for 256LL ok - encode/decode for 256ULL + ok - encode/decode type for 256ULL ok - encode/decode for 65535 + ok - encode/decode type for 65535 ok - encode/decode for 65535LL + ok - encode/decode type for 65535LL ok - encode/decode for 65535ULL + ok - encode/decode type for 65535ULL ok - encode/decode for 65536 + ok - encode/decode type for 65536 ok - encode/decode for 65536LL + ok - encode/decode type for 65536LL ok - encode/decode for 65536ULL + ok - encode/decode type for 65536ULL ok - encode/decode for 4294967294 + ok - encode/decode type for 4294967294 ok - encode/decode for 4294967294LL + ok - encode/decode type for 4294967294LL ok - encode/decode for 4294967294ULL + ok - encode/decode type for 4294967294ULL ok - encode/decode for 4294967295 + ok - encode/decode type for 4294967295 ok - encode/decode for 4294967295LL + ok - encode/decode type for 4294967295LL ok - encode/decode for 4294967295ULL + ok - encode/decode type for 4294967295ULL ok - encode/decode for 4294967296 + ok - encode/decode type for 4294967296 ok - encode/decode for 4294967296LL + ok - encode/decode type for 4294967296LL ok - encode/decode for 4294967296ULL + ok - encode/decode type for 4294967296ULL ok - encode/decode for 4294967297 + ok - encode/decode type for 4294967297 ok - encode/decode for 4294967297LL + ok - encode/decode type for 4294967297LL ok - encode/decode for 4294967297ULL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992LL - ok - encode/decode for 9007199254740992ULL + ok - encode/decode type for 4294967297ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370495LL + ok - encode/decode type for 4503599627370495LL + ok - encode/decode for 4503599627370495ULL + ok - encode/decode type for 4503599627370495ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370496LL + ok - encode/decode type for 4503599627370496LL + ok - encode/decode for 4503599627370496ULL + ok - encode/decode type for 4503599627370496ULL ok - encode/decode for 9223372036854775807LL + ok - encode/decode type for 9223372036854775807LL ok - encode/decode for 9223372036854775807ULL + ok - encode/decode type for 9223372036854775807ULL ok - encode/decode for 9223372036854775808ULL + ok - encode/decode type for 9223372036854775808ULL ok - encode/decode for 9223372036854775809ULL + ok - encode/decode type for 9223372036854775809ULL ok - encode/decode for 18446744073709551614ULL + ok - encode/decode type for 18446744073709551614ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for cdata<unsigned char>: + ok - encode/decode type for cdata<unsigned char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<unsigned short>: + ok - encode/decode type for cdata<unsigned short>: ok - encode/decode for cdata<short>: + ok - encode/decode type for cdata<short>: ok - encode/decode for cdata<unsigned int>: + ok - encode/decode type for cdata<unsigned int>: ok - encode/decode for cdata<int>: + ok - encode/decode type for cdata<int>: ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: # unsigned: end ok - unsigned # signed - 1..30 + 1..48 ok - encode/decode for -1 + ok - encode/decode type for -1 ok - encode/decode for -1LL + ok - encode/decode type for -1LL ok - encode/decode for -31 + ok - encode/decode type for -31 ok - encode/decode for -31LL + ok - encode/decode type for -31LL ok - encode/decode for -32 + ok - encode/decode type for -32 ok - encode/decode for -32LL + ok - encode/decode type for -32LL ok - encode/decode for -127 + ok - encode/decode type for -127 ok - encode/decode for -127LL + ok - encode/decode type for -127LL ok - encode/decode for -128 + ok - encode/decode type for -128 ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for -32767 + ok - encode/decode type for -32767 ok - encode/decode for -32767LL + ok - encode/decode type for -32767LL ok - encode/decode for -32768 + ok - encode/decode type for -32768 ok - encode/decode for -32768LL + ok - encode/decode type for -32768LL ok - encode/decode for -2147483647 + ok - encode/decode type for -2147483647 ok - encode/decode for -2147483647LL + ok - encode/decode type for -2147483647LL ok - encode/decode for -2147483648 + ok - encode/decode type for -2147483648 ok - encode/decode for -2147483648LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740991ULL - ok - encode/decode for 9007199254740991LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992ULL - ok - encode/decode for 9007199254740992LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740991LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740992LL + ok - encode/decode type for -2147483648LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370495LL + ok - encode/decode type for -4503599627370495LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370496LL + ok - encode/decode type for -4503599627370496LL ok - encode/decode for -9223372036854775806LL + ok - encode/decode type for -9223372036854775806LL ok - encode/decode for -9223372036854775807LL + ok - encode/decode type for -9223372036854775807LL # signed: end ok - signed # double diff --git a/test/app/lua/serializer_test.lua b/test/app/lua/serializer_test.lua index 3adb18518d913d8112c498d3a6ca19aeaa398d13..a5aed744031e7110ec4c1d324b19e8caad25b694 100644 --- a/test/app/lua/serializer_test.lua +++ b/test/app/lua/serializer_test.lua @@ -1,6 +1,6 @@ local ffi = require('ffi') -local function rt(test, s, x) +local function rt(test, s, x, t) local buf1 = s.encode(x) local x1, offset1 = s.decode(buf1) local xstr @@ -19,133 +19,131 @@ local function rt(test, s, x) xstr = tostring(x) end test:is_deeply(x, x1, "encode/decode for "..xstr) + if t ~= nil then + test:is(type(x1), t, "encode/decode type for "..xstr) + end end local function test_unsigned(test, s) - test:plan(56) - rt(test, s, 0) - rt(test, s, 0LL) - rt(test, s, 0ULL) - - rt(test, s, 1) - rt(test, s, 1LL) - rt(test, s, 1ULL) - - rt(test, s, 127) - rt(test, s, 127LL) - rt(test, s, 127ULL) - - rt(test, s, 128) - rt(test, s, 128LL) - rt(test, s, 128ULL) - - rt(test, s, 255) - rt(test, s, 255LL) - rt(test, s, 255ULL) - - rt(test, s, 256) - rt(test, s, 256LL) - rt(test, s, 256ULL) - - rt(test, s, 65535) - rt(test, s, 65535LL) - rt(test, s, 65535ULL) - - rt(test, s, 65536) - rt(test, s, 65536LL) - rt(test, s, 65536ULL) - - rt(test, s, 4294967294) - rt(test, s, 4294967294LL) - rt(test, s, 4294967294ULL) - - rt(test, s, 4294967295) - rt(test, s, 4294967295LL) - rt(test, s, 4294967295ULL) - - rt(test, s, 4294967296) - rt(test, s, 4294967296LL) - rt(test, s, 4294967296ULL) - - rt(test, s, 4294967297) - rt(test, s, 4294967297LL) - rt(test, s, 4294967297ULL) - - rt(test, s, 9007199254740992) - rt(test, s, 9007199254740992LL) - rt(test, s, 9007199254740992ULL) - - rt(test, s, 9223372036854775807LL) - rt(test, s, 9223372036854775807ULL) - - rt(test, s, 9223372036854775808ULL) - rt(test, s, 9223372036854775809ULL) - rt(test, s, 18446744073709551614ULL) - rt(test, s, 18446744073709551615ULL) - - rt(test, s, -1ULL) - - rt(test, s, ffi.new('uint8_t', 128)) - rt(test, s, ffi.new('int8_t', -128)) - rt(test, s, ffi.new('uint16_t', 128)) - rt(test, s, ffi.new('int16_t', -128)) - rt(test, s, ffi.new('uint32_t', 128)) - rt(test, s, ffi.new('int32_t', -128)) - rt(test, s, ffi.new('uint64_t', 128)) - rt(test, s, ffi.new('int64_t', -128)) - - rt(test, s, ffi.new('char', 128)) - rt(test, s, ffi.new('char', -128)) + test:plan(118) + rt(test, s, 0, "number") + rt(test, s, 0LL, "number") + rt(test, s, 0ULL, "number") + + rt(test, s, 1, "number") + rt(test, s, 1LL, "number") + rt(test, s, 1ULL, "number") + + rt(test, s, 127, "number") + rt(test, s, 127LL, "number") + rt(test, s, 127ULL, "number") + + rt(test, s, 128, "number") + rt(test, s, 128LL, "number") + rt(test, s, 128ULL, "number") + + rt(test, s, 255, "number") + rt(test, s, 255LL, "number") + rt(test, s, 255ULL, "number") + + rt(test, s, 256, "number") + rt(test, s, 256LL, "number") + rt(test, s, 256ULL, "number") + + rt(test, s, 65535, "number") + rt(test, s, 65535LL, "number") + rt(test, s, 65535ULL, "number") + + rt(test, s, 65536, "number") + rt(test, s, 65536LL, "number") + rt(test, s, 65536ULL, "number") + + rt(test, s, 4294967294, "number") + rt(test, s, 4294967294LL, "number") + rt(test, s, 4294967294ULL, "number") + + rt(test, s, 4294967295, "number") + rt(test, s, 4294967295LL, "number") + rt(test, s, 4294967295ULL, "number") + + rt(test, s, 4294967296, "number") + rt(test, s, 4294967296LL, "number") + rt(test, s, 4294967296ULL, "number") + + rt(test, s, 4294967297, "number") + rt(test, s, 4294967297LL, "number") + rt(test, s, 4294967297ULL, "number") + + -- 1e52 - maximum int that can be stored to double without losing precision + rt(test, s, 4503599627370495, "number") + rt(test, s, 4503599627370495LL, "number") + rt(test, s, 4503599627370495ULL, "number") + rt(test, s, 4503599627370496, "cdata") + rt(test, s, 4503599627370496LL, "cdata") + rt(test, s, 4503599627370496ULL, "cdata") + + rt(test, s, 9223372036854775807LL, "cdata") + rt(test, s, 9223372036854775807ULL, "cdata") + + rt(test, s, 9223372036854775808ULL, "cdata") + rt(test, s, 9223372036854775809ULL, "cdata") + rt(test, s, 18446744073709551614ULL, "cdata") + rt(test, s, 18446744073709551615ULL, "cdata") + + rt(test, s, -1ULL, "cdata") + + rt(test, s, ffi.new('uint8_t', 128), 'number') + rt(test, s, ffi.new('int8_t', -128), 'number') + rt(test, s, ffi.new('uint16_t', 128), 'number') + rt(test, s, ffi.new('int16_t', -128), 'number') + rt(test, s, ffi.new('uint32_t', 128), 'number') + rt(test, s, ffi.new('int32_t', -128), 'number') + rt(test, s, ffi.new('uint64_t', 128), 'number') + rt(test, s, ffi.new('int64_t', -128), 'number') + + rt(test, s, ffi.new('char', 128), 'number') + rt(test, s, ffi.new('char', -128), 'number') end local function test_signed(test, s) - test:plan(30) - - rt(test, s, -1) - rt(test, s, -1LL) - - rt(test, s, -31) - rt(test, s, -31LL) - - rt(test, s, -32) - rt(test, s, -32LL) + test:plan(48) - rt(test, s, -127) - rt(test, s, -127LL) + rt(test, s, -1, 'number') + rt(test, s, -1LL, 'number') - rt(test, s, -128) - rt(test, s, -128LL) + rt(test, s, -31, 'number') + rt(test, s, -31LL, 'number') - rt(test, s, -32767) - rt(test, s, -32767LL) + rt(test, s, -32, 'number') + rt(test, s, -32LL, 'number') - rt(test, s, -32768) - rt(test, s, -32768LL) + rt(test, s, -127, 'number') + rt(test, s, -127LL, 'number') - rt(test, s, -2147483647) - rt(test, s, -2147483647LL) + rt(test, s, -128, 'number') + rt(test, s, -128LL, 'number') - rt(test, s, -2147483648) - rt(test, s, -2147483648LL) + rt(test, s, -32767, 'number') + rt(test, s, -32767LL, 'number') - -- 1e53 - maximum int that can be stored to double without losing precision + rt(test, s, -32768, 'number') + rt(test, s, -32768LL, 'number') - rt(test, s, 9007199254740991) - rt(test, s, 9007199254740991ULL) - rt(test, s, 9007199254740991LL) + rt(test, s, -2147483647, 'number') + rt(test, s, -2147483647LL, 'number') - rt(test, s, 9007199254740992) - rt(test, s, 9007199254740992ULL) - rt(test, s, 9007199254740992LL) + rt(test, s, -2147483648, 'number') + rt(test, s, -2147483648LL, 'number') - rt(test, s, -9007199254740991) - rt(test, s, -9007199254740991LL) - rt(test, s, -9007199254740992) - rt(test, s, -9007199254740992LL) + -- 1e52 - maximum int that can be stored to double without losing precision + rt(test, s, -4503599627370495, "number") + rt(test, s, -4503599627370495LL, "number") + rt(test, s, -4503599627370496, "cdata") + rt(test, s, -4503599627370496LL, "cdata") - rt(test, s, -9223372036854775806LL) + rt(test, s, -9223372036854775806LL, 'cdata') - rt(test, s, -9223372036854775807LL) + rt(test, s, -9223372036854775807LL, 'cdata') end local function test_double(test, s) diff --git a/test/app/msgpack.result b/test/app/msgpack.result index 2c2a66a09075b037b4106acc3a0a305c31409053..986a733911f46099b12397919fb37f94b885b1f5 100644 --- a/test/app/msgpack.result +++ b/test/app/msgpack.result @@ -2,97 +2,177 @@ TAP version 13 # msgpack 1..9 # unsigned - 1..56 + 1..118 ok - encode/decode for 0 + ok - encode/decode type for 0 ok - encode/decode for 0LL + ok - encode/decode type for 0LL ok - encode/decode for 0ULL + ok - encode/decode type for 0ULL ok - encode/decode for 1 + ok - encode/decode type for 1 ok - encode/decode for 1LL + ok - encode/decode type for 1LL ok - encode/decode for 1ULL + ok - encode/decode type for 1ULL ok - encode/decode for 127 + ok - encode/decode type for 127 ok - encode/decode for 127LL + ok - encode/decode type for 127LL ok - encode/decode for 127ULL + ok - encode/decode type for 127ULL ok - encode/decode for 128 + ok - encode/decode type for 128 ok - encode/decode for 128LL + ok - encode/decode type for 128LL ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for 255 + ok - encode/decode type for 255 ok - encode/decode for 255LL + ok - encode/decode type for 255LL ok - encode/decode for 255ULL + ok - encode/decode type for 255ULL ok - encode/decode for 256 + ok - encode/decode type for 256 ok - encode/decode for 256LL + ok - encode/decode type for 256LL ok - encode/decode for 256ULL + ok - encode/decode type for 256ULL ok - encode/decode for 65535 + ok - encode/decode type for 65535 ok - encode/decode for 65535LL + ok - encode/decode type for 65535LL ok - encode/decode for 65535ULL + ok - encode/decode type for 65535ULL ok - encode/decode for 65536 + ok - encode/decode type for 65536 ok - encode/decode for 65536LL + ok - encode/decode type for 65536LL ok - encode/decode for 65536ULL + ok - encode/decode type for 65536ULL ok - encode/decode for 4294967294 + ok - encode/decode type for 4294967294 ok - encode/decode for 4294967294LL + ok - encode/decode type for 4294967294LL ok - encode/decode for 4294967294ULL + ok - encode/decode type for 4294967294ULL ok - encode/decode for 4294967295 + ok - encode/decode type for 4294967295 ok - encode/decode for 4294967295LL + ok - encode/decode type for 4294967295LL ok - encode/decode for 4294967295ULL + ok - encode/decode type for 4294967295ULL ok - encode/decode for 4294967296 + ok - encode/decode type for 4294967296 ok - encode/decode for 4294967296LL + ok - encode/decode type for 4294967296LL ok - encode/decode for 4294967296ULL + ok - encode/decode type for 4294967296ULL ok - encode/decode for 4294967297 + ok - encode/decode type for 4294967297 ok - encode/decode for 4294967297LL + ok - encode/decode type for 4294967297LL ok - encode/decode for 4294967297ULL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992LL - ok - encode/decode for 9007199254740992ULL + ok - encode/decode type for 4294967297ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370495LL + ok - encode/decode type for 4503599627370495LL + ok - encode/decode for 4503599627370495ULL + ok - encode/decode type for 4503599627370495ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370496LL + ok - encode/decode type for 4503599627370496LL + ok - encode/decode for 4503599627370496ULL + ok - encode/decode type for 4503599627370496ULL ok - encode/decode for 9223372036854775807LL + ok - encode/decode type for 9223372036854775807LL ok - encode/decode for 9223372036854775807ULL + ok - encode/decode type for 9223372036854775807ULL ok - encode/decode for 9223372036854775808ULL + ok - encode/decode type for 9223372036854775808ULL ok - encode/decode for 9223372036854775809ULL + ok - encode/decode type for 9223372036854775809ULL ok - encode/decode for 18446744073709551614ULL + ok - encode/decode type for 18446744073709551614ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for cdata<unsigned char>: + ok - encode/decode type for cdata<unsigned char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<unsigned short>: + ok - encode/decode type for cdata<unsigned short>: ok - encode/decode for cdata<short>: + ok - encode/decode type for cdata<short>: ok - encode/decode for cdata<unsigned int>: + ok - encode/decode type for cdata<unsigned int>: ok - encode/decode for cdata<int>: + ok - encode/decode type for cdata<int>: ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: # unsigned: end ok - unsigned # signed - 1..30 + 1..48 ok - encode/decode for -1 + ok - encode/decode type for -1 ok - encode/decode for -1LL + ok - encode/decode type for -1LL ok - encode/decode for -31 + ok - encode/decode type for -31 ok - encode/decode for -31LL + ok - encode/decode type for -31LL ok - encode/decode for -32 + ok - encode/decode type for -32 ok - encode/decode for -32LL + ok - encode/decode type for -32LL ok - encode/decode for -127 + ok - encode/decode type for -127 ok - encode/decode for -127LL + ok - encode/decode type for -127LL ok - encode/decode for -128 + ok - encode/decode type for -128 ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for -32767 + ok - encode/decode type for -32767 ok - encode/decode for -32767LL + ok - encode/decode type for -32767LL ok - encode/decode for -32768 + ok - encode/decode type for -32768 ok - encode/decode for -32768LL + ok - encode/decode type for -32768LL ok - encode/decode for -2147483647 + ok - encode/decode type for -2147483647 ok - encode/decode for -2147483647LL + ok - encode/decode type for -2147483647LL ok - encode/decode for -2147483648 + ok - encode/decode type for -2147483648 ok - encode/decode for -2147483648LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740991ULL - ok - encode/decode for 9007199254740991LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992ULL - ok - encode/decode for 9007199254740992LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740991LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740992LL + ok - encode/decode type for -2147483648LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370495LL + ok - encode/decode type for -4503599627370495LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370496LL + ok - encode/decode type for -4503599627370496LL ok - encode/decode for -9223372036854775806LL + ok - encode/decode type for -9223372036854775806LL ok - encode/decode for -9223372036854775807LL + ok - encode/decode type for -9223372036854775807LL # signed: end ok - signed # double diff --git a/test/app/msgpackffi.result b/test/app/msgpackffi.result index 8432aab5d79be25eba8cce3899bbe2c893080df2..1a966dcc71c737460be5c66d325568f73c1b102b 100644 --- a/test/app/msgpackffi.result +++ b/test/app/msgpackffi.result @@ -2,97 +2,177 @@ TAP version 13 # msgpackffi 1..9 # unsigned - 1..56 + 1..118 ok - encode/decode for 0 + ok - encode/decode type for 0 ok - encode/decode for 0LL + ok - encode/decode type for 0LL ok - encode/decode for 0ULL + ok - encode/decode type for 0ULL ok - encode/decode for 1 + ok - encode/decode type for 1 ok - encode/decode for 1LL + ok - encode/decode type for 1LL ok - encode/decode for 1ULL + ok - encode/decode type for 1ULL ok - encode/decode for 127 + ok - encode/decode type for 127 ok - encode/decode for 127LL + ok - encode/decode type for 127LL ok - encode/decode for 127ULL + ok - encode/decode type for 127ULL ok - encode/decode for 128 + ok - encode/decode type for 128 ok - encode/decode for 128LL + ok - encode/decode type for 128LL ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for 255 + ok - encode/decode type for 255 ok - encode/decode for 255LL + ok - encode/decode type for 255LL ok - encode/decode for 255ULL + ok - encode/decode type for 255ULL ok - encode/decode for 256 + ok - encode/decode type for 256 ok - encode/decode for 256LL + ok - encode/decode type for 256LL ok - encode/decode for 256ULL + ok - encode/decode type for 256ULL ok - encode/decode for 65535 + ok - encode/decode type for 65535 ok - encode/decode for 65535LL + ok - encode/decode type for 65535LL ok - encode/decode for 65535ULL + ok - encode/decode type for 65535ULL ok - encode/decode for 65536 + ok - encode/decode type for 65536 ok - encode/decode for 65536LL + ok - encode/decode type for 65536LL ok - encode/decode for 65536ULL + ok - encode/decode type for 65536ULL ok - encode/decode for 4294967294 + ok - encode/decode type for 4294967294 ok - encode/decode for 4294967294LL + ok - encode/decode type for 4294967294LL ok - encode/decode for 4294967294ULL + ok - encode/decode type for 4294967294ULL ok - encode/decode for 4294967295 + ok - encode/decode type for 4294967295 ok - encode/decode for 4294967295LL + ok - encode/decode type for 4294967295LL ok - encode/decode for 4294967295ULL + ok - encode/decode type for 4294967295ULL ok - encode/decode for 4294967296 + ok - encode/decode type for 4294967296 ok - encode/decode for 4294967296LL + ok - encode/decode type for 4294967296LL ok - encode/decode for 4294967296ULL + ok - encode/decode type for 4294967296ULL ok - encode/decode for 4294967297 + ok - encode/decode type for 4294967297 ok - encode/decode for 4294967297LL + ok - encode/decode type for 4294967297LL ok - encode/decode for 4294967297ULL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992LL - ok - encode/decode for 9007199254740992ULL + ok - encode/decode type for 4294967297ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370495LL + ok - encode/decode type for 4503599627370495LL + ok - encode/decode for 4503599627370495ULL + ok - encode/decode type for 4503599627370495ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370496LL + ok - encode/decode type for 4503599627370496LL + ok - encode/decode for 4503599627370496ULL + ok - encode/decode type for 4503599627370496ULL ok - encode/decode for 9223372036854775807LL + ok - encode/decode type for 9223372036854775807LL ok - encode/decode for 9223372036854775807ULL + ok - encode/decode type for 9223372036854775807ULL ok - encode/decode for 9223372036854775808ULL + ok - encode/decode type for 9223372036854775808ULL ok - encode/decode for 9223372036854775809ULL + ok - encode/decode type for 9223372036854775809ULL ok - encode/decode for 18446744073709551614ULL + ok - encode/decode type for 18446744073709551614ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for cdata<unsigned char>: + ok - encode/decode type for cdata<unsigned char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<unsigned short>: + ok - encode/decode type for cdata<unsigned short>: ok - encode/decode for cdata<short>: + ok - encode/decode type for cdata<short>: ok - encode/decode for cdata<unsigned int>: + ok - encode/decode type for cdata<unsigned int>: ok - encode/decode for cdata<int>: + ok - encode/decode type for cdata<int>: ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: # unsigned: end ok - unsigned # signed - 1..30 + 1..48 ok - encode/decode for -1 + ok - encode/decode type for -1 ok - encode/decode for -1LL + ok - encode/decode type for -1LL ok - encode/decode for -31 + ok - encode/decode type for -31 ok - encode/decode for -31LL + ok - encode/decode type for -31LL ok - encode/decode for -32 + ok - encode/decode type for -32 ok - encode/decode for -32LL + ok - encode/decode type for -32LL ok - encode/decode for -127 + ok - encode/decode type for -127 ok - encode/decode for -127LL + ok - encode/decode type for -127LL ok - encode/decode for -128 + ok - encode/decode type for -128 ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for -32767 + ok - encode/decode type for -32767 ok - encode/decode for -32767LL + ok - encode/decode type for -32767LL ok - encode/decode for -32768 + ok - encode/decode type for -32768 ok - encode/decode for -32768LL + ok - encode/decode type for -32768LL ok - encode/decode for -2147483647 + ok - encode/decode type for -2147483647 ok - encode/decode for -2147483647LL + ok - encode/decode type for -2147483647LL ok - encode/decode for -2147483648 + ok - encode/decode type for -2147483648 ok - encode/decode for -2147483648LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740991ULL - ok - encode/decode for 9007199254740991LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992ULL - ok - encode/decode for 9007199254740992LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740991LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740992LL + ok - encode/decode type for -2147483648LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370495LL + ok - encode/decode type for -4503599627370495LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370496LL + ok - encode/decode type for -4503599627370496LL ok - encode/decode for -9223372036854775806LL + ok - encode/decode type for -9223372036854775806LL ok - encode/decode for -9223372036854775807LL + ok - encode/decode type for -9223372036854775807LL # signed: end ok - signed # double diff --git a/test/app/yaml.result b/test/app/yaml.result index d952c0323f8ecc803b1ebcbfc937936535a248f7..872f589c6425066d75f58ca6ec693bfee034e7be 100644 --- a/test/app/yaml.result +++ b/test/app/yaml.result @@ -2,97 +2,177 @@ TAP version 13 # yaml 1..10 # unsigned - 1..56 + 1..118 ok - encode/decode for 0 + ok - encode/decode type for 0 ok - encode/decode for 0LL + ok - encode/decode type for 0LL ok - encode/decode for 0ULL + ok - encode/decode type for 0ULL ok - encode/decode for 1 + ok - encode/decode type for 1 ok - encode/decode for 1LL + ok - encode/decode type for 1LL ok - encode/decode for 1ULL + ok - encode/decode type for 1ULL ok - encode/decode for 127 + ok - encode/decode type for 127 ok - encode/decode for 127LL + ok - encode/decode type for 127LL ok - encode/decode for 127ULL + ok - encode/decode type for 127ULL ok - encode/decode for 128 + ok - encode/decode type for 128 ok - encode/decode for 128LL + ok - encode/decode type for 128LL ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for 255 + ok - encode/decode type for 255 ok - encode/decode for 255LL + ok - encode/decode type for 255LL ok - encode/decode for 255ULL + ok - encode/decode type for 255ULL ok - encode/decode for 256 + ok - encode/decode type for 256 ok - encode/decode for 256LL + ok - encode/decode type for 256LL ok - encode/decode for 256ULL + ok - encode/decode type for 256ULL ok - encode/decode for 65535 + ok - encode/decode type for 65535 ok - encode/decode for 65535LL + ok - encode/decode type for 65535LL ok - encode/decode for 65535ULL + ok - encode/decode type for 65535ULL ok - encode/decode for 65536 + ok - encode/decode type for 65536 ok - encode/decode for 65536LL + ok - encode/decode type for 65536LL ok - encode/decode for 65536ULL + ok - encode/decode type for 65536ULL ok - encode/decode for 4294967294 + ok - encode/decode type for 4294967294 ok - encode/decode for 4294967294LL + ok - encode/decode type for 4294967294LL ok - encode/decode for 4294967294ULL + ok - encode/decode type for 4294967294ULL ok - encode/decode for 4294967295 + ok - encode/decode type for 4294967295 ok - encode/decode for 4294967295LL + ok - encode/decode type for 4294967295LL ok - encode/decode for 4294967295ULL + ok - encode/decode type for 4294967295ULL ok - encode/decode for 4294967296 + ok - encode/decode type for 4294967296 ok - encode/decode for 4294967296LL + ok - encode/decode type for 4294967296LL ok - encode/decode for 4294967296ULL + ok - encode/decode type for 4294967296ULL ok - encode/decode for 4294967297 + ok - encode/decode type for 4294967297 ok - encode/decode for 4294967297LL + ok - encode/decode type for 4294967297LL ok - encode/decode for 4294967297ULL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992LL - ok - encode/decode for 9007199254740992ULL + ok - encode/decode type for 4294967297ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370495LL + ok - encode/decode type for 4503599627370495LL + ok - encode/decode for 4503599627370495ULL + ok - encode/decode type for 4503599627370495ULL + ok - encode/decode for 4.5035996273705e+15 + ok - encode/decode type for 4.5035996273705e+15 + ok - encode/decode for 4503599627370496LL + ok - encode/decode type for 4503599627370496LL + ok - encode/decode for 4503599627370496ULL + ok - encode/decode type for 4503599627370496ULL ok - encode/decode for 9223372036854775807LL + ok - encode/decode type for 9223372036854775807LL ok - encode/decode for 9223372036854775807ULL + ok - encode/decode type for 9223372036854775807ULL ok - encode/decode for 9223372036854775808ULL + ok - encode/decode type for 9223372036854775808ULL ok - encode/decode for 9223372036854775809ULL + ok - encode/decode type for 9223372036854775809ULL ok - encode/decode for 18446744073709551614ULL + ok - encode/decode type for 18446744073709551614ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for 18446744073709551615ULL + ok - encode/decode type for 18446744073709551615ULL ok - encode/decode for cdata<unsigned char>: + ok - encode/decode type for cdata<unsigned char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<unsigned short>: + ok - encode/decode type for cdata<unsigned short>: ok - encode/decode for cdata<short>: + ok - encode/decode type for cdata<short>: ok - encode/decode for cdata<unsigned int>: + ok - encode/decode type for cdata<unsigned int>: ok - encode/decode for cdata<int>: + ok - encode/decode type for cdata<int>: ok - encode/decode for 128ULL + ok - encode/decode type for 128ULL ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: ok - encode/decode for cdata<char>: + ok - encode/decode type for cdata<char>: # unsigned: end ok - unsigned # signed - 1..30 + 1..48 ok - encode/decode for -1 + ok - encode/decode type for -1 ok - encode/decode for -1LL + ok - encode/decode type for -1LL ok - encode/decode for -31 + ok - encode/decode type for -31 ok - encode/decode for -31LL + ok - encode/decode type for -31LL ok - encode/decode for -32 + ok - encode/decode type for -32 ok - encode/decode for -32LL + ok - encode/decode type for -32LL ok - encode/decode for -127 + ok - encode/decode type for -127 ok - encode/decode for -127LL + ok - encode/decode type for -127LL ok - encode/decode for -128 + ok - encode/decode type for -128 ok - encode/decode for -128LL + ok - encode/decode type for -128LL ok - encode/decode for -32767 + ok - encode/decode type for -32767 ok - encode/decode for -32767LL + ok - encode/decode type for -32767LL ok - encode/decode for -32768 + ok - encode/decode type for -32768 ok - encode/decode for -32768LL + ok - encode/decode type for -32768LL ok - encode/decode for -2147483647 + ok - encode/decode type for -2147483647 ok - encode/decode for -2147483647LL + ok - encode/decode type for -2147483647LL ok - encode/decode for -2147483648 + ok - encode/decode type for -2147483648 ok - encode/decode for -2147483648LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740991ULL - ok - encode/decode for 9007199254740991LL - ok - encode/decode for 9.007199254741e+15 - ok - encode/decode for 9007199254740992ULL - ok - encode/decode for 9007199254740992LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740991LL - ok - encode/decode for -9.007199254741e+15 - ok - encode/decode for -9007199254740992LL + ok - encode/decode type for -2147483648LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370495LL + ok - encode/decode type for -4503599627370495LL + ok - encode/decode for -4.5035996273705e+15 + ok - encode/decode type for -4.5035996273705e+15 + ok - encode/decode for -4503599627370496LL + ok - encode/decode type for -4503599627370496LL ok - encode/decode for -9223372036854775806LL + ok - encode/decode type for -9223372036854775806LL ok - encode/decode for -9223372036854775807LL + ok - encode/decode type for -9223372036854775807LL # signed: end ok - signed # double