import { VSBuffer, VSBufferReadableStream, VSBufferWriteableStream } from "@codingame/monaco-vscode-api/vscode/vs/base/common/buffer"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service"; import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service"; import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service"; import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service"; import { StoredValue } from "./storedValue.js"; import { HydratedTestResult, ITestResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/testing/common/testResult"; import { ITestResultStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/testing/common/testResultStorage.service"; import { ISerializedTestResults } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/testing/common/testTypes"; export declare const RETAIN_MAX_RESULTS = 128; export declare abstract class BaseTestResultStorage extends Disposable implements ITestResultStorage { private readonly uriIdentityService; private readonly logService; readonly _serviceBrand: undefined; protected readonly stored: StoredValue>; constructor(uriIdentityService: IUriIdentityService, storageService: IStorageService, logService: ILogService); /** * @override */ read(): Promise; /** * @override */ getResultOutputWriter(resultId: string): import("@codingame/monaco-vscode-api/vscode/vs/base/common/stream").WriteableStream; /** * @override */ persist(results: ReadonlyArray): Promise; /** * Reads serialized results for the test. Is allowed to throw. */ protected abstract readForResultId(id: string): Promise; /** * Reads output as a stream for the test. */ protected abstract readOutputForResultId(id: string): Promise; /** * Reads an output range for the test. */ protected abstract readOutputRangeForResultId(id: string, offset: number, length: number): Promise; /** * Deletes serialized results for the test. */ protected abstract deleteForResultId(id: string): Promise; /** * Stores test results by ID. */ protected abstract storeForResultId(id: string, data: ISerializedTestResults): Promise; /** * Reads serialized results for the test. Is allowed to throw. */ protected abstract storeOutputForResultId(id: string, input: VSBufferWriteableStream): Promise; } export declare class InMemoryResultStorage extends BaseTestResultStorage { readonly cache: Map; protected readForResultId(id: string): Promise; protected storeForResultId(id: string, contents: ISerializedTestResults): Promise; protected deleteForResultId(id: string): Promise; protected readOutputForResultId(id: string): Promise; protected storeOutputForResultId(id: string, input: VSBufferWriteableStream): Promise; protected readOutputRangeForResultId(id: string, offset: number, length: number): Promise; } export declare class TestResultStorage extends BaseTestResultStorage { private readonly fileService; private readonly directory; constructor(uriIdentityService: IUriIdentityService, storageService: IStorageService, logService: ILogService, workspaceContext: IWorkspaceContextService, fileService: IFileService, environmentService: IEnvironmentService); protected readForResultId(id: string): Promise; protected storeForResultId(id: string, contents: ISerializedTestResults): Promise; protected deleteForResultId(id: string): Promise; protected readOutputRangeForResultId(id: string, offset: number, length: number): Promise; protected readOutputForResultId(id: string): Promise; protected storeOutputForResultId(id: string, input: VSBufferWriteableStream): Promise; /** * @inheritdoc */ persist(results: ReadonlyArray): Promise; /** * Cleans up orphaned files. For instance, output can get orphaned if it's * written but the editor is closed before the test run is complete. */ private cleanupDereferenced; private getResultJsonPath; private getResultOutputPath; }