#!/bin/bash # QuickJS Wasmer Test Script # Tests the QuickJS WASM module using Wasmer runtime set -e echo "๐Ÿงช Testing QuickJS implementation with Wasmer" echo "=============================================" # Test data TEST_INPUT='{"users":[{"name":"Alice","age":30},{"name":"Bob","age":25}]}' WASM_FILE="target/wasm32-wasip1/release/quickjs_transform.wasm" echo "๐Ÿ“‹ Test Input: $TEST_INPUT" echo "๐Ÿ“ WASM File: $WASM_FILE" # Check if WASM file exists if [ ! -f "$WASM_FILE" ]; then echo "โŒ WASM file not found: $WASM_FILE" echo " Run: cargo build --target wasm32-wasip1 --release" exit 1 fi echo "๐Ÿ“Š File Size: $(du -h "$WASM_FILE" | cut -f1) ($(du -h "$WASM_FILE" | cut -f1 | numfmt --from=iec --to=si)B)" echo "๐Ÿ“ฆ Gzipped: $(gzip -c "$WASM_FILE" | wc -c | numfmt --to=iec)B" # Source Wasmer environment if available if [ -f "/home/trist/.wasmer/wasmer.sh" ]; then source /home/trist/.wasmer/wasmer.sh fi # Check if Wasmer is installed if ! command -v wasmer >/dev/null 2>&1; then echo "โŒ Wasmer not installed" echo " Install with: curl https://get.wasmer.io -sSfL | sh" echo " Then run: source ~/.bashrc or source /home/trist/.wasmer/wasmer.sh" exit 1 fi echo "๐Ÿš€ Wasmer version: $(wasmer --version)" echo "" # Test with Wasmer echo "๐Ÿ”ง Testing QuickJS with Wasmer..." echo " Command: echo '$TEST_INPUT' | wasmer run $WASM_FILE" echo "" if echo "$TEST_INPUT" | wasmer run "$WASM_FILE"; then echo "" echo "โœ… QuickJS + Wasmer: SUCCESS!" echo "" echo "๐ŸŽฏ Integration Notes:" echo " โ€ข QuickJS uses WASI target (wasm32-wasip1)" echo " โ€ข Compatible with Wasmer runtime out of the box" echo " โ€ข Full JavaScript engine (286KB gzipped)" echo " โ€ข Excellent for Wasmer SDK integration" else echo "" echo "โŒ QuickJS + Wasmer: FAILED" echo "" echo "๐Ÿ” Troubleshooting:" echo " โ€ข Ensure WASM file is built with: cargo build --target wasm32-wasip1 --release" echo " โ€ข Check Wasmer installation: wasmer --version" echo " โ€ข Try with verbose output: wasmer run $WASM_FILE --verbose" fi