%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// Flags: --experimental-wasi-unstable-preview1 'use strict'; const common = require('../common'); const tmpdir = require('../common/tmpdir'); const { strictEqual } = require('assert'); const { closeSync, openSync, readFileSync, writeFileSync } = require('fs'); const { join } = require('path'); const { WASI } = require('wasi'); const modulePath = join(__dirname, 'wasm', 'stdin.wasm'); const buffer = readFileSync(modulePath); const stdinFile = join(tmpdir.path, 'stdin.txt'); const stdoutFile = join(tmpdir.path, 'stdout.txt'); const stderrFile = join(tmpdir.path, 'stderr.txt'); tmpdir.refresh(); // Write 33 x's. The test's buffer only holds 31 x's + a terminator. writeFileSync(stdinFile, 'x'.repeat(33)); const stdin = openSync(stdinFile, 'r'); const stdout = openSync(stdoutFile, 'a'); const stderr = openSync(stderrFile, 'a'); const wasi = new WASI({ stdin, stdout, stderr, returnOnExit: true }); const importObject = { wasi_snapshot_preview1: wasi.wasiImport }; (async () => { const { instance } = await WebAssembly.instantiate(buffer, importObject); strictEqual(wasi.start(instance), 0); closeSync(stdin); closeSync(stdout); closeSync(stderr); strictEqual(readFileSync(stdoutFile, 'utf8').trim(), 'x'.repeat(31)); strictEqual(readFileSync(stderrFile, 'utf8').trim(), ''); })().then(common.mustCall());