aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/wasm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wasm.sh')
-rw-r--r--tests/wasm.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/wasm.sh b/tests/wasm.sh
new file mode 100644
index 0000000..d024989
--- /dev/null
+++ b/tests/wasm.sh
@@ -0,0 +1,25 @@
+cat > main.c <<'EOF'
+int add(int a, int b) {
+ return a + b;
+}
+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.add(3, 5));
+EOF
+node main.mjs > output
+
+cat > expected <<'EOF'
+8
+EOF
+
+diff -u expected output