diff options
Diffstat (limited to 'tests/wasm.sh')
| -rw-r--r-- | tests/wasm.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/wasm.sh b/tests/wasm.sh index d024989..e97c05f 100644 --- a/tests/wasm.sh +++ b/tests/wasm.sh @@ -23,3 +23,34 @@ cat > expected <<'EOF' EOF diff -u expected output + + +cat > main.c <<'EOF' +int fib(int n) { + if (n <= 1) { + return 1; + } else { + return fib(n - 1) + fib(n - 2); + } +} +EOF + +"$ducc" "${CFLAGS:-}" --wasm -o main.wat main.c + +wat2wasm main.wat -o main.wasm + +cat > main.mjs <<'EOF' +import { readFile } from 'fs/promises'; + +const wasmBuffer = await readFile('./main.wasm'); +const { instance } = await WebAssembly.instantiate(wasmBuffer); + +console.log(instance.exports.fib(10)); +EOF +node main.mjs > output + +cat > expected <<'EOF' +89 +EOF + +diff -u expected output |
