diff --git a/packages/SwingSet/test/workers/test-vatwarehouse.js b/packages/SwingSet/test/workers/test-vatwarehouse.js index 5563751a9cc..7e2d5e87429 100644 --- a/packages/SwingSet/test/workers/test-vatwarehouse.js +++ b/packages/SwingSet/test/workers/test-vatwarehouse.js @@ -1,6 +1,7 @@ /* global process, require, __dirname */ // @ts-check import path from 'path'; +import { spawn } from 'child_process'; // eslint-disable-next-line import/order import { test } from '../../tools/prepare-test-env-ava'; @@ -24,14 +25,6 @@ import { makeVatTranslators } from '../../src/kernel/vatTranslator'; * @param { (vatID: string, translators: unknown) => VatSyscallHandler } buildVatSyscallHandler * @param {{ sizeHint?: number }=} policyOptions * - * @typedef { import('../../src/kernel/vatManager/manager-subprocess-xsnap').VatManagerFactory } VatManagerFactory - * @typedef { { - * replayTranscript: () => Promise, - * setVatSyscallHandler: (handler: VatSyscallHandler) => void, - * deliver: (d: Tagged) => Promise, - * shutdown: () => Promise, - * } } VatManager - * * @typedef { ReturnType } SwingStore * @typedef {(syscall: Tagged) => ['error', string] | ['ok', null] | ['ok', Capdata]} VatSyscallHandler * @typedef {{ body: string, slots: unknown[] }} Capdata @@ -114,17 +107,18 @@ export function makeVatWarehouse( const { bundle, options } = detail; const { managerType } = options; + + const translators = makeVatTranslators(vatID, kernelKeeper); + const vatSyscallHandler = buildVatSyscallHandler(vatID, translators); + // console.log('provide: creating from bundle', vatID); const manager = await factories[managerType].createFromBundle( vatID, bundle, options, + vatSyscallHandler, ); - const translators = makeVatTranslators(vatID, kernelKeeper); - - const vatSyscallHandler = buildVatSyscallHandler(vatID, translators); - manager.setVatSyscallHandler(vatSyscallHandler); await manager.replayTranscript(); idToManager.set(vatID, manager); return manager; @@ -166,7 +160,7 @@ export function makeVatWarehouse( await evict(lru); } - /** @type {(vatID: string, d: Tagged) => Promise } */ + /** @type {(vatID: string, d: VatDeliveryObject) => Promise } */ async function deliverToVat(vatID, delivery) { await applyAvailabilityPolicy(vatID); return (await provideVatManager(vatID)).deliver(delivery); @@ -218,13 +212,14 @@ async function theXSFactory( const startXSnap = makeStartXSnap(bundles, { snapstorePath, env: process.env, + spawn, }); /** @type { unknown } */ const TODO = undefined; + const kernelSlog = { write: () => {} }; const xsf = makeXsSubprocessFactory({ allVatPowers: { - transformTildot: src => src, Remotable, getInterfaceOf, exitVat: TODO, @@ -233,13 +228,13 @@ async function theXSFactory( kernelKeeper, startXSnap, testLog: _ => {}, - decref: _ => {}, + kernelSlog, }); return xsf; } -/** @type {(r: string, m: string, ...args: unknown[]) => Tagged} */ +/** @type {(r: string, m: string, ...args: unknown[]) => VatDeliveryMessage} */ const msg = (result, method, ...args) => [ 'message', 'o+0', @@ -302,6 +297,7 @@ test('initialize vat; ensure deliveries maintain state', async t => { virtualObjectCacheSize: 1, enableSetup: false, bundle: undefined, + name: 'target', }); // send delivery to vatmanager @@ -353,6 +349,7 @@ test('deliver to lots of vats', async t => { virtualObjectCacheSize: 1, enableSetup: false, bundle: undefined, + name: 'target', }); });