diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e2d2e7d18..7a6b4c422 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,6 +20,8 @@ jobs: - { os: ubuntu-20.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node } - { os: ubuntu-20.04, toolchain: wasm-5.5.0-RELEASE, wasi-backend: Wasmer } - { os: ubuntu-20.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Wasmer } + - { os: ubuntu-20.04, toolchain: wasm-5.5.0-RELEASE, wasi-backend: MicroWASI } + - { os: ubuntu-20.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: MicroWASI } runs-on: ${{ matrix.entry.os }} steps: diff --git a/IntegrationTests/lib.js b/IntegrationTests/lib.js index ed5c5b493..5ba5df6a3 100644 --- a/IntegrationTests/lib.js +++ b/IntegrationTests/lib.js @@ -2,6 +2,7 @@ const SwiftRuntime = require("javascript-kit-swift").SwiftRuntime; const WasmerWASI = require("@wasmer/wasi").WASI; const WasmFs = require("@wasmer/wasmfs").WasmFs; const NodeWASI = require("wasi").WASI; +const { WASI: MicroWASI, useAll } = require("uwasi"); const promisify = require("util").promisify; const fs = require("fs"); @@ -43,6 +44,21 @@ const WASI = { } } }, + MicroWASI: () => { + const wasi = new MicroWASI({ + args: [], + env: {}, + features: [useAll()], + }) + + return { + wasiImport: wasi.wasiImport, + start(instance) { + wasi.initialize(instance); + instance.exports.main(); + } + } + }, Node: () => { const wasi = new NodeWASI({ args: [], diff --git a/IntegrationTests/package-lock.json b/IntegrationTests/package-lock.json index f2e53f99f..cc6ed8de9 100644 --- a/IntegrationTests/package-lock.json +++ b/IntegrationTests/package-lock.json @@ -7,16 +7,20 @@ "dependencies": { "@wasmer/wasi": "^0.12.0", "@wasmer/wasmfs": "^0.12.0", - "javascript-kit-swift": "file:.." + "javascript-kit-swift": "file:..", + "uwasi": "^1.0.0" } }, "..": { "name": "javascript-kit-swift", - "version": "0.12.0", + "version": "0.14.0", "license": "MIT", "devDependencies": { - "prettier": "2.1.2", - "typescript": "^4.4.2" + "@rollup/plugin-typescript": "^8.3.1", + "prettier": "2.6.1", + "rollup": "^2.70.0", + "tslib": "^2.3.1", + "typescript": "^4.6.3" } }, "../node_modules/prettier": { @@ -214,6 +218,11 @@ "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "node_modules/uwasi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uwasi/-/uwasi-1.0.0.tgz", + "integrity": "sha512-xnjYEegIsUDh7aXnT6s+pNK79adEQs5R+T+fds/fFdCEtoKFkH3ngwbp3jAJjB91VfPgOVUKIH+fNbg6Om8xAw==" + }, "node_modules/wrappy": { "version": "1.0.2", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" @@ -298,8 +307,11 @@ "javascript-kit-swift": { "version": "file:..", "requires": { - "prettier": "2.1.2", - "typescript": "^4.4.2" + "@rollup/plugin-typescript": "^8.3.1", + "prettier": "2.6.1", + "rollup": "^2.70.0", + "tslib": "^2.3.1", + "typescript": "^4.6.3" }, "dependencies": { "prettier": { @@ -387,6 +399,11 @@ "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uwasi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uwasi/-/uwasi-1.0.0.tgz", + "integrity": "sha512-xnjYEegIsUDh7aXnT6s+pNK79adEQs5R+T+fds/fFdCEtoKFkH3ngwbp3jAJjB91VfPgOVUKIH+fNbg6Om8xAw==" + }, "wrappy": { "version": "1.0.2", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" diff --git a/IntegrationTests/package.json b/IntegrationTests/package.json index 678ecec49..3458b7385 100644 --- a/IntegrationTests/package.json +++ b/IntegrationTests/package.json @@ -3,6 +3,7 @@ "dependencies": { "@wasmer/wasi": "^0.12.0", "@wasmer/wasmfs": "^0.12.0", + "uwasi": "^1.0.0", "javascript-kit-swift": "file:.." } }