From 5552888bc2aff343ffd3f3b89220f253a818d45f Mon Sep 17 00:00:00 2001 From: Volodymyr Shymanskyy Date: Thu, 11 Mar 2021 21:25:01 +0200 Subject: [PATCH] Update simple wasi test --- test/run-wasi-test.py | 18 ++++----- test/wasi/README.md | 11 +---- test/wasi/test-opt.wasm | Bin 35484 -> 28099 bytes test/wasi/test.wasm | Bin 41417 -> 50916 bytes test/wasi/test_native_vs_raw.c | 65 ------------------------------ test/wasi/test_native_vs_raw.wasm | Bin 26674 -> 0 bytes 6 files changed, 9 insertions(+), 85 deletions(-) delete mode 100644 test/wasi/test_native_vs_raw.c delete mode 100755 test/wasi/test_native_vs_raw.wasm diff --git a/test/run-wasi-test.py b/test/run-wasi-test.py index 25dfa95..ef16f7a 100755 --- a/test/run-wasi-test.py +++ b/test/run-wasi-test.py @@ -4,8 +4,8 @@ # Usage: # ./run-wasi-test.py # ./run-wasi-test.py --exec ../custom_build/wasm3 --timeout 120 -# ./run-wasi-test.py --exec "wasmer run --dir=." -# +# ./run-wasi-test.py --exec "wasmer run --mapdir=/:." --separate-args +# ./run-wasi-test.py --exec "wasmer run --mapdir=/:. wasm3.wasm --" --fast import argparse import sys @@ -24,6 +24,7 @@ from pprint import pprint parser = argparse.ArgumentParser() parser.add_argument("--exec", metavar="", default="../build/wasm3") +parser.add_argument("--separate-args", action='store_true') # use "--" separator for wasmer, wasmtime parser.add_argument("--timeout", type=int, default=120) parser.add_argument("--fast", action='store_true') @@ -82,7 +83,7 @@ commands_full = [ "name": "Brotli", "stdin": "./benchmark/brotli/alice29.txt", "wasm": "./benchmark/brotli/brotli.wasm", - "args": ["-c"], + "args": ["-c", "-f"], "expect_sha1": "8eacda4b80fc816cad185330caa7556e19643dff" }, { "name": "CoreMark", @@ -134,7 +135,7 @@ commands_fast = [ "name": "Brotli", "stdin": "./benchmark/brotli/alice29_small.txt", "wasm": "./benchmark/brotli/brotli.wasm", - "args": ["-c"], + "args": ["-c", "-f"], "expect_sha1": "0e8af02a7207c0c617d7d38eed92853c4a619987" } ] @@ -143,11 +144,6 @@ def fail(msg): print(f"{ansi.FAIL}FAIL:{ansi.ENDC} {msg}") stats.failed += 1 - -args_sep = None -if "wasmer" in args.exec or "wasmtime" in args.exec: - args_sep = "--" - commands = commands_fast if args.fast else commands_full for cmd in commands: @@ -157,8 +153,8 @@ for cmd in commands: command = args.exec.split(' ') command.append(cmd['wasm']) if "args" in cmd: - if args_sep: - command.append(args_sep) + if args.separate_args: + command.append("--") command.extend(cmd['args']) command = list(map(str, command)) diff --git a/test/wasi/README.md b/test/wasi/README.md index fac188c..56ae6c1 100644 --- a/test/wasi/README.md +++ b/test/wasi/README.md @@ -1,15 +1,8 @@ ## Compile ```sh -wasicc -O3 test.c -o test.wasm -wasm-opt -O3 test.wasm -o test-opt.wasm -wasm-strip test-opt.wasm -``` - -```sh -wasicc -O3 test_native_vs_raw.c -o test_native_vs_raw.wasm -Wl,--allow-undefined-file=wasm_api.syms -wasm-opt -O3 test_native_vs_raw.wasm -o test_native_vs_raw.wasm -wasm-strip test_native_vs_raw.wasm +wasicc -g -O0 -Wl,--stack-first test.c -o test.wasm +wasm-opt --strip-debug -Os test.wasm -o test-opt.wasm ``` ## Run diff --git a/test/wasi/test-opt.wasm b/test/wasi/test-opt.wasm index 96a7255b453f70b95d1a9b71ebabcb77635f648e..fc6ea7c1db9a2059ae8a98d3bbd6e0d2421cbef6 100644 GIT binary patch literal 28099 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 Uy5;bpBZqIfb@I^ZgNOG2Uy*v@0ssI2 literal 35484 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 literal 41417 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 diff --git a/test/wasi/test_native_vs_raw.c b/test/wasi/test_native_vs_raw.c deleted file mode 100644 index 8cd00a5..0000000 --- a/test/wasi/test_native_vs_raw.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -#include -#include - -#include "wasm_api.h" - -/* - * Result: "Raw" calls are ~2x faster than native arg "pushers". - * - * WARNING: this benchmark no longer works. - * Native calls were removed along with wasm3_native_sum. - * It may be useful in future when we implement libffi calls, etc. - */ - -static inline -double get_time() { - struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); - return ts.tv_sec * 1000.0 + ts.tv_nsec / 1000000.0; -} - -int main(int argc, char **argv) -{ - const unsigned cycles = (argc > 1) ? atol(argv[1]) : 10000000; - double beg, end; - - printf("Validation...\n"); - fflush(stdout); - - // validate - assert(wasm3_raw_sum(10, 20, 30, 40) == 10 + 20 + 30 + 40); - assert(wasm3_native_sum(10, 20, 30, 40) == 10 + 20 + 30 + 40); - - printf("Warm-up...\n"); - fflush(stdout); - - beg = get_time(); - for (unsigned i = 0; i < cycles/10; i++) { - wasm3_raw_sum(10, 20, 30, 40); - wasm3_native_sum(10, 20, 30, 40); - } - - printf("Running test...\n"); - fflush(stdout); - - // actual test - beg = get_time(); - for (unsigned i = 0; i < cycles; i++) { - wasm3_raw_sum(1, 2, 3, 4); - } - end = get_time(); - const double time_raw = (end - beg); - - beg = get_time(); - for (unsigned i = 0; i < cycles; i++) { - wasm3_native_sum(1, 2, 3, 4); - } - end = get_time(); - const double time_native = (end - beg); - - printf("Native: %.3f ms\n", time_native); - printf("Raw: %.3f ms\n", time_raw); - - printf("Native/Raw: %.3f\n", time_native/time_raw); - return 0; -} diff --git a/test/wasi/test_native_vs_raw.wasm b/test/wasi/test_native_vs_raw.wasm deleted file mode 100755 index 5c0f32580c756d415e0e9ddddb9826479b1f2b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26674 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 d6`rZ#2HpP3ZM-BHD>