From b2bd5132c41d8c26b0d9e52a9791982ab990ea4c Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Sun, 23 May 2021 23:22:46 +0430 Subject: [PATCH] Meta: Correctly parse numeric literals in wasm tests This was previously parsing them as hex numbers, causing tests to fail. With this fix, 88% of the generated tests are passing :^) --- Meta/generate-libwasm-spec-test.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Meta/generate-libwasm-spec-test.py b/Meta/generate-libwasm-spec-test.py index dad5157131..dc968bf323 100644 --- a/Meta/generate-libwasm-spec-test.py +++ b/Meta/generate-libwasm-spec-test.py @@ -126,7 +126,7 @@ def genarg(spec): return '-NaN' try: - x = float.fromhex(x) + x = float(x) if math.isnan(x): # FIXME: This is going to mess up the different kinds of nan return '-NaN' if math.copysign(1.0, x) < 0 else 'NaN' @@ -135,10 +135,19 @@ def genarg(spec): return str(x) except ValueError: try: - x = int(x, 0) + x = float.fromhex(x) + if math.isnan(x): + # FIXME: This is going to mess up the different kinds of nan + return '-NaN' if math.copysign(1.0, x) < 0 else 'NaN' + if math.isinf(x): + return 'Infinity' if x > 0 else '-Infinity' return str(x) except ValueError: - return x + try: + x = int(x, 0) + return str(x) + except ValueError: + return x x = gen() if x.startswith('nan'): @@ -173,7 +182,7 @@ def genresult(ident, entry): def gentest(entry, main_name): - name = entry["function"]["name"] + name = json.dumps(entry["function"]["name"])[1:-1] if type(name) != str: print("Unsupported test case (call to", name, ")", file=stderr) return '\n '