@overkill-dev/run 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engine/execution-result.js +77 -0
- package/engine/execution-result.js.map +1 -0
- package/engine/execution.d.ts +6 -2
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +68 -108
- package/engine/execution.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +16 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -0
- package/engine/reporter-dispatcher.js +244 -0
- package/engine/reporter-dispatcher.js.map +1 -0
- package/engine/reporter-event-queue.js +2 -2
- package/engine/reporter-event-queue.js.map +1 -1
- package/engine/reporter-output.d.ts +24 -0
- package/engine/reporter-output.d.ts.map +1 -0
- package/engine/reporter-output.js +8 -0
- package/engine/reporter-output.js.map +1 -0
- package/engine/reporter.d.ts +86 -21
- package/engine/reporter.d.ts.map +1 -1
- package/engine/reporter.js +51 -145
- package/engine/reporter.js.map +1 -1
- package/engine/run-result.d.ts +22 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js.map +1 -1
- package/package.json +2 -2
- package/packages/run/command-line.entry-point.d.ts +1 -1
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.d.ts +1 -1
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/readme.md +18 -2
- package/reporters/line-failure-rendering.js +1 -0
- package/reporters/line-failure-rendering.js.map +1 -1
- package/reporters/line-reporter.js +1 -1
- package/reporters/line-reporter.js.map +1 -1
- package/reporters/source-location-rendering.js +1 -0
- package/reporters/source-location-rendering.js.map +1 -0
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +3 -1
- package/run/command-line-runner.js.map +1 -1
- package/run/resource-usage.d.ts +15 -0
- package/run/resource-usage.d.ts.map +1 -0
- package/run/resource-usage.js +107 -0
- package/run/resource-usage.js.map +1 -0
- package/run/run-config.d.ts +32 -4
- package/run/run-config.d.ts.map +1 -1
- package/run/run-config.js +70 -0
- package/run/run-config.js.map +1 -1
- package/run/run.d.ts +35 -4
- package/run/run.d.ts.map +1 -1
- package/run/run.js +150 -2
- package/run/run.js.map +1 -1
- package/sbom.cdx.json +10 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-usage.js","sourceRoot":"","sources":["../../../../source/run/resource-usage.ts"],"names":[],"mappings":"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"}
|
package/run/run-config.d.ts
CHANGED
|
@@ -1,17 +1,44 @@
|
|
|
1
1
|
import type { NonEmptyReadonlyArray } from '../assertion-protocol/assertion-node-shape.ts';
|
|
2
|
+
import { type OutputRenderer } from '../engine/reporter-output.ts';
|
|
2
3
|
import type { Reporter } from '../engine/reporter.ts';
|
|
3
|
-
import type { RunLoaderConfig } from './run.ts';
|
|
4
|
+
import type { RunLoaderConfig, RunProfilesConfig } from './run.ts';
|
|
4
5
|
export type RunProjectConfig = {
|
|
5
|
-
readonly loader?: RunLoaderConfig;
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
6
|
+
readonly loader?: RunLoaderConfig | undefined;
|
|
7
|
+
readonly outputRenderer?: OutputRenderer | undefined;
|
|
8
|
+
readonly profiles?: RunProjectProfilesConfig | undefined;
|
|
9
|
+
readonly reporters?: NonEmptyReadonlyArray<Reporter> | undefined;
|
|
10
|
+
readonly runtimeStateDir?: string | undefined;
|
|
8
11
|
};
|
|
9
12
|
export type LoadedRunConfig = {
|
|
10
13
|
readonly configPath: string | null;
|
|
11
14
|
readonly loader: RunLoaderConfig;
|
|
15
|
+
readonly outputRenderer: OutputRenderer;
|
|
16
|
+
readonly profiles: RunProfilesConfig;
|
|
12
17
|
readonly reporters: NonEmptyReadonlyArray<Reporter> | null;
|
|
13
18
|
readonly runtimeStateDir: string;
|
|
14
19
|
};
|
|
20
|
+
export type RunProjectResourceBudgets = {
|
|
21
|
+
readonly activeResourceCount?: number | null | undefined;
|
|
22
|
+
readonly javaScriptEngineHeapBytes?: number | null | undefined;
|
|
23
|
+
readonly residentSetBytes?: number | null | undefined;
|
|
24
|
+
readonly residentSetGrowthBytesPerSecond?: number | null | undefined;
|
|
25
|
+
};
|
|
26
|
+
export type RunProjectMeasuredMicrotestProfileConfig = {
|
|
27
|
+
readonly measureResourceUsage: true;
|
|
28
|
+
readonly resourceBudgets?: RunProjectResourceBudgets | undefined;
|
|
29
|
+
readonly resourceUsageSamplingIntervalMilliseconds?: number | undefined;
|
|
30
|
+
};
|
|
31
|
+
export type RunProjectUnmeasuredMicrotestProfileConfig = {
|
|
32
|
+
readonly measureResourceUsage?: false | undefined;
|
|
33
|
+
};
|
|
34
|
+
type RunProjectMicrotestProfileConfigVariants = readonly [
|
|
35
|
+
RunProjectMeasuredMicrotestProfileConfig,
|
|
36
|
+
RunProjectUnmeasuredMicrotestProfileConfig
|
|
37
|
+
];
|
|
38
|
+
export type RunProjectMicrotestProfileConfig = RunProjectMicrotestProfileConfigVariants[number];
|
|
39
|
+
export type RunProjectProfilesConfig = {
|
|
40
|
+
readonly microtest?: RunProjectMicrotestProfileConfig | undefined;
|
|
41
|
+
};
|
|
15
42
|
export type RunConfigLoadRequest = {
|
|
16
43
|
readonly configPath: string | null;
|
|
17
44
|
readonly cwd: string;
|
|
@@ -21,4 +48,5 @@ export declare class RunConfigError extends Error {
|
|
|
21
48
|
}
|
|
22
49
|
export declare function defineConfig(config: RunProjectConfig): RunProjectConfig;
|
|
23
50
|
export declare function loadRunConfig(request: RunConfigLoadRequest): Promise<LoadedRunConfig>;
|
|
51
|
+
export {};
|
|
24
52
|
//# sourceMappingURL=run-config.d.ts.map
|
package/run/run-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-config.d.ts","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"run-config.d.ts","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EACR,eAAe,EACf,iBAAiB,EAGpB,MAAM,UAAU,CAAC;AAKlB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACnD,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,yCAAyC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACrD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,KAAK,wCAAwC,GAAG,SAAS;IACrD,wCAAwC;IACxC,0CAA0C;CAC7C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,wCAAwC,CAAC,MAAM,CAAC,CAAC;AAEhG,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,gCAAgC,GAAG,SAAS,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;gBAClB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAIvE;AAqFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEvE;AAiID,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAW3F"}
|
package/run/run-config.js
CHANGED
|
@@ -11,7 +11,9 @@ import path from 'node:path';
|
|
|
11
11
|
import { pathToFileURL } from 'node:url';
|
|
12
12
|
import { parse } from '@schema-hub/zod-error-formatter';
|
|
13
13
|
import { z } from 'zod/v4';
|
|
14
|
+
import { createPlainOutputRenderer } from "../engine/reporter-output.js";
|
|
14
15
|
const defaultConfigFileNames = ['overkill.config.ts', 'overkill.config.js'];
|
|
16
|
+
const defaultResourceUsageSamplingIntervalMilliseconds = 100;
|
|
15
17
|
export class RunConfigError extends Error {
|
|
16
18
|
constructor(message, options) {
|
|
17
19
|
super(message, options);
|
|
@@ -22,18 +24,57 @@ const defaultLoader = {
|
|
|
22
24
|
sourceMaps: false,
|
|
23
25
|
stripMode: 'strip-only'
|
|
24
26
|
};
|
|
27
|
+
const defaultResourceUsagePolicy = {
|
|
28
|
+
measureResourceUsage: false,
|
|
29
|
+
resourceBudgets: {
|
|
30
|
+
activeResourceCount: null,
|
|
31
|
+
javaScriptEngineHeapBytes: null,
|
|
32
|
+
residentSetBytes: null,
|
|
33
|
+
residentSetGrowthBytesPerSecond: null
|
|
34
|
+
},
|
|
35
|
+
resourceUsageSamplingIntervalMilliseconds: defaultResourceUsageSamplingIntervalMilliseconds
|
|
36
|
+
};
|
|
25
37
|
const reporterSchema = z.custom(function isReporter(value) {
|
|
26
38
|
return typeof value === 'object' && value !== null &&
|
|
27
39
|
Object.hasOwn(value, 'kind') &&
|
|
28
40
|
Object.hasOwn(value, 'name') &&
|
|
29
41
|
Object.hasOwn(value, 'sinks');
|
|
30
42
|
});
|
|
43
|
+
function hasRenderProperty(value) {
|
|
44
|
+
return typeof value === 'object' && value !== null && Object.hasOwn(value, 'render');
|
|
45
|
+
}
|
|
46
|
+
const outputRendererSchema = z.custom(function isOutputRenderer(value) {
|
|
47
|
+
return hasRenderProperty(value) && typeof value.render === 'function';
|
|
48
|
+
});
|
|
31
49
|
const loaderSchema = z.strictObject({
|
|
32
50
|
sourceMaps: z.boolean(),
|
|
33
51
|
stripMode: z.union([z.literal('strip-only'), z.literal('transform')])
|
|
34
52
|
});
|
|
53
|
+
const positiveSafeIntegerSchema = z.number().refine(function isPositiveSafeInteger(value) {
|
|
54
|
+
return Number.isSafeInteger(value) && value > 0;
|
|
55
|
+
}, 'must be a positive safe integer');
|
|
56
|
+
const resourceBudgetsSchema = z.strictObject({
|
|
57
|
+
activeResourceCount: z.optional(z.nullable(positiveSafeIntegerSchema)),
|
|
58
|
+
javaScriptEngineHeapBytes: z.optional(z.nullable(positiveSafeIntegerSchema)),
|
|
59
|
+
residentSetBytes: z.optional(z.nullable(positiveSafeIntegerSchema)),
|
|
60
|
+
residentSetGrowthBytesPerSecond: z.optional(z.nullable(positiveSafeIntegerSchema))
|
|
61
|
+
});
|
|
62
|
+
const measuredMicrotestProfileSchema = z.strictObject({
|
|
63
|
+
measureResourceUsage: z.literal(true),
|
|
64
|
+
resourceBudgets: z.optional(resourceBudgetsSchema),
|
|
65
|
+
resourceUsageSamplingIntervalMilliseconds: z.optional(positiveSafeIntegerSchema)
|
|
66
|
+
});
|
|
67
|
+
const unmeasuredMicrotestProfileSchema = z.strictObject({
|
|
68
|
+
measureResourceUsage: z.optional(z.literal(false))
|
|
69
|
+
});
|
|
70
|
+
const microtestProfileSchema = z.union([measuredMicrotestProfileSchema, unmeasuredMicrotestProfileSchema]);
|
|
71
|
+
const profilesSchema = z.strictObject({
|
|
72
|
+
microtest: z.optional(microtestProfileSchema)
|
|
73
|
+
});
|
|
35
74
|
const projectConfigSchema = z.strictObject({
|
|
36
75
|
loader: z.optional(loaderSchema),
|
|
76
|
+
outputRenderer: z.optional(outputRendererSchema),
|
|
77
|
+
profiles: z.optional(profilesSchema),
|
|
37
78
|
reporters: z.optional(z.array(reporterSchema).min(1)),
|
|
38
79
|
runtimeStateDir: z.optional(z.string().min(1))
|
|
39
80
|
});
|
|
@@ -91,10 +132,39 @@ function normalizeReporters(reporters) {
|
|
|
91
132
|
}
|
|
92
133
|
return [firstReporter, ...remainingReporters];
|
|
93
134
|
}
|
|
135
|
+
function normalizeBudgetValue(value) {
|
|
136
|
+
return value ?? null;
|
|
137
|
+
}
|
|
138
|
+
function normalizeResourceBudgets(resourceBudgets) {
|
|
139
|
+
return {
|
|
140
|
+
activeResourceCount: normalizeBudgetValue(resourceBudgets?.activeResourceCount),
|
|
141
|
+
javaScriptEngineHeapBytes: normalizeBudgetValue(resourceBudgets?.javaScriptEngineHeapBytes),
|
|
142
|
+
residentSetBytes: normalizeBudgetValue(resourceBudgets?.residentSetBytes),
|
|
143
|
+
residentSetGrowthBytesPerSecond: normalizeBudgetValue(resourceBudgets?.residentSetGrowthBytesPerSecond)
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function normalizeMicrotestProfile(profile) {
|
|
147
|
+
if (profile?.measureResourceUsage !== true) {
|
|
148
|
+
return defaultResourceUsagePolicy;
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
measureResourceUsage: true,
|
|
152
|
+
resourceBudgets: normalizeResourceBudgets(profile.resourceBudgets),
|
|
153
|
+
resourceUsageSamplingIntervalMilliseconds: profile.resourceUsageSamplingIntervalMilliseconds ??
|
|
154
|
+
defaultResourceUsageSamplingIntervalMilliseconds
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function normalizeProfiles(profiles) {
|
|
158
|
+
return {
|
|
159
|
+
microtest: normalizeMicrotestProfile(profiles?.microtest)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
94
162
|
function normalizeConfig(parsedConfig, configPath) {
|
|
95
163
|
return {
|
|
96
164
|
configPath,
|
|
97
165
|
loader: parsedConfig.loader ?? defaultLoader,
|
|
166
|
+
outputRenderer: parsedConfig.outputRenderer ?? createPlainOutputRenderer(),
|
|
167
|
+
profiles: normalizeProfiles(parsedConfig.profiles),
|
|
98
168
|
reporters: normalizeReporters(parsedConfig.reporters),
|
|
99
169
|
runtimeStateDir: parsedConfig.runtimeStateDir ?? '.overkill'
|
|
100
170
|
};
|
package/run/run-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-config.js","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"run-config.js","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"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"}
|
package/run/run.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { type SerializedValue as SerializedValueShape } from '../compare/serialized-value.ts';
|
|
2
2
|
import { type Execute } from '../engine/execution.ts';
|
|
3
3
|
import type { CaseId } from '../engine/identity.ts';
|
|
4
|
-
import {
|
|
5
|
-
import type { RunResult } from '../engine/run-result.ts';
|
|
4
|
+
import type { RunResourceUsageTracker, RunResult } from '../engine/run-result.ts';
|
|
6
5
|
import type { TestPlan } from '../engine/test-plan.ts';
|
|
6
|
+
import { type ResourceUsageTrackerOptions } from './resource-usage.ts';
|
|
7
7
|
export type SerializedValue = SerializedValueShape;
|
|
8
|
+
type RunExecuteOptions = NonNullable<Parameters<Execute>[1]>;
|
|
9
|
+
type RunOutputRenderer = NonNullable<RunExecuteOptions['outputRenderer']>;
|
|
10
|
+
type RunReporters = RunExecuteOptions['reporters'];
|
|
8
11
|
export type RunSelection = {
|
|
9
12
|
readonly kind: 'all';
|
|
10
13
|
};
|
|
@@ -26,9 +29,31 @@ export type RunLoaderConfig = {
|
|
|
26
29
|
readonly sourceMaps: boolean;
|
|
27
30
|
readonly stripMode: 'strip-only' | 'transform';
|
|
28
31
|
};
|
|
32
|
+
export type RunResourceBudgets = {
|
|
33
|
+
readonly activeResourceCount: number | null;
|
|
34
|
+
readonly javaScriptEngineHeapBytes: number | null;
|
|
35
|
+
readonly residentSetBytes: number | null;
|
|
36
|
+
readonly residentSetGrowthBytesPerSecond: number | null;
|
|
37
|
+
};
|
|
38
|
+
export type ResourceBudgetOverrides = {
|
|
39
|
+
readonly activeResourceCount: number | null;
|
|
40
|
+
readonly javaScriptEngineHeapBytes: number | null;
|
|
41
|
+
readonly residentSetBytes: number | null;
|
|
42
|
+
readonly residentSetGrowthBytesPerSecond: number | null;
|
|
43
|
+
};
|
|
44
|
+
export type RunResourceUsagePolicy = {
|
|
45
|
+
readonly measureResourceUsage: boolean;
|
|
46
|
+
readonly resourceBudgets: RunResourceBudgets;
|
|
47
|
+
readonly resourceUsageSamplingIntervalMilliseconds: number;
|
|
48
|
+
};
|
|
49
|
+
export type RunProfilesConfig = {
|
|
50
|
+
readonly microtest: RunResourceUsagePolicy;
|
|
51
|
+
};
|
|
29
52
|
export type RunConfig = {
|
|
30
53
|
readonly loader: RunLoaderConfig;
|
|
31
|
-
readonly
|
|
54
|
+
readonly outputRenderer: RunOutputRenderer;
|
|
55
|
+
readonly profiles: RunProfilesConfig;
|
|
56
|
+
readonly reporters: RunReporters;
|
|
32
57
|
readonly runtimeStateDir: string;
|
|
33
58
|
};
|
|
34
59
|
export type RunRequest = {
|
|
@@ -37,9 +62,12 @@ export type RunRequest = {
|
|
|
37
62
|
readonly coverage: false;
|
|
38
63
|
readonly debug: RunDebugRequest;
|
|
39
64
|
readonly execution: RunExecutionRequest;
|
|
65
|
+
readonly measureResourceUsage: boolean | null;
|
|
40
66
|
readonly order: 'plan';
|
|
41
67
|
readonly paths: readonly string[];
|
|
42
68
|
readonly profile: 'microtest';
|
|
69
|
+
readonly resourceBudgetOverrides: ResourceBudgetOverrides | null;
|
|
70
|
+
readonly resourceUsageSamplingIntervalMilliseconds: number | null;
|
|
43
71
|
readonly seed: RunSeed;
|
|
44
72
|
readonly selection: RunSelection;
|
|
45
73
|
readonly shard: RunShard;
|
|
@@ -77,6 +105,7 @@ export type RunExecutionFacts = {
|
|
|
77
105
|
readonly mode: 'concurrent-in-process';
|
|
78
106
|
readonly order: 'plan';
|
|
79
107
|
readonly profile: 'microtest';
|
|
108
|
+
readonly resourceUsagePolicy: RunResourceUsagePolicy;
|
|
80
109
|
readonly verbose: false;
|
|
81
110
|
};
|
|
82
111
|
export type RunReproducibilityFacts = {
|
|
@@ -86,7 +115,7 @@ export type RunReproducibilityFacts = {
|
|
|
86
115
|
export type ResolvedRun = {
|
|
87
116
|
readonly config: RunConfig;
|
|
88
117
|
readonly facts: RunFacts;
|
|
89
|
-
readonly reporters:
|
|
118
|
+
readonly reporters: RunReporters;
|
|
90
119
|
readonly request: RunRequest;
|
|
91
120
|
readonly testPlan: TestPlan;
|
|
92
121
|
};
|
|
@@ -98,6 +127,7 @@ export declare class RunResolutionError extends Error {
|
|
|
98
127
|
}
|
|
99
128
|
export type RunOrchestratorDependencies = {
|
|
100
129
|
readonly createSeed: () => bigint;
|
|
130
|
+
readonly createResourceUsageTracker: (options: ResourceUsageTrackerOptions) => RunResourceUsageTracker;
|
|
101
131
|
readonly execute: Execute;
|
|
102
132
|
readonly node: {
|
|
103
133
|
readonly arch: string;
|
|
@@ -112,4 +142,5 @@ export type RunOrchestrator = {
|
|
|
112
142
|
};
|
|
113
143
|
export declare function createRunOrchestrator(dependencies: RunOrchestratorDependencies): RunOrchestrator;
|
|
114
144
|
export declare const orchestrator: RunOrchestrator;
|
|
145
|
+
export {};
|
|
115
146
|
//# sourceMappingURL=run.d.ts.map
|
package/run/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,eAAe,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC9G,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,eAAe,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC9G,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAkC,KAAK,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAKvG,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACnD,KAAK,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,KAAK,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1E,KAAK,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,yCAAyC,EAAE,MAAM,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjE,QAAQ,CAAC,yCAAyC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE;QACX,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE/E,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,sBAAsB;IAMtG,IAAI,IAAI,sBAAsB;CAGxC;AAED,MAAM,MAAM,2BAA2B,GAAG;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;IAClC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,uBAAuB,CAAC;IACvG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE;QACX,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CAC7D,CAAC;AAuUF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,2BAA2B,GAAG,eAAe,CAsBhG;AAwCD,eAAO,MAAM,YAAY,EAAE,eAAwC,CAAC"}
|
package/run/run.js
CHANGED
|
@@ -2,7 +2,8 @@ import { randomBytes } from 'node:crypto';
|
|
|
2
2
|
import { createWallClock } from '@enormora/wall-clock';
|
|
3
3
|
import { serializeValue } from "../compare/serialized-value.js";
|
|
4
4
|
import { createExecute } from "../engine/execution.js";
|
|
5
|
-
import { createReporterDispatcher } from "../engine/reporter.js";
|
|
5
|
+
import { createReporterDispatcher } from "../engine/reporter-dispatcher.js";
|
|
6
|
+
import { createNodeResourceUsageTracker } from "./resource-usage.js";
|
|
6
7
|
const minimumSeedValue = 0n;
|
|
7
8
|
const seedByteLength = 8;
|
|
8
9
|
export class RunResolutionError extends Error {
|
|
@@ -37,10 +38,52 @@ function validateRunSeed(request) {
|
|
|
37
38
|
invalidRequest('Run seed must be a nonnegative bigint.');
|
|
38
39
|
}
|
|
39
40
|
}
|
|
41
|
+
function validatePositiveSafeInteger(value, label) {
|
|
42
|
+
if (value !== null && (!Number.isSafeInteger(value) || value <= 0)) {
|
|
43
|
+
invalidRequest(`${label} must be a positive safe integer.`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function validateResourceBudgets(resourceBudgets) {
|
|
47
|
+
validatePositiveSafeInteger(resourceBudgets.activeResourceCount, 'Active resource count budget');
|
|
48
|
+
validatePositiveSafeInteger(resourceBudgets.javaScriptEngineHeapBytes, 'JavaScript engine heap budget');
|
|
49
|
+
validatePositiveSafeInteger(resourceBudgets.residentSetBytes, 'Resident set budget');
|
|
50
|
+
validatePositiveSafeInteger(resourceBudgets.residentSetGrowthBytesPerSecond, 'Resident set growth budget');
|
|
51
|
+
}
|
|
52
|
+
function validateSamplingInterval(value) {
|
|
53
|
+
validatePositiveSafeInteger(value, 'Resource usage sampling interval');
|
|
54
|
+
}
|
|
55
|
+
function hasResourceBudgets(resourceBudgets) {
|
|
56
|
+
return resourceBudgets.activeResourceCount !== null ||
|
|
57
|
+
resourceBudgets.javaScriptEngineHeapBytes !== null ||
|
|
58
|
+
resourceBudgets.residentSetBytes !== null ||
|
|
59
|
+
resourceBudgets.residentSetGrowthBytesPerSecond !== null;
|
|
60
|
+
}
|
|
61
|
+
function validateRunResourceUsageRequest(request) {
|
|
62
|
+
if (request.resourceBudgetOverrides !== null) {
|
|
63
|
+
validateResourceBudgets(request.resourceBudgetOverrides);
|
|
64
|
+
}
|
|
65
|
+
validateSamplingInterval(request.resourceUsageSamplingIntervalMilliseconds);
|
|
66
|
+
if (request.measureResourceUsage === false &&
|
|
67
|
+
request.resourceBudgetOverrides !== null &&
|
|
68
|
+
hasResourceBudgets(request.resourceBudgetOverrides)) {
|
|
69
|
+
invalidRequest('Resource budget overrides require resource usage measurement.');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
40
72
|
function validateRunRequest(request) {
|
|
41
73
|
validateRunPaths(request);
|
|
42
74
|
validateRunShard(request);
|
|
43
75
|
validateRunSeed(request);
|
|
76
|
+
validateRunResourceUsageRequest(request);
|
|
77
|
+
}
|
|
78
|
+
function validateRunResourceUsagePolicy(policy) {
|
|
79
|
+
validateResourceBudgets(policy.resourceBudgets);
|
|
80
|
+
validateSamplingInterval(policy.resourceUsageSamplingIntervalMilliseconds);
|
|
81
|
+
if (!policy.measureResourceUsage && hasResourceBudgets(policy.resourceBudgets)) {
|
|
82
|
+
invalidRequest('Resource budgets require resource usage measurement.');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function validateRunConfig(config) {
|
|
86
|
+
validateRunResourceUsagePolicy(config.profiles.microtest);
|
|
44
87
|
}
|
|
45
88
|
function resolvedSeed(request, dependencies) {
|
|
46
89
|
return request.seed.value ?? dependencies.createSeed();
|
|
@@ -57,6 +100,32 @@ function copyRunShard(shard) {
|
|
|
57
100
|
total: shard.total
|
|
58
101
|
};
|
|
59
102
|
}
|
|
103
|
+
function copyResourceBudgets(resourceBudgets) {
|
|
104
|
+
return {
|
|
105
|
+
activeResourceCount: resourceBudgets.activeResourceCount,
|
|
106
|
+
javaScriptEngineHeapBytes: resourceBudgets.javaScriptEngineHeapBytes,
|
|
107
|
+
residentSetBytes: resourceBudgets.residentSetBytes,
|
|
108
|
+
residentSetGrowthBytesPerSecond: resourceBudgets.residentSetGrowthBytesPerSecond
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function copyResourceBudgetOverrides(overrides) {
|
|
112
|
+
if (overrides === null) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
return copyResourceBudgets(overrides);
|
|
116
|
+
}
|
|
117
|
+
function copyResourceUsagePolicy(policy) {
|
|
118
|
+
return {
|
|
119
|
+
measureResourceUsage: policy.measureResourceUsage,
|
|
120
|
+
resourceBudgets: copyResourceBudgets(policy.resourceBudgets),
|
|
121
|
+
resourceUsageSamplingIntervalMilliseconds: policy.resourceUsageSamplingIntervalMilliseconds
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function copyRunProfilesConfig(profiles) {
|
|
125
|
+
return {
|
|
126
|
+
microtest: copyResourceUsagePolicy(profiles.microtest)
|
|
127
|
+
};
|
|
128
|
+
}
|
|
60
129
|
function copyRunRequest(request) {
|
|
61
130
|
return {
|
|
62
131
|
baselineUpdateMode: request.baselineUpdateMode,
|
|
@@ -67,9 +136,12 @@ function copyRunRequest(request) {
|
|
|
67
136
|
selectors: []
|
|
68
137
|
},
|
|
69
138
|
execution: { mode: request.execution.mode },
|
|
139
|
+
measureResourceUsage: request.measureResourceUsage,
|
|
70
140
|
order: request.order,
|
|
71
141
|
paths: Array.from(request.paths),
|
|
72
142
|
profile: request.profile,
|
|
143
|
+
resourceBudgetOverrides: copyResourceBudgetOverrides(request.resourceBudgetOverrides),
|
|
144
|
+
resourceUsageSamplingIntervalMilliseconds: request.resourceUsageSamplingIntervalMilliseconds,
|
|
73
145
|
seed: { value: request.seed.value },
|
|
74
146
|
selection: { kind: request.selection.kind },
|
|
75
147
|
shard: copyRunShard(request.shard),
|
|
@@ -79,6 +151,8 @@ function copyRunRequest(request) {
|
|
|
79
151
|
function copyRunConfig(config) {
|
|
80
152
|
return {
|
|
81
153
|
loader: copyLoaderConfig(config.loader),
|
|
154
|
+
outputRenderer: config.outputRenderer,
|
|
155
|
+
profiles: copyRunProfilesConfig(config.profiles),
|
|
82
156
|
reporters: Array.from(config.reporters),
|
|
83
157
|
runtimeStateDir: config.runtimeStateDir
|
|
84
158
|
};
|
|
@@ -89,6 +163,48 @@ function runCaseFacts(metadata, id) {
|
|
|
89
163
|
metadata: serializeValue(metadata)
|
|
90
164
|
};
|
|
91
165
|
}
|
|
166
|
+
function disabledResourceBudgets() {
|
|
167
|
+
return {
|
|
168
|
+
activeResourceCount: null,
|
|
169
|
+
javaScriptEngineHeapBytes: null,
|
|
170
|
+
residentSetBytes: null,
|
|
171
|
+
residentSetGrowthBytesPerSecond: null
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function readBudgetOverride(configValue, requestValue) {
|
|
175
|
+
return requestValue ?? configValue;
|
|
176
|
+
}
|
|
177
|
+
function resolveResourceBudgets(configBudgets, requestOverrides) {
|
|
178
|
+
if (requestOverrides === null) {
|
|
179
|
+
return copyResourceBudgets(configBudgets);
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
activeResourceCount: readBudgetOverride(configBudgets.activeResourceCount, requestOverrides.activeResourceCount),
|
|
183
|
+
javaScriptEngineHeapBytes: readBudgetOverride(configBudgets.javaScriptEngineHeapBytes, requestOverrides.javaScriptEngineHeapBytes),
|
|
184
|
+
residentSetBytes: readBudgetOverride(configBudgets.residentSetBytes, requestOverrides.residentSetBytes),
|
|
185
|
+
residentSetGrowthBytesPerSecond: readBudgetOverride(configBudgets.residentSetGrowthBytesPerSecond, requestOverrides.residentSetGrowthBytesPerSecond)
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function assertResourceBudgetOverridesAllowed(measureResourceUsage, requestOverrides) {
|
|
189
|
+
if (!measureResourceUsage && requestOverrides !== null && hasResourceBudgets(requestOverrides)) {
|
|
190
|
+
invalidRequest('Resource budget overrides require resource usage measurement.');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function resolveResourceUsagePolicy(request, config) {
|
|
194
|
+
const configuredPolicy = config.profiles.microtest;
|
|
195
|
+
const measureResourceUsage = request.measureResourceUsage ?? configuredPolicy.measureResourceUsage;
|
|
196
|
+
const resourceUsageSamplingIntervalMilliseconds = request.resourceUsageSamplingIntervalMilliseconds ??
|
|
197
|
+
configuredPolicy.resourceUsageSamplingIntervalMilliseconds;
|
|
198
|
+
const resourceBudgets = measureResourceUsage
|
|
199
|
+
? resolveResourceBudgets(configuredPolicy.resourceBudgets, request.resourceBudgetOverrides)
|
|
200
|
+
: disabledResourceBudgets();
|
|
201
|
+
assertResourceBudgetOverridesAllowed(measureResourceUsage, request.resourceBudgetOverrides);
|
|
202
|
+
return {
|
|
203
|
+
measureResourceUsage,
|
|
204
|
+
resourceBudgets,
|
|
205
|
+
resourceUsageSamplingIntervalMilliseconds
|
|
206
|
+
};
|
|
207
|
+
}
|
|
92
208
|
function createRunFacts(command, request, config, dependencies) {
|
|
93
209
|
return {
|
|
94
210
|
cases: command.testPlan.cases.map(function toRunCaseFacts(testCase) {
|
|
@@ -110,6 +226,7 @@ function createRunFacts(command, request, config, dependencies) {
|
|
|
110
226
|
mode: request.execution.mode,
|
|
111
227
|
order: request.order,
|
|
112
228
|
profile: request.profile,
|
|
229
|
+
resourceUsagePolicy: resolveResourceUsagePolicy(request, config),
|
|
113
230
|
verbose: request.verbose
|
|
114
231
|
},
|
|
115
232
|
loader: config.loader,
|
|
@@ -130,6 +247,7 @@ function freezeValue(value) {
|
|
|
130
247
|
}
|
|
131
248
|
function createResolvedRun(command, dependencies) {
|
|
132
249
|
validateRunRequest(command.request);
|
|
250
|
+
validateRunConfig(command.config);
|
|
133
251
|
const request = freezeValue(copyRunRequest(command.request));
|
|
134
252
|
const config = freezeValue(copyRunConfig(command.config));
|
|
135
253
|
const facts = freezeValue(createRunFacts(command, request, config, dependencies));
|
|
@@ -141,6 +259,19 @@ function createResolvedRun(command, dependencies) {
|
|
|
141
259
|
testPlan: command.testPlan
|
|
142
260
|
});
|
|
143
261
|
}
|
|
262
|
+
function assertRunnableResourceUsagePolicy(policy) {
|
|
263
|
+
if (hasResourceBudgets(policy.resourceBudgets)) {
|
|
264
|
+
unsupportedRequest('Resource budget enforcement is not implemented yet.');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function createExecutionResourceUsageTracker(policy, dependencies) {
|
|
268
|
+
if (!policy.measureResourceUsage) {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
return dependencies.createResourceUsageTracker({
|
|
272
|
+
samplingIntervalMilliseconds: policy.resourceUsageSamplingIntervalMilliseconds
|
|
273
|
+
});
|
|
274
|
+
}
|
|
144
275
|
export function createRunOrchestrator(dependencies) {
|
|
145
276
|
return {
|
|
146
277
|
async resolve(command) {
|
|
@@ -148,9 +279,13 @@ export function createRunOrchestrator(dependencies) {
|
|
|
148
279
|
},
|
|
149
280
|
async run(command) {
|
|
150
281
|
const resolvedRun = createResolvedRun(command, dependencies);
|
|
282
|
+
const { resourceUsagePolicy } = resolvedRun.facts.execution;
|
|
283
|
+
assertRunnableResourceUsagePolicy(resourceUsagePolicy);
|
|
151
284
|
return await dependencies.execute(resolvedRun.testPlan, {
|
|
152
285
|
execution: { mode: 'concurrent-in-process' },
|
|
286
|
+
outputRenderer: resolvedRun.config.outputRenderer,
|
|
153
287
|
reporters: resolvedRun.reporters,
|
|
288
|
+
resourceUsageTracker: createExecutionResourceUsageTracker(resourceUsagePolicy, dependencies),
|
|
154
289
|
runFacts: resolvedRun.facts,
|
|
155
290
|
startedAt: dependencies.readStartedAt()
|
|
156
291
|
});
|
|
@@ -161,10 +296,23 @@ function createDefaultSeed() {
|
|
|
161
296
|
return randomBytes(seedByteLength).readBigUInt64BE();
|
|
162
297
|
}
|
|
163
298
|
const defaultWallClock = createWallClock();
|
|
299
|
+
function writeStdoutLine(line) {
|
|
300
|
+
process.stdout.write(`${line}\n`);
|
|
301
|
+
}
|
|
302
|
+
function writeStderrLine(line) {
|
|
303
|
+
process.stderr.write(`${line}\n`);
|
|
304
|
+
}
|
|
164
305
|
const defaultRunOrchestrator = createRunOrchestrator({
|
|
165
306
|
createSeed: createDefaultSeed,
|
|
307
|
+
createResourceUsageTracker(options) {
|
|
308
|
+
return createNodeResourceUsageTracker(defaultWallClock, options);
|
|
309
|
+
},
|
|
166
310
|
execute: createExecute({
|
|
167
|
-
reporterDispatcher: createReporterDispatcher({
|
|
311
|
+
reporterDispatcher: createReporterDispatcher({
|
|
312
|
+
stderr: { writeLine: writeStderrLine },
|
|
313
|
+
stdout: { writeLine: writeStdoutLine },
|
|
314
|
+
wallClock: defaultWallClock
|
|
315
|
+
}),
|
|
168
316
|
wallClock: defaultWallClock
|
|
169
317
|
}),
|
|
170
318
|
node: {
|
package/run/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../source/run/run.ts"],"names":[],"mappings":"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"}
|