aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/wasm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wasm.sh')
-rw-r--r--tests/wasm.sh31
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