From e93c740df5fe50a83b145e58c105ba54aaf67ac6 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Mon, 30 Aug 2021 16:20:53 +0430 Subject: [PATCH] Meta: Generate bigints for i64 values in LibWasm test suite files --- Meta/generate-libwasm-spec-test.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Meta/generate-libwasm-spec-test.py b/Meta/generate-libwasm-spec-test.py index fffdc09280d..991f13c37ff 100644 --- a/Meta/generate-libwasm-spec-test.py +++ b/Meta/generate-libwasm-spec-test.py @@ -245,7 +245,10 @@ def genarg(spec): return str(struct.unpack('>i', struct.pack('>Q', int(x, 16))[4:])[0]) # cast back to i64 to get the correct sign - return str(struct.unpack('>q', struct.pack('>Q', int(x, 16)))[0]) + return str(struct.unpack('>q', struct.pack('>Q', int(x, 16)))[0]) + 'n' + if spec['type'] == 'i64': + # Make a bigint instead, since `double' cannot fit all i64 values. + return x + 'n' return x if x == 'nan': @@ -304,8 +307,8 @@ def genresult(ident, entry): if entry['kind'] == 'return': return ( - f'let {ident}_result = {expectation};\n ' + - (f'expect({ident}_result).toBe({genarg(entry["result"])})\n ' if entry["result"] is not None else '') + f'let {ident}_result = {expectation};\n ' + + (f'expect({ident}_result).toBe({genarg(entry["result"])})\n ' if entry["result"] is not None else '') ) if entry['kind'] == 'trap':