From 261e0701f5e81fb96bb79aa4e65d7b9c86cc9c5b Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Mon, 13 Mar 2023 21:21:56 -0400 Subject: [PATCH] test(swingset-liveslots): Expand the signature of setupTestLiveslots Ref #6523 --- .../test/liveslots-helpers.js | 38 +++++++++++---- .../test/storeGC/test-lifecycle.js | 16 +++---- .../test/storeGC/test-refcount-management.js | 14 +++--- .../test/storeGC/test-scalar-store-kind.js | 2 +- .../test/storeGC/test-weak-key.js | 6 +-- .../swingset-liveslots/test/test-baggage.js | 2 +- .../test/test-initial-vrefs.js | 6 ++- .../virtual-objects/test-virtualObjectGC.js | 48 +++++++++---------- .../tools/vo-test-harness.js | 3 +- 9 files changed, 77 insertions(+), 58 deletions(-) diff --git a/packages/swingset-liveslots/test/liveslots-helpers.js b/packages/swingset-liveslots/test/liveslots-helpers.js index 40904d9c83a..626f10d4200 100644 --- a/packages/swingset-liveslots/test/liveslots-helpers.js +++ b/packages/swingset-liveslots/test/liveslots-helpers.js @@ -15,11 +15,13 @@ import { import { kser } from './kmarshal.js'; /** - * @param {boolean} [skipLogging = false] + * @param {object} [options] + * @param {boolean} [options.skipLogging = false] + * @param {Map} [options.kvStore = new Map()] */ -export function buildSyscall(skipLogging) { +export function buildSyscall(options = {}) { + const { skipLogging = false, kvStore: fakestore = new Map() } = options; const log = []; - const fakestore = new Map(); let sortedKeys; let priorKeyReturned; let priorKeyIndex; @@ -152,23 +154,38 @@ export async function makeDispatch( return { dispatch, testHooks }; } -function makeRPMaker() { - let idx = 0; +function makeRPMaker(nextNumber = 1) { + let idx = nextNumber - 1; return () => { idx += 1; return `p-${idx}`; }; } +/** + * @param {import('ava').ExecutionContext} t + * @param {Function} buildRootObject + * @param {string} vatName + * @param {object} [options] + * @param {boolean} [options.forceGC] + * @param {Map} [options.kvStore = new Map()] + * @param {number} [options.nextPromiseImportNumber] + * @param {boolean} [options.skipLogging = false] + */ export async function setupTestLiveslots( t, buildRootObject, vatName, - forceGC, - skipLogging, + options = {}, ) { - const { log, syscall, fakestore } = buildSyscall(skipLogging); - const nextRP = makeRPMaker(); + const { + forceGC, + kvStore = new Map(), + nextPromiseImportNumber, + skipLogging = false, + } = options; + const { log, syscall, fakestore } = buildSyscall({ skipLogging, kvStore }); + const nextRP = makeRPMaker(nextPromiseImportNumber); const { dispatch, testHooks } = await makeDispatch( syscall, buildRootObject, @@ -215,7 +232,7 @@ export async function setupTestLiveslots( for (const [vpid, rejected, value] of l.resolutions) { if (vpid === rp) { if (rejected) { - throw Error(`vpid ${vpid} rejected with ${value}`); + throw Error(`vpid ${rp} rejected with ${value}`); } else { return value; // resolved successfully } @@ -249,6 +266,7 @@ export async function setupTestLiveslots( return { v, + dispatch, dispatchMessage, dispatchMessageSuccessfully, dispatchDropExports, diff --git a/packages/swingset-liveslots/test/storeGC/test-lifecycle.js b/packages/swingset-liveslots/test/storeGC/test-lifecycle.js index e7de7cef5da..72691cbf75d 100644 --- a/packages/swingset-liveslots/test/storeGC/test-lifecycle.js +++ b/packages/swingset-liveslots/test/storeGC/test-lifecycle.js @@ -71,7 +71,7 @@ test.serial('store lifecycle 1', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); // lerv -> Lerv Create store @@ -100,7 +100,7 @@ test.serial('store lifecycle 2', async t => { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -176,7 +176,7 @@ test.serial('store lifecycle 3', async t => { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -213,7 +213,7 @@ test.serial('store lifecycle 3', async t => { // test 4: lerv -> Lerv -> LERv -> LeRv -> lerv test.serial('store lifecycle 4', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -245,7 +245,7 @@ test.serial('store lifecycle 5', async t => { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -279,7 +279,7 @@ test.serial('store lifecycle 5', async t => { // test 6: lerv -> Lerv -> LERv -> LeRv -> LeRV -> LeRv -> LeRV -> leRV -> lerv test.serial('store lifecycle 6', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -324,7 +324,7 @@ test.serial('store lifecycle 6', async t => { // test 7: lerv -> Lerv -> LERv -> lERv -> LERv -> lERv -> lerv test.serial('store lifecycle 7', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); @@ -363,7 +363,7 @@ test.serial('store lifecycle 7', async t => { // test 8: lerv -> Lerv -> LERv -> LERV -> LERv -> LERV -> lERV -> lERv -> lerv test.serial('store lifecycle 8', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); // lerv -> Lerv Create store await dispatchMessageSuccessfully('makeAndHold'); diff --git a/packages/swingset-liveslots/test/storeGC/test-refcount-management.js b/packages/swingset-liveslots/test/storeGC/test-refcount-management.js index 6bf4950ac8b..c9a3772aef6 100644 --- a/packages/swingset-liveslots/test/storeGC/test-refcount-management.js +++ b/packages/swingset-liveslots/test/storeGC/test-refcount-management.js @@ -28,7 +28,7 @@ test.serial('store refcount management 1', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -100,7 +100,7 @@ test.serial('store refcount management 2', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -136,7 +136,7 @@ test.serial('store refcount management 3', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -176,7 +176,7 @@ test.serial('presence refcount management 1', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -224,7 +224,7 @@ test.serial('presence refcount management 2', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -280,7 +280,7 @@ test.serial('remotable refcount management 1', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -316,7 +316,7 @@ test.serial('remotable refcount management 2', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; diff --git a/packages/swingset-liveslots/test/storeGC/test-scalar-store-kind.js b/packages/swingset-liveslots/test/storeGC/test-scalar-store-kind.js index a34025913e3..e6b427e15db 100644 --- a/packages/swingset-liveslots/test/storeGC/test-scalar-store-kind.js +++ b/packages/swingset-liveslots/test/storeGC/test-scalar-store-kind.js @@ -18,7 +18,7 @@ test.serial('assert known scalarMapStore ID', async t => { // registered. Check it explicity here. If this test fails, consider // updating `mapRef()` to use the new value. - const { testHooks } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { testHooks } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const id = testHooks.obtainStoreKindID('scalarMapStore'); t.is(id, 2); t.is(mapRef('INDEX'), 'o+v2/INDEX'); diff --git a/packages/swingset-liveslots/test/storeGC/test-weak-key.js b/packages/swingset-liveslots/test/storeGC/test-weak-key.js index a816a897954..c53dcd22785 100644 --- a/packages/swingset-liveslots/test/storeGC/test-weak-key.js +++ b/packages/swingset-liveslots/test/storeGC/test-weak-key.js @@ -23,7 +23,7 @@ test.serial('verify store weak key GC', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -108,7 +108,7 @@ test.serial('verify weakly held value GC', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; @@ -147,7 +147,7 @@ test.serial('verify weakly held value GC', async t => { // prettier-ignore test.serial('verify presence weak key GC', async t => { const { v, dispatchMessage, dispatchRetireImports, testHooks } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; const presenceRef = 'o-5'; // Presence5 diff --git a/packages/swingset-liveslots/test/test-baggage.js b/packages/swingset-liveslots/test/test-baggage.js index 61f44028fc7..2f3647e0912 100644 --- a/packages/swingset-liveslots/test/test-baggage.js +++ b/packages/swingset-liveslots/test/test-baggage.js @@ -22,7 +22,7 @@ test.serial('exercise baggage', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const { fakestore } = v; diff --git a/packages/swingset-liveslots/test/test-initial-vrefs.js b/packages/swingset-liveslots/test/test-initial-vrefs.js index 2b5371f4c7a..04ce20281a6 100644 --- a/packages/swingset-liveslots/test/test-initial-vrefs.js +++ b/packages/swingset-liveslots/test/test-initial-vrefs.js @@ -51,7 +51,9 @@ function buildRootObject(vatPowers, vatParameters, baggage) { } test('initial vatstore contents', async t => { - const { v } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v } = await setupTestLiveslots(t, buildRootObject, 'bob', { + forceGC: true, + }); const { fakestore } = v; const get = key => fakestore.get(key); @@ -100,7 +102,7 @@ test('vrefs', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); // const { fakestore, dumpFakestore } = v; const { fakestore } = v; diff --git a/packages/swingset-liveslots/test/virtual-objects/test-virtualObjectGC.js b/packages/swingset-liveslots/test/virtual-objects/test-virtualObjectGC.js index 49435cdbd6a..e07ef98bc8d 100644 --- a/packages/swingset-liveslots/test/virtual-objects/test-virtualObjectGC.js +++ b/packages/swingset-liveslots/test/virtual-objects/test-virtualObjectGC.js @@ -417,7 +417,7 @@ async function voLifeCycleTest1(t, isf) { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const vref = facetRef(isf, thingVref(isf, 2), '1'); @@ -452,7 +452,7 @@ async function voLifeCycleTest2(t, isf) { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -533,7 +533,7 @@ async function voLifeCycleTest3(t, isf) { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -577,7 +577,7 @@ test.serial('VO lifecycle 3 faceted', async t => { // test 4: lerv -> Lerv -> LERv -> LeRv -> lerv async function voLifeCycleTest4(t, isf) { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -614,7 +614,7 @@ async function voLifeCycleTest5(t, isf) { dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports, - } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -650,7 +650,7 @@ test.serial('VO lifecycle 5 faceted', async t => { // test 6: lerv -> Lerv -> LERv -> LeRv -> LeRV -> LeRv -> LeRV -> leRV -> lerv async function voLifeCycleTest6(t, isf) { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -699,7 +699,7 @@ test.serial('VO lifecycle 6 faceted', async t => { // test 7: lerv -> Lerv -> LERv -> lERv -> LERv -> lERv -> lerv async function voLifeCycleTest7(t, isf) { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -740,7 +740,7 @@ test.serial('VO lifecycle 7 faceted', async t => { // test 8: lerv -> Lerv -> LERv -> LERV -> LERv -> LERV -> lERV -> lERv -> lerv async function voLifeCycleTest8(t, isf) { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -792,7 +792,7 @@ test.serial('VO multifacet export 1', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const vref = facetRef(true, thingVref(true, 2), '1'); @@ -810,7 +810,7 @@ test.serial('VO multifacet export 1', async t => { // multifacet export test 2a: export A, drop A, retire A test.serial('VO multifacet export 2a', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(true, thingVref(true, 2), '0'); const thingA = kslot(vref, 'thing facetA'); @@ -838,7 +838,7 @@ test.serial('VO multifacet export 2a', async t => { // multifacet export test 2b: export B, drop B, retire B test.serial('VO multifacet export 2b', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(true, thingVref(true, 2), '1'); const thingB = kslot(vref, 'thing facetB'); @@ -865,7 +865,7 @@ test.serial('VO multifacet export 2b', async t => { // multifacet export test 3abba: export A, export B, drop B, drop A, retire test.serial('VO multifacet export 3abba', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vrefA = facetRef(true, thingVref(true, 2), '0'); const thingA = kslot(vrefA, 'thing facetA'); const vrefB = facetRef(true, thingVref(true, 2), '1'); @@ -903,7 +903,7 @@ test.serial('VO multifacet export 3abba', async t => { // multifacet export test 3abab: export A, export B, drop A, drop B, retire test.serial('VO multifacet export 3abab', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vrefA = facetRef(true, thingVref(true, 2), '0'); const thingA = kslot(vrefA, 'thing facetA'); const vrefB = facetRef(true, thingVref(true, 2), '1'); @@ -943,7 +943,7 @@ test.serial('VO multifacet markers only', async t => { t, buildRootObject, 'bob', - true, + { forceGC: true }, ); const vrefA = facetRef(true, `${markerBaseRef}/1`, '0'); const { baseRef } = parseVatSlot(vrefA); @@ -961,7 +961,7 @@ test.serial('VO multifacet markers only', async t => { // prettier-ignore async function voRefcountManagementTest1(t, isf) { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const { baseRef } = parseVatSlot(vref); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -1002,7 +1002,7 @@ test.serial('VO refcount management 1 faceted', async t => { // prettier-ignore async function voRefcountManagementTest2(t, isf) { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const { baseRef } = parseVatSlot(vref); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -1043,7 +1043,7 @@ test.serial('VO refcount management 2 faceted', async t => { // prettier-ignore async function voRefcountManagementTest3(t, isf) { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const { baseRef } = parseVatSlot(vref); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); @@ -1093,7 +1093,7 @@ test.serial('VO refcount management 3 faceted', async t => { // prettier-ignore test.serial('presence refcount management 1', async t => { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; const vref = 'o-5'; @@ -1132,7 +1132,7 @@ test.serial('presence refcount management 1', async t => { // prettier-ignore test.serial('presence refcount management 2', async t => { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; const vref = 'o-5'; @@ -1170,7 +1170,7 @@ test.serial('presence refcount management 2', async t => { // prettier-ignore test.serial('remotable refcount management 1', async t => { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; // holder Kind is the next-to-last created kind, which gets idCounters.exportID-2 @@ -1213,7 +1213,7 @@ test.serial('remotable refcount management 1', async t => { // prettier-ignore test.serial('remotable refcount management 2', async t => { - const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; const holderKindID = JSON.parse(fakestore.get(`idCounters`)).exportID - 2; @@ -1234,7 +1234,7 @@ test.serial('remotable refcount management 2', async t => { // prettier-ignore async function voWeakKeyGCTest(t, isf) { - const { v, dispatchMessageSuccessfully, testHooks } = await setupTestLiveslots(t, buildRootObject, 'bob', true); + const { v, dispatchMessageSuccessfully, testHooks } = await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = facetRef(isf, thingVref(isf, 2), '1'); const thing = kslot(vref, isf ? 'thing facetB' : 'thing'); const { baseRef } = parseVatSlot(vref); @@ -1265,7 +1265,7 @@ test.serial('verify VO weak key GC faceted', async t => { // prettier-ignore test.serial('verify presence weak key GC', async t => { const { v, dispatchMessageSuccessfully, dispatchRetireImports, testHooks } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const vref = 'o-5'; const presence = kslot(vref, 'thing'); // hold a Presence weakly by a VOAwareWeak(Map/Set), also by RAM @@ -1316,7 +1316,7 @@ test.serial('verify presence weak key GC', async t => { // prettier-ignore test.serial('VO holding non-VO', async t => { const { v, dispatchMessageSuccessfully, dispatchDropExports, dispatchRetireExports } = - await setupTestLiveslots(t, buildRootObject, 'bob', true); + await setupTestLiveslots(t, buildRootObject, 'bob', { forceGC: true }); const { fakestore } = v; // lerv -> Lerv Create non-VO diff --git a/packages/swingset-liveslots/tools/vo-test-harness.js b/packages/swingset-liveslots/tools/vo-test-harness.js index cb13aee62e4..4885246d7d9 100644 --- a/packages/swingset-liveslots/tools/vo-test-harness.js +++ b/packages/swingset-liveslots/tools/vo-test-harness.js @@ -131,8 +131,7 @@ export async function runVOTest(t, prepare, makeTestObject, testTestObject) { t, buildRootObject, 'bob', - true, - true, + { forceGC: true, skipLogging: true }, ); await dispatchMessage('makeAndHold');