mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
526a5df157
Summary: - Implements MemoryPool for waiting on memory reservations. - Uses MemoryPool to control memory used for stringifying JSON responses in Client.ts - Limits total size of _missedMessages that may be queued for a particular client. - Upgrades ws library, which may reduce memory usage, and allows pausing the websocket for testing. - The upgrade changed subtle behavior corners, requiring various fixes to code and tests. - dos.ts: - Includes Paul's fixes and updates to the dos.ts script for manual stress-testing. - Logging tweaks, to avoid excessive dumps on uncaughtError, and include timestamps. Test Plan: - Includes a test that measures heap size, and fails without memory management. - Includes a unittest for MemoryPool - Some cleanup and additions to TestServer helper; in particular adds makeUserApi() helper used in multiple tests. - Some fixes related to ws upgrade. Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D3974
23 lines
1.0 KiB
TypeScript
23 lines
1.0 KiB
TypeScript
import {UserProfile} from 'app/common/LoginSessionAPI';
|
|
|
|
export interface ITestingHooks {
|
|
getOwnPort(): Promise<number>;
|
|
getPort(): Promise<number>;
|
|
setLoginSessionProfile(gristSidCookie: string, profile: UserProfile|null, org?: string): Promise<void>;
|
|
setServerVersion(version: string|null): Promise<void>;
|
|
disconnectClients(): Promise<void>;
|
|
commShutdown(): Promise<void>;
|
|
commRestart(): Promise<void>;
|
|
commSetClientPersistence(ttlMs: number): Promise<number>;
|
|
commSetClientJsonMemoryLimit(newTotalSize: number): Promise<number>;
|
|
closeDocs(): Promise<void>;
|
|
setDocWorkerActivation(workerId: string, active: 'active'|'inactive'|'crash'): Promise<void>;
|
|
flushAuthorizerCache(): Promise<void>;
|
|
flushDocs(): Promise<void>;
|
|
getDocClientCounts(): Promise<Array<[string, number]>>;
|
|
setActiveDocTimeout(seconds: number): Promise<number>;
|
|
setDiscourseConnectVar(varName: string, value: string|null): Promise<string|null>;
|
|
setWidgetRepositoryUrl(url: string): Promise<void>;
|
|
getMemoryUsage(): Promise<object>; // actually NodeJS.MemoryUsage
|
|
}
|