Keep checked execution groups and public catalog preparation cooperative
This commit is contained in:
+12
-10
@@ -249,13 +249,13 @@ test("checked component-only artifacts install without a service and reject miss
|
||||
assert.ok(installation.routes[installation.components[0]!.url]);
|
||||
assert.equal(JSON.stringify(installation.components).includes(root), false);
|
||||
assert.equal(JSON.stringify(installation.components).includes("slot:"), false);
|
||||
const catalog = clientContractCatalog(plan, installation, [pkg.revision]);
|
||||
const catalog = await clientContractCatalog(plan, installation, [pkg.revision]);
|
||||
assert.equal(catalog.presentations[0]!.component, "component:card");
|
||||
assert.equal(catalog.components[0]!.subject, "interface:Data@1");
|
||||
assert.equal(JSON.stringify(catalog).includes(root), false);
|
||||
assert.equal(JSON.stringify(catalog).includes("bindingSchema"), false);
|
||||
assert.throws(() => clientContractCatalog(plan, installation, ["absent"]), /UNINSTALLED_PACKAGE/);
|
||||
assert.throws(
|
||||
await assert.rejects(() => clientContractCatalog(plan, installation, ["absent"]), /UNINSTALLED_PACKAGE/);
|
||||
await assert.rejects(
|
||||
() => clientContractCatalog(plan, { ...installation, plan: "bad" }, [pkg.revision]),
|
||||
/CATALOG_PLAN_MISMATCH/,
|
||||
);
|
||||
@@ -268,14 +268,16 @@ test("checked component-only artifacts install without a service and reject miss
|
||||
compileKernelProgram(plan) as InspectionKernel,
|
||||
);
|
||||
try {
|
||||
assert.throws(() => prepared.select(["absent"]), /UNINSTALLED_PACKAGE/);
|
||||
await assert.rejects(() => prepared.select(["absent"]), /UNINSTALLED_PACKAGE/);
|
||||
assert.equal(scope.bytes, 0, "Unknown requests do not allocate compiler metadata");
|
||||
assert.deepEqual(prepared.select([pkg.revision]), catalog);
|
||||
const [first, coalesced] = await Promise.all([prepared.select([pkg.revision]), prepared.select([pkg.revision])]);
|
||||
assert.deepEqual(first, catalog);
|
||||
assert.equal(first.operations, coalesced.operations, "Concurrent preparation shares one metadata reservation");
|
||||
const retained = scope.bytes;
|
||||
assert.ok(retained > 0);
|
||||
assert.ok(retained < 32 * 1024 * 1024, "Small catalogs retain a proportional metadata charge");
|
||||
const full = prepared.select([pkg.revision]);
|
||||
const empty = prepared.select([]);
|
||||
const full = await prepared.select([pkg.revision]);
|
||||
const empty = await prepared.select([]);
|
||||
assert.deepEqual(empty.components, []);
|
||||
assert.deepEqual(empty.presentations, []);
|
||||
assert.deepEqual(empty.moduleBindings, []);
|
||||
@@ -290,14 +292,14 @@ test("checked component-only artifacts install without a service and reject miss
|
||||
},
|
||||
});
|
||||
try {
|
||||
assert.deepEqual(prepared.select([pkg.revision]), full);
|
||||
assert.deepEqual(await prepared.select([pkg.revision]), full);
|
||||
assert.equal(scope.bytes, retained, "Package projections do not accumulate cache entries");
|
||||
} finally {
|
||||
Object.defineProperty(plan, "definition", { configurable: true, value: definition });
|
||||
}
|
||||
prepared.close();
|
||||
assert.equal(scope.bytes, 0);
|
||||
assert.throws(() => prepared.select([pkg.revision]), /CANDIDATE_METADATA_CLOSED/);
|
||||
await assert.rejects(() => prepared.select([pkg.revision]), /CANDIDATE_METADATA_CLOSED/);
|
||||
} finally {
|
||||
prepared.close();
|
||||
scope.release();
|
||||
@@ -305,7 +307,7 @@ test("checked component-only artifacts install without a service and reject miss
|
||||
const tight = new CandidateMetadataBudget({ bytes: 1000, ownerBytes: 1000, candidates: 1 });
|
||||
const tightScope = tight.acquire("catalog-test");
|
||||
const refused = createClientContractCatalog(plan, installation, tightScope);
|
||||
assert.throws(() => refused.select([pkg.revision]), /CANDIDATE_METADATA_LIMIT/);
|
||||
await assert.rejects(() => refused.select([pkg.revision]), /CANDIDATE_METADATA_LIMIT/);
|
||||
assert.equal(tightScope.bytes, 0);
|
||||
refused.close();
|
||||
tightScope.release();
|
||||
|
||||
Reference in New Issue
Block a user