Skip to content

Commit

Permalink
Refactor createSummarizer usages to use ITestContainerConfig (#15407)
Browse files Browse the repository at this point in the history
## Description

Follow-up from #14340 where I introduced
`createSummarizerWithTestConfig`, which should be the default usage
pattern. This removes the original `createSummarizer` and replaces it,
refactoring tests as necessary to use the new pattern.
  • Loading branch information
justus-camp authored Jul 24, 2023
1 parent 32b6729 commit afd8152
Show file tree
Hide file tree
Showing 23 changed files with 180 additions and 277 deletions.
9 changes: 1 addition & 8 deletions api-report/test-utils.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import { IFluidLoadable } from '@fluidframework/core-interfaces';
import { IFluidModule } from '@fluidframework/container-definitions';
import { IFluidModuleWithDetails } from '@fluidframework/container-definitions';
import { IFluidRouter } from '@fluidframework/core-interfaces';
import { IGCRuntimeOptions } from '@fluidframework/container-runtime';
import { IHostLoader } from '@fluidframework/container-definitions';
import { ILoaderOptions } from '@fluidframework/container-definitions';
import { ILoaderProps } from '@fluidframework/container-loader';
Expand Down Expand Up @@ -68,7 +67,7 @@ export const createDocumentId: () => string;
export function createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, documentServiceFactory: IDocumentServiceFactory, urlResolver: IUrlResolver, logger?: ITelemetryBaseLogger, options?: ILoaderOptions): IHostLoader;

// @public
export function createSummarizer(provider: ITestObjectProvider, container: IContainer, summaryVersion?: string, gcOptions?: IGCRuntimeOptions, configProvider?: IConfigProviderBase, logger?: ITelemetryBaseLogger): Promise<{
export function createSummarizer(provider: ITestObjectProvider, container: IContainer, config?: ITestContainerConfig, summaryVersion?: string, logger?: ITelemetryBaseLogger): Promise<{
container: IContainer;
summarizer: ISummarizer;
}>;
Expand All @@ -79,12 +78,6 @@ export function createSummarizerFromFactory(provider: ITestObjectProvider, conta
summarizer: ISummarizer;
}>;

// @public
export function createSummarizerWithTestConfig(provider: ITestObjectProvider, container: IContainer, config: ITestContainerConfig, summaryVersion?: string, logger?: ITelemetryBaseLogger): Promise<{
container: IContainer;
summarizer: ISummarizer;
}>;

// @public
export const createTestContainerRuntimeFactory: (containerRuntimeCtor: typeof ContainerRuntime) => {
new (type: string, dataStoreFactory: IFluidDataStoreFactory, runtimeOptions?: IContainerRuntimeOptions, requestHandlers?: RuntimeRequestHandler[]): {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,8 @@ export class DocumentMap implements IDocumentLoaderAndSummarizer {
const { container: containerClient, summarizer: summarizerClient } = await createSummarizer(
this.props.provider,
this._mainContainer,
summaryVersion,
undefined,
undefined,
summaryVersion,
this.logger,
);
const newSummaryVersion = await this.waitForSummary(summarizerClient);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ describeNoCompat("GC Data Store Duplicates", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult.summaryVersion,
);
summaryResult = await waitForSummary(summarizer2);
Expand Down Expand Up @@ -89,6 +90,7 @@ describeNoCompat("GC Data Store Duplicates", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult.summaryVersion,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,10 @@ describeNoCompat("GC inactive nodes tests", (getTestObjectProvider) => {
const { summarizer: summarizer1 } = await createSummarizer(
provider,
mainContainer,
undefined,
{
inactiveTimeoutMs,
runtimeOptions: {
gcOptions: { inactiveTimeoutMs },
},
},
);

Expand Down Expand Up @@ -378,9 +379,12 @@ describeNoCompat("GC inactive nodes tests", (getTestObjectProvider) => {
const { summarizer: summarizer1 } = await createSummarizer(
provider,
mainContainer,
undefined,
{
inactiveTimeoutMs,
runtimeOptions: {
gcOptions: {
inactiveTimeoutMs,
},
},
},
);

Expand All @@ -399,8 +403,14 @@ describeNoCompat("GC inactive nodes tests", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
{
runtimeOptions: {
gcOptions: {
inactiveTimeoutMs,
},
},
},
summaryVersion1,
{ inactiveTimeoutMs },
);

// Wait for inactive timeout. This will ensure that the unreferenced data store is inactive.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ describeNoCompat("GC incremental summaries", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryVersion,
);

Expand All @@ -150,6 +151,7 @@ describeNoCompat("GC incremental summaries", (getTestObjectProvider) => {
const { summarizer: summarizer3 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryVersion,
);

Expand Down Expand Up @@ -197,6 +199,7 @@ describeNoCompat("GC incremental summaries", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryVersion,
);

Expand All @@ -212,6 +215,7 @@ describeNoCompat("GC incremental summaries", (getTestObjectProvider) => {
const { summarizer: summarizer3 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryVersion,
);

Expand Down Expand Up @@ -239,9 +243,8 @@ describeNoCompat("GC incremental summaries", (getTestObjectProvider) => {
const { summarizer: summarizer1 } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
undefined /* gcOptions */,
undefined /* configProvider */,
undefined /** config */,
undefined /** summaryVersion */,
mockLogger,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ describeNoCompat("GC loading from older summaries", (getTestObjectProvider) => {
const { container: container2, summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult1.summaryVersion,
);

Expand Down Expand Up @@ -223,6 +224,7 @@ describeNoCompat("GC loading from older summaries", (getTestObjectProvider) => {
const { container: container2, summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult1.summaryVersion,
);

Expand Down Expand Up @@ -309,6 +311,7 @@ describeNoCompat("GC loading from older summaries", (getTestObjectProvider) => {
const { container: container2, summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult1.summaryVersion,
);

Expand Down Expand Up @@ -388,6 +391,7 @@ describeNoCompat("GC loading from older summaries", (getTestObjectProvider) => {
const { container: container2, summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult1.summaryVersion,
);

Expand Down Expand Up @@ -462,6 +466,7 @@ describeNoCompat("GC loading from older summaries", (getTestObjectProvider) => {
const { container: container2, summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryResult1.summaryVersion,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,14 +205,11 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {

// Load a new summarizer from the last summary with GC disabled.
summarizer1.close();
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
summaryVersion,
{
disableGC: true,
const { summarizer: summarizer2 } = await createSummarizer(provider, mainContainer, {
runtimeOptions: {
gcOptions: { disableGC: true },
},
);
});

// Validate that GC does not run and the summary is regenerated because GC was disabled.
await summarizeAndValidateGCState(
Expand All @@ -238,12 +235,9 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
await waitForContainerConnection(mainContainer);

// Create a summarizer with GC disabled.
const { summarizer: summarizer1 } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
{ disableGC: true },
);
const { summarizer: summarizer1 } = await createSummarizer(provider, mainContainer, {
runtimeOptions: { gcOptions: { disableGC: true } },
});

// Create and mark a new data store as referenced by storing its handle in a referenced DDS.
const newDataStore = await requestFluidObject<ITestDataObject>(
Expand All @@ -267,6 +261,7 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
const { summarizer: summarizer2 } = await createSummarizer(
provider,
mainContainer,
undefined,
summaryVersion,
);

Expand All @@ -293,10 +288,8 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
const { summarizer: summarizer3 } = await createSummarizer(
provider,
mainContainer,
{ runtimeOptions: { gcOptions: { disableGC: true } } },
summaryVersion,
{
disableGC: true,
},
);
// Validate that GC does not run and the summary is regenerated.
await summarizeAndValidateGCState(
Expand Down Expand Up @@ -340,9 +333,14 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
// Create a summarizer with GC disabled and another one with GC enabled from the above summary where GC was
// enabled.
const { container: containerGCDisabled, summarizer: summarizerGCDisabled } =
await createSummarizer(provider, mainContainer, summaryVersion, { disableGC: true });
await createSummarizer(
provider,
mainContainer,
{ runtimeOptions: { gcOptions: { disableGC: true } } },
summaryVersion,
);
const { container: containerGCEnabled2, summarizer: summarizerGCEnabled2 } =
await createSummarizer(provider, mainContainer, summaryVersion);
await createSummarizer(provider, mainContainer, undefined, summaryVersion);

// Close the previous summarizer such that the summarizer with GC disabled is chosen as the current summarizer.
summarizerGCEnabled.close();
Expand Down Expand Up @@ -381,12 +379,9 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
await waitForContainerConnection(mainContainer);

// Create a summarizer with GC disabled.
const { summarizer } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
{ gcAllowed: false },
);
const { summarizer } = await createSummarizer(provider, mainContainer, {
runtimeOptions: { gcOptions: { gcAllowed: false } },
});

// Create and mark a new data store as referenced by storing its handle in a referenced DDS.
const newDataStore = await requestFluidObject<ITestDataObject>(
Expand All @@ -411,12 +406,9 @@ describeNoCompat("GC state reset in summaries", (getTestObjectProvider) => {
await waitForContainerConnection(mainContainer);

// Get a new summarizer that sets gcAllowed option to true.
const { summarizer } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
{ gcAllowed: true },
);
const { summarizer } = await createSummarizer(provider, mainContainer, {
runtimeOptions: { gcOptions: { gcAllowed: true } },
});

// Create and mark a new data store as referenced by storing its handle in a referenced DDS.
const newDataStore = await requestFluidObject<ITestDataObject>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,10 @@ describeNoCompat("GC attachment blob sweep tests", (getTestObjectProvider) => {
const { summarizer, container: summarizerContainer } = await createSummarizer(
provider,
container,
undefined /* summaryVersion */,
gcOptions,
mockConfigProvider(settings),
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
);

return { dataStore, summarizer, summarizerContainer };
Expand Down Expand Up @@ -389,9 +390,10 @@ describeNoCompat("GC attachment blob sweep tests", (getTestObjectProvider) => {
const { summarizer, container: summarizerContainer } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
gcOptions,
mockConfigProvider(settings),
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
);

// Remove the blob's handle to unreference it.
Expand Down Expand Up @@ -494,9 +496,10 @@ describeNoCompat("GC attachment blob sweep tests", (getTestObjectProvider) => {
const { summarizer, container: summarizerContainer } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
gcOptions,
mockConfigProvider(settings),
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
);

// Summarize so that the above attachment blob is marked unreferenced.
Expand Down Expand Up @@ -592,9 +595,10 @@ describeNoCompat("GC attachment blob sweep tests", (getTestObjectProvider) => {
const { summarizer, container: summarizerContainer } = await createSummarizer(
provider,
mainContainer,
undefined /* summaryVersion */,
gcOptions,
mockConfigProvider(settings),
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
);

// Add the blob handles to reference them.
Expand Down Expand Up @@ -686,9 +690,10 @@ describeNoCompat("GC attachment blob sweep tests", (getTestObjectProvider) => {
const { summarizer, container: summarizerContainer } = await createSummarizer(
provider,
container,
undefined /* summaryVersion */,
gcOptions,
mockConfigProvider(settings),
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
);
await provider.ensureSynchronized();
await summarizeNow(summarizer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,11 @@ describeNoCompat("GC data store sweep tests", (getTestObjectProvider) => {
return createSummarizer(
provider,
container,
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
summaryVersion,
gcOptions,
mockConfigProvider(settings),
);
};
const summarize = async (summarizer: ISummarizer) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,11 @@ describeNoCompat("GC sweep unreference phases", (getTestObjectProvider) => {
return createSummarizer(
provider,
container,
{
runtimeOptions: { gcOptions },
loaderProps: { configProvider: mockConfigProvider(settings) },
},
summaryVersion,
gcOptions,
mockConfigProvider(settings),
);
};

Expand Down
Loading

0 comments on commit afd8152

Please sign in to comment.