@overkill-dev/run 0.0.60 → 0.0.62

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.
Files changed (251) hide show
  1. package/engine/coverage-artifact.d.ts +49 -0
  2. package/engine/coverage-artifact.d.ts.map +1 -0
  3. package/engine/execution-options.d.ts +4 -1
  4. package/engine/execution-options.d.ts.map +1 -1
  5. package/engine/execution-options.js.map +1 -1
  6. package/engine/execution-supervision-state.d.ts +30 -0
  7. package/engine/execution-supervision-state.d.ts.map +1 -0
  8. package/engine/execution-supervision-state.js +25 -0
  9. package/engine/execution-supervision-state.js.map +1 -0
  10. package/engine/execution-supervision.d.ts +5 -25
  11. package/engine/execution-supervision.d.ts.map +1 -1
  12. package/engine/execution-supervision.js +9 -19
  13. package/engine/execution-supervision.js.map +1 -1
  14. package/engine/execution-test-plan-cases.js +108 -71
  15. package/engine/execution-test-plan-cases.js.map +1 -1
  16. package/engine/identity.d.ts +2 -0
  17. package/engine/identity.d.ts.map +1 -1
  18. package/engine/identity.js +2 -1
  19. package/engine/identity.js.map +1 -1
  20. package/engine/reporter-event-queue.js +1 -1
  21. package/engine/reporter-event-queue.js.map +1 -1
  22. package/engine/run-result.d.ts +17 -5
  23. package/engine/run-result.d.ts.map +1 -1
  24. package/engine/run-result.js.map +1 -1
  25. package/engine/run-timings.d.ts +1 -1
  26. package/engine/run-timings.d.ts.map +1 -1
  27. package/engine/run-timings.js +3 -0
  28. package/engine/run-timings.js.map +1 -1
  29. package/engine/test-plan.d.ts +1 -1
  30. package/engine/test-plan.d.ts.map +1 -1
  31. package/package.json +11 -3
  32. package/packages/engine/engine.entry-point.d.ts +3 -2
  33. package/packages/engine/engine.entry-point.d.ts.map +1 -1
  34. package/packages/engine/engine.entry-point.js.map +1 -1
  35. package/packages/run/config.entry-point.d.ts +3 -2
  36. package/packages/run/config.entry-point.d.ts.map +1 -1
  37. package/packages/run/config.entry-point.js +2 -1
  38. package/packages/run/config.entry-point.js.map +1 -1
  39. package/packages/run/filters.entry-point.d.ts +2 -2
  40. package/packages/run/filters.entry-point.d.ts.map +1 -1
  41. package/packages/run/filters.entry-point.js +1 -1
  42. package/packages/run/filters.entry-point.js.map +1 -1
  43. package/packages/run/run.entry-point.d.ts +5 -3
  44. package/packages/run/run.entry-point.d.ts.map +1 -1
  45. package/packages/run/run.entry-point.js +2 -8
  46. package/packages/run/run.entry-point.js.map +1 -1
  47. package/readme.md +28 -5
  48. package/reporters/human-reporter-rendering.js +16 -1
  49. package/reporters/human-reporter-rendering.js.map +1 -1
  50. package/reporters/line-reporter.js +4 -1
  51. package/reporters/line-reporter.js.map +1 -1
  52. package/reporters/run-summary-rendering.js +23 -0
  53. package/reporters/run-summary-rendering.js.map +1 -1
  54. package/resources/resources.d.ts +1 -0
  55. package/resources/resources.d.ts.map +1 -1
  56. package/resources/resources.js.map +1 -1
  57. package/resources/runtime-definition.d.ts +2 -0
  58. package/resources/runtime-definition.d.ts.map +1 -1
  59. package/resources/runtime-definition.js +1 -0
  60. package/resources/runtime-definition.js.map +1 -1
  61. package/run/collected-run-plan.js +13 -0
  62. package/run/collected-run-plan.js.map +1 -1
  63. package/run/command-line-command.d.ts +1 -1
  64. package/run/command-line-command.d.ts.map +1 -1
  65. package/run/command-line-command.js +1 -2
  66. package/run/command-line-command.js.map +1 -1
  67. package/run/command-line-runner.d.ts.map +1 -1
  68. package/run/command-line-runner.js +2 -0
  69. package/run/command-line-runner.js.map +1 -1
  70. package/run/coverage-config-schema.d.ts +50 -0
  71. package/run/coverage-config-schema.d.ts.map +1 -0
  72. package/run/coverage-config-schema.js +36 -0
  73. package/run/coverage-config-schema.js.map +1 -0
  74. package/run/coverage-paths.js +5 -0
  75. package/run/coverage-paths.js.map +1 -0
  76. package/run/coverage-reporting.js +191 -0
  77. package/run/coverage-reporting.js.map +1 -0
  78. package/run/coverage-session.js +7 -0
  79. package/run/coverage-session.js.map +1 -0
  80. package/run/current-process-run-orchestrator.d.ts +2 -1
  81. package/run/current-process-run-orchestrator.d.ts.map +1 -1
  82. package/run/current-process-run-orchestrator.js +30 -1
  83. package/run/current-process-run-orchestrator.js.map +1 -1
  84. package/run/direct-entrypoint-collection.js +27 -0
  85. package/run/direct-entrypoint-collection.js.map +1 -0
  86. package/run/duration-history-schema.d.ts +251 -0
  87. package/run/duration-history-schema.d.ts.map +1 -0
  88. package/run/duration-history-schema.js +121 -0
  89. package/run/duration-history-schema.js.map +1 -0
  90. package/run/duration-history.d.ts +2 -2
  91. package/run/duration-history.d.ts.map +1 -1
  92. package/run/duration-history.js +3 -82
  93. package/run/duration-history.js.map +1 -1
  94. package/run/path-containment.js +2 -0
  95. package/run/path-containment.js.map +1 -0
  96. package/run/profile-config-normalization.js +136 -0
  97. package/run/profile-config-normalization.js.map +1 -0
  98. package/run/profile-file-glob.js +18 -0
  99. package/run/profile-file-glob.js.map +1 -1
  100. package/run/resource-lifecycle-boundaries.js +20 -5
  101. package/run/resource-lifecycle-boundaries.js.map +1 -1
  102. package/run/resource-lifecycle-cache-identity.js +4 -0
  103. package/run/resource-lifecycle-cache-identity.js.map +1 -1
  104. package/run/resource-lifecycle-composition.d.ts +1 -1
  105. package/run/resource-lifecycle-composition.d.ts.map +1 -1
  106. package/run/resource-lifecycle-composition.js +4 -4
  107. package/run/resource-lifecycle-composition.js.map +1 -1
  108. package/run/run-collected-planning.js +1 -1
  109. package/run/run-collected-planning.js.map +1 -1
  110. package/run/run-collection-source-types.d.ts +12 -0
  111. package/run/run-collection-source-types.d.ts.map +1 -0
  112. package/run/run-collection-source.d.ts +9 -0
  113. package/run/run-collection-source.d.ts.map +1 -0
  114. package/run/run-collection-source.js +9 -0
  115. package/run/run-collection-source.js.map +1 -0
  116. package/run/run-config-defaults.js +26 -4
  117. package/run/run-config-defaults.js.map +1 -1
  118. package/run/run-config-schema.d.ts +63 -0
  119. package/run/run-config-schema.d.ts.map +1 -1
  120. package/run/run-config-schema.js +7 -0
  121. package/run/run-config-schema.js.map +1 -1
  122. package/run/run-config.d.ts +7 -5
  123. package/run/run-config.d.ts.map +1 -1
  124. package/run/run-config.js +14 -95
  125. package/run/run-config.js.map +1 -1
  126. package/run/run-coverage.js +47 -0
  127. package/run/run-coverage.js.map +1 -0
  128. package/run/run-discovery.js +1 -2
  129. package/run/run-discovery.js.map +1 -1
  130. package/run/run-empty-shard.js +3 -4
  131. package/run/run-empty-shard.js.map +1 -1
  132. package/run/run-engine-selection.d.ts +1 -1
  133. package/run/run-engine-selection.d.ts.map +1 -1
  134. package/run/run-errors.d.ts +3 -0
  135. package/run/run-errors.d.ts.map +1 -1
  136. package/run/run-errors.js +6 -0
  137. package/run/run-errors.js.map +1 -1
  138. package/run/run-execution-config.d.ts +28 -0
  139. package/run/run-execution-config.d.ts.map +1 -0
  140. package/run/run-facts.js +2 -0
  141. package/run/run-facts.js.map +1 -1
  142. package/run/run-filter-grammar.d.ts +1 -1
  143. package/run/run-filter-grammar.d.ts.map +1 -1
  144. package/run/run-if-main-options.d.ts +0 -5
  145. package/run/run-if-main-options.d.ts.map +1 -1
  146. package/run/run-if-main-options.js +0 -16
  147. package/run/run-if-main-options.js.map +1 -1
  148. package/run/run-if-main-profile.d.ts +1 -1
  149. package/run/run-if-main-profile.d.ts.map +1 -1
  150. package/run/run-if-main-profile.js +1 -11
  151. package/run/run-if-main-profile.js.map +1 -1
  152. package/run/run-if-main.d.ts +2 -10
  153. package/run/run-if-main.d.ts.map +1 -1
  154. package/run/run-if-main.js +56 -62
  155. package/run/run-if-main.js.map +1 -1
  156. package/run/run-in-process-execution.js +3 -3
  157. package/run/run-in-process-execution.js.map +1 -1
  158. package/run/run-input-resolution.js +11 -2
  159. package/run/run-input-resolution.js.map +1 -1
  160. package/run/run-isolated-command.js +46 -20
  161. package/run/run-isolated-command.js.map +1 -1
  162. package/run/run-isolated-process.js +68 -101
  163. package/run/run-isolated-process.js.map +1 -1
  164. package/run/run-local-command.js +132 -0
  165. package/run/run-local-command.js.map +1 -0
  166. package/run/run-local-execution.js +7 -10
  167. package/run/run-local-execution.js.map +1 -1
  168. package/run/run-local-resolution.js +10 -5
  169. package/run/run-local-resolution.js.map +1 -1
  170. package/run/run-local-test-plan.js +6 -1
  171. package/run/run-local-test-plan.js.map +1 -1
  172. package/run/run-orchestrator.d.ts +6 -0
  173. package/run/run-orchestrator.d.ts.map +1 -1
  174. package/run/run-orchestrator.entry-point.d.ts +1 -2
  175. package/run/run-orchestrator.entry-point.d.ts.map +1 -1
  176. package/run/run-orchestrator.entry-point.js +4 -4
  177. package/run/run-orchestrator.entry-point.js.map +1 -1
  178. package/run/run-orchestrator.js +11 -4
  179. package/run/run-orchestrator.js.map +1 -1
  180. package/run/run-ordering.js +36 -0
  181. package/run/run-ordering.js.map +1 -0
  182. package/run/run-request-types.d.ts +89 -0
  183. package/run/run-request-types.d.ts.map +1 -0
  184. package/run/run-selection-filters.d.ts +7 -2
  185. package/run/run-selection-filters.d.ts.map +1 -1
  186. package/run/run-selection-filters.js +114 -15
  187. package/run/run-selection-filters.js.map +1 -1
  188. package/run/run-selection.js +10 -50
  189. package/run/run-selection.js.map +1 -1
  190. package/run/run-supervised-process.js +109 -0
  191. package/run/run-supervised-process.js.map +1 -0
  192. package/run/run-support.js +28 -0
  193. package/run/run-support.js.map +1 -1
  194. package/run/run-test-plan.js +13 -5
  195. package/run/run-test-plan.js.map +1 -1
  196. package/run/run-types.d.ts +33 -96
  197. package/run/run-types.d.ts.map +1 -1
  198. package/run/run-types.js +0 -18
  199. package/run/run-types.js.map +1 -1
  200. package/run/run-validation.js +1 -1
  201. package/run/run-validation.js.map +1 -1
  202. package/run/run.d.ts +10 -0
  203. package/run/run.d.ts.map +1 -0
  204. package/run/run.js +27 -54
  205. package/run/run.js.map +1 -1
  206. package/run/runtime-matrix-expansion.js +7 -0
  207. package/run/runtime-matrix-expansion.js.map +1 -1
  208. package/run/supervised-child-process.d.ts +24 -2
  209. package/run/supervised-child-process.d.ts.map +1 -1
  210. package/run/supervised-child-process.js +40 -1
  211. package/run/supervised-child-process.js.map +1 -1
  212. package/run/supervised-child-test-plan.js +1 -0
  213. package/run/supervised-child-test-plan.js.map +1 -1
  214. package/run/supervised-child.js +2 -5
  215. package/run/supervised-child.js.map +1 -1
  216. package/run/supervised-protocol.js +2 -7
  217. package/run/supervised-protocol.js.map +1 -1
  218. package/run/supervised-run-collection.js +2 -0
  219. package/run/supervised-run-collection.js.map +1 -1
  220. package/run/supervised-run-runtime.js +4 -105
  221. package/run/supervised-run-runtime.js.map +1 -1
  222. package/run/supervised-run-state.d.ts +4 -0
  223. package/run/supervised-run-state.d.ts.map +1 -1
  224. package/run/supervised-run-state.js +22 -0
  225. package/run/supervised-run-state.js.map +1 -1
  226. package/run/supervised-run.js +11 -79
  227. package/run/supervised-run.js.map +1 -1
  228. package/run/work-distribution-config.js +1 -1
  229. package/run/work-distribution-config.js.map +1 -1
  230. package/run/work-unit-planning.js +1 -1
  231. package/run/work-unit-planning.js.map +1 -1
  232. package/run/worker-pool-command.js +3 -0
  233. package/run/worker-pool-command.js.map +1 -1
  234. package/run/worker-pool-hedged-arbitration.js +3 -1
  235. package/run/worker-pool-hedged-arbitration.js.map +1 -1
  236. package/run/worker-pool-protocol.js.map +1 -1
  237. package/run/worker-pool-task-events.js +7 -5
  238. package/run/worker-pool-task-events.js.map +1 -1
  239. package/run/worker-pool-worker-plan.js +1 -0
  240. package/run/worker-pool-worker-plan.js.map +1 -1
  241. package/run/worker-pool-worker.js +2 -5
  242. package/run/worker-pool-worker.js.map +1 -1
  243. package/sbom.cdx.json +72 -4
  244. package/run/default-run-engine.d.ts +0 -3
  245. package/run/default-run-engine.d.ts.map +0 -1
  246. package/run/direct-runtime-policy.js +0 -24
  247. package/run/direct-runtime-policy.js.map +0 -1
  248. package/run/resource-usage.d.ts +0 -17
  249. package/run/resource-usage.d.ts.map +0 -1
  250. package/run/run-if-main-facts.js +0 -95
  251. package/run/run-if-main-facts.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import type { NonEmptyReadonlyArray } from '../assertion-protocol/assertion-node-shape.ts';
2
+ import type { RuntimeId, WorkloadId } from './identity.ts';
3
+ export type CoverageMetric = {
4
+ readonly covered: number;
5
+ readonly total: number;
6
+ };
7
+ export type CoverageReportFile = {
8
+ readonly format: 'html' | 'json' | 'lcov' | 'text' | 'v8';
9
+ readonly path: string;
10
+ };
11
+ export type CoverageThresholdFailure = {
12
+ readonly actualPercentage: number;
13
+ readonly metric: 'branches' | 'functions' | 'lines';
14
+ readonly requiredPercentage: number;
15
+ };
16
+ export type CoverageRunnerErrorCause = {
17
+ readonly error: unknown;
18
+ readonly kind: 'coverage-operation';
19
+ readonly phase: 'collect' | 'dispose' | 'report' | 'setup';
20
+ } | {
21
+ readonly failures: NonEmptyReadonlyArray<CoverageThresholdFailure>;
22
+ readonly kind: 'coverage-threshold';
23
+ };
24
+ export type CoverageArtifactPayload = {
25
+ readonly completeness: 'complete';
26
+ readonly directory: string;
27
+ readonly kind: 'coverage';
28
+ readonly rawDataDirectory: string;
29
+ readonly reports: readonly CoverageReportFile[];
30
+ readonly summary: {
31
+ readonly branches: CoverageMetric;
32
+ readonly functions: CoverageMetric;
33
+ readonly lines: CoverageMetric;
34
+ };
35
+ };
36
+ export type CoverageArtifact = {
37
+ readonly id: {
38
+ readonly runtimes: readonly RuntimeId[];
39
+ readonly scope: {
40
+ readonly kind: 'run';
41
+ };
42
+ readonly sequence: number;
43
+ readonly subtype: 'coverage';
44
+ readonly workload: WorkloadId | null;
45
+ };
46
+ readonly payload: CoverageArtifactPayload;
47
+ readonly source: 'v8-native';
48
+ };
49
+ //# sourceMappingURL=coverage-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-artifact.d.ts","sourceRoot":"","sources":["../../../../source/engine/coverage-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC9D,GAAG;IACA,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;IACnE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;KAClC,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,EAAE,EAAE;QACT,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;SAAE,CAAC;QAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC"}
@@ -4,7 +4,10 @@ import type { RunResourceUsageTracker, RunResult } from './run-result.ts';
4
4
  import type { ExecuteTimeoutPolicy, ExecutionSupervisionDependencies } from './execution-supervision.ts';
5
5
  import type { ExecuteResourceBudgets } from './execution-resource-budget-breach.ts';
6
6
  export type ExecuteExecution = {
7
- readonly mode: 'concurrent-in-process' | 'serial-in-process';
7
+ readonly maxConcurrency: number | 'unlimited';
8
+ readonly mode: 'concurrent-in-process';
9
+ } | {
10
+ readonly mode: 'serial-in-process';
8
11
  };
9
12
  export type ExecuteResultFinalizer = (result: RunResult) => Promise<RunResult>;
10
13
  export type ExecuteOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"execution-options.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EACR,oBAAoB,EACpB,gCAAgC,EACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IACpD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,KAAK,aAAa,GAAG,WAAW,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC,CAAC;AAiCpF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,wBAAwB,CAExG"}
1
+ {"version":3,"file":"execution-options.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EACR,oBAAoB,EACpB,gCAAgC,EACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;CAC1C,GAAG;IACA,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IACpD,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,KAAK,aAAa,GAAG,WAAW,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC,CAAC;AAiCpF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,wBAAwB,CAExG"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-options.js","sourceRoot":"","sources":["../../../../source/engine/execution-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAA8B,MAAM,sBAAsB,CAAC;AAoC7F,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,UAAU,GAA2B,KAAK,UAAU,UAAU,CAAC,MAAM;IACvE,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAS,qBAAqB;IAC1B,OAAO;QACH,SAAS,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACxC,cAAc,EAAE,UAAU;QAC1B,cAAc,EAAE,yBAAyB,EAAE;QAC3C,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,IAAI;QAC1B,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;QAC9B,aAAa,EAAE,IAAI;KACtB,CAAC;AACN,CAAC;AAED,SAAS,kCAAkC,CAAC,OAAuB;IAC/D,OAAO;QACH,GAAG,OAAO;QACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,UAAU;QACpD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,yBAAyB,EAAE;QACrE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;KAC/C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAmC;IAC1E,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;AACzG,CAAC"}
1
+ {"version":3,"file":"execution-options.js","sourceRoot":"","sources":["../../../../source/engine/execution-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAA8B,MAAM,sBAAsB,CAAC;AAuC7F,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,UAAU,GAA2B,KAAK,UAAU,UAAU,CAAC,MAAM;IACvE,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAS,qBAAqB;IAC1B,OAAO;QACH,SAAS,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACxC,cAAc,EAAE,UAAU;QAC1B,cAAc,EAAE,yBAAyB,EAAE;QAC3C,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,IAAI;QAC1B,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;QAC9B,aAAa,EAAE,IAAI;KACtB,CAAC;AACN,CAAC;AAED,SAAS,kCAAkC,CAAC,OAAuB;IAC/D,OAAO;QACH,GAAG,OAAO;QACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,UAAU;QACpD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,yBAAyB,EAAE;QACrE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;KAC/C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAmC;IAC1E,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;AACzG,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Clock } from '@enormora/clock';
2
+ import type { PerTestResult, RunnerError } from './run-result.ts';
3
+ import type { TestPlanCase } from './test-plan.ts';
4
+ export type ExecutionConcurrentCase = {
5
+ readonly result: PerTestResult;
6
+ readonly runnerErrors: readonly RunnerError[];
7
+ readonly durationMicroseconds: number;
8
+ };
9
+ export type CaseCompletion = {
10
+ readonly complete: (executedCase: ExecutionConcurrentCase) => void;
11
+ readonly promise: Promise<ExecutionConcurrentCase>;
12
+ };
13
+ export type ActiveCase = {
14
+ readonly abort: () => void;
15
+ readonly completion: CaseCompletion;
16
+ readonly hardTimeout: ReturnType<Clock['setTimeout']> | null;
17
+ readonly startedAtMicroseconds: number;
18
+ readonly testCase: TestPlanCase;
19
+ };
20
+ export type ExecutionSupervision = {
21
+ readonly acceptsNewCases: () => boolean;
22
+ readonly activeCases: ReadonlyMap<string, ActiveCase>;
23
+ readonly addActiveCase: (key: string, activeCase: ActiveCase) => void;
24
+ readonly recordRunnerError: (error: RunnerError) => void;
25
+ readonly removeActiveCase: (key: string) => void;
26
+ readonly runnerErrors: readonly RunnerError[];
27
+ readonly stopAcceptingCases: () => void;
28
+ };
29
+ export declare function createExecutionSupervision(): ExecutionSupervision;
30
+ //# sourceMappingURL=execution-supervision-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-supervision-state.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution-supervision-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAC3C,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,oBAAoB,CAwBjE"}
@@ -0,0 +1,25 @@
1
+ export function createExecutionSupervision() {
2
+ const activeCases = new Map();
3
+ const runnerErrors = [];
4
+ let acceptsNewCases = true;
5
+ return {
6
+ acceptsNewCases() {
7
+ return acceptsNewCases;
8
+ },
9
+ activeCases,
10
+ addActiveCase(key, activeCase) {
11
+ activeCases.set(key, activeCase);
12
+ },
13
+ recordRunnerError(error) {
14
+ runnerErrors.push(error);
15
+ },
16
+ removeActiveCase(key) {
17
+ activeCases.delete(key);
18
+ },
19
+ runnerErrors,
20
+ stopAcceptingCases() {
21
+ acceptsNewCases = false;
22
+ }
23
+ };
24
+ }
25
+ //# sourceMappingURL=execution-supervision-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-supervision-state.js","sourceRoot":"","sources":["../../../../source/engine/execution-supervision-state.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,0BAA0B;IACtC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAClD,MAAM,YAAY,GAAmD,EAAE,CAAC;IACxE,IAAI,eAAe,GAAG,IAAI,CAAC;IAE3B,OAAO;QACH,eAAe;YACX,OAAO,eAAe,CAAC;QAC3B,CAAC;QACD,WAAW;QACX,aAAa,CAAC,GAAG,EAAE,UAAU;YACzB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;QACD,iBAAiB,CAAC,KAAK;YACnB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,gBAAgB,CAAC,GAAG;YAChB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,YAAY;QACZ,kBAAkB;YACd,eAAe,GAAG,KAAK,CAAC;QAC5B,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,41 +1,21 @@
1
1
  import type { Clock } from '@enormora/clock';
2
2
  import { type TestRuntimePolicy } from './case-execution.ts';
3
- import { type PerTestResult, type ResourceUsageSnapshot, type RunnerError } from './run-result.ts';
3
+ import { type ResourceUsageSnapshot } from './run-result.ts';
4
4
  import type { TestPlanCase } from './test-plan.ts';
5
5
  import { type ExecuteResourceBudgets } from './execution-resource-budget-breach.ts';
6
6
  import type { ExecutionGlobalErrorObserver } from './execution-global-error-observer.ts';
7
+ import { type ExecutionConcurrentCase, type ExecutionSupervision as ExecutionSupervisionState } from './execution-supervision-state.ts';
7
8
  export type ExecuteTimeoutPolicy = {
8
9
  readonly hardTimeoutMilliseconds: number;
9
10
  readonly timeoutMilliseconds: number;
10
11
  };
11
- export type ConcurrentCase = {
12
- readonly result: PerTestResult;
13
- readonly runnerErrors: readonly RunnerError[];
14
- readonly durationMicroseconds: number;
15
- };
12
+ export type ConcurrentCase = ExecutionConcurrentCase;
16
13
  export type ExecutionSupervisionDependencies = {
17
14
  readonly globalErrorObserver: ExecutionGlobalErrorObserver;
18
15
  readonly runtimePolicy?: TestRuntimePolicy | null;
19
16
  readonly wallClock: Clock;
20
17
  };
21
- type CaseCompletion = {
22
- readonly complete: (executedCase: ConcurrentCase) => void;
23
- readonly promise: Promise<ConcurrentCase>;
24
- };
25
- type ActiveCase = {
26
- readonly abort: () => void;
27
- readonly completion: CaseCompletion;
28
- readonly hardTimeout: ReturnType<Clock['setTimeout']> | null;
29
- readonly startedAtMicroseconds: number;
30
- readonly testCase: TestPlanCase;
31
- };
32
- export type ExecutionSupervision = {
33
- readonly activeCases: ReadonlyMap<string, ActiveCase>;
34
- readonly addActiveCase: (key: string, activeCase: ActiveCase) => void;
35
- readonly recordRunnerError: (error: RunnerError) => void;
36
- readonly removeActiveCase: (key: string) => void;
37
- readonly runnerErrors: readonly RunnerError[];
38
- };
18
+ export type ExecutionSupervision = ExecutionSupervisionState;
39
19
  type ResourceUsageSampleInput = {
40
20
  readonly budgets: ExecuteResourceBudgets | null | undefined;
41
21
  readonly dependencies: ExecutionSupervisionDependencies;
@@ -43,7 +23,7 @@ type ResourceUsageSampleInput = {
43
23
  readonly sample: ResourceUsageSnapshot;
44
24
  readonly supervision: ExecutionSupervision;
45
25
  };
46
- export declare function createExecutionSupervision(): ExecutionSupervision;
26
+ export declare const createExecutionSupervision: () => ExecutionSupervision;
47
27
  export declare function recordResourceUsageSample(input: ResourceUsageSampleInput): boolean;
48
28
  export declare function executeCaseBody(testCase: TestPlanCase, timeoutPolicy: ExecuteTimeoutPolicy | null | undefined, supervision: ExecutionSupervision, dependencies: ExecutionSupervisionDependencies): Promise<ConcurrentCase>;
49
29
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"execution-supervision.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution-supervision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-supervision.d.ts","sourceRoot":"","sources":["../../../../source/engine/execution-supervision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAIH,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAIH,KAAK,qBAAqB,EAG7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAEH,KAAK,sBAAsB,EAE9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAIH,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,IAAI,yBAAyB,EACzD,MAAM,kCAAkC,CAAC;AAI1C,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACxC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACrD,MAAM,MAAM,gCAAgC,GAAG;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC7B,CAAC;AAeF,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAwB7D,KAAK,wBAAwB,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,YAAY,EAAE,gCAAgC,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,oBAAsD,CAAC;AA2atG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAUlF;AAED,wBAAsB,eAAe,CACjC,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACtD,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,gCAAgC,GAC/C,OAAO,CAAC,cAAc,CAAC,CAezB"}
@@ -2,23 +2,9 @@ import { invalidTimeoutControlFailure, runTestCase, timeoutFailure } from "./cas
2
2
  import { workIdentityKey } from "./identity.js";
3
3
  import { isPermissionDeniedRunnerError, verdictFromOutcome } from "./run-result.js";
4
4
  import { findResourceBudgetBreach } from "./execution-resource-budget-breach.js";
5
- export function createExecutionSupervision() {
6
- const activeCases = new Map();
7
- const runnerErrors = [];
8
- return {
9
- activeCases,
10
- addActiveCase(key, activeCase) {
11
- activeCases.set(key, activeCase);
12
- },
13
- recordRunnerError(error) {
14
- runnerErrors.push(error);
15
- },
16
- removeActiveCase(key) {
17
- activeCases.delete(key);
18
- },
19
- runnerErrors
20
- };
21
- }
5
+ import { createExecutionSupervision as createExecutionSupervisionState } from "./execution-supervision-state.js";
6
+ const microsecondsPerMillisecond = 1000;
7
+ export const createExecutionSupervision = createExecutionSupervisionState;
22
8
  function createCaseCompletion() {
23
9
  const { promise, resolve } = Promise.withResolvers();
24
10
  return {
@@ -162,6 +148,7 @@ function crashError(cause) {
162
148
  };
163
149
  }
164
150
  function completeActiveCasesAs(supervision, verdict, dependencies) {
151
+ supervision.stopAcceptingCases();
165
152
  for (const [key, activeCase] of supervision.activeCases) {
166
153
  supervision.removeActiveCase(key);
167
154
  activeCase.abort();
@@ -181,11 +168,13 @@ function completeActiveCasesWithCrash(supervision, dependencies) {
181
168
  }
182
169
  }
183
170
  function completeActiveCasesAfterGlobalError(supervision, dependencies) {
171
+ supervision.stopAcceptingCases();
184
172
  if (supervision.activeCases.size > 0) {
185
173
  completeActiveCasesAs(supervision, 'crashed', dependencies);
186
174
  }
187
175
  }
188
176
  function completeActiveCasesWithResourceExhaustion(breach, supervision, dependencies) {
177
+ supervision.stopAcceptingCases();
189
178
  const cause = {
190
179
  ...breach,
191
180
  activeCases: activeCaseIds(supervision.activeCases),
@@ -213,8 +202,9 @@ async function runCaseWithSoftTimeout(input) {
213
202
  }, input.timeoutMilliseconds);
214
203
  const executedCase = await runTestCaseWithPolicy(input.testCase, input.controller, input.supervision, input.dependencies);
215
204
  clearTimer(input.dependencies.wallClock, softTimeout);
216
- if (timing.timedOut) {
217
- return resultWithTimeoutFailure(executedCase, input.timeoutMilliseconds, executedCase.durationMicroseconds);
205
+ const deadlineMicroseconds = input.timeoutMilliseconds * microsecondsPerMillisecond;
206
+ if (timing.timedOut || executedCase.durationMicroseconds >= deadlineMicroseconds) {
207
+ return resultWithTimeoutFailure(executedCase, input.timeoutMilliseconds, executedCase.durationMicroseconds / microsecondsPerMillisecond);
218
208
  }
219
209
  return executedCase;
220
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"execution-supervision.js","sourceRoot":"","sources":["../../../../source/engine/execution-supervision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-supervision.js","sourceRoot":"","sources":["../../../../source/engine/execution-supervision.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import pLimit from 'p-limit';
1
2
  import { caseWithAsyncLeakPolicy, concurrentRunActiveResourceLeak } from "./execution-async-leak-policy.js";
2
3
  import { executeCaseBody } from "./execution-supervision.js";
3
4
  import { createReporterEventQueue, reportSuiteTransition } from "./reporter-event-queue.js";
4
5
  import { reportRunnerErrorEvents, unreportedRunnerErrors } from "./runner-error-reporting.js";
5
- async function reportTestStart(testCase, attempt, context) {
6
- return await context.reporterDelivery.reportEvent({
6
+ async function reportTestStart(testCase, attempt, reporter) {
7
+ return await reporter.reportEvent({
7
8
  attempt,
8
9
  case: testCase.id,
9
10
  definitionLocations: testCase.definitionLocations,
@@ -48,7 +49,7 @@ async function executeTimedLeakCheckedCase(input) {
48
49
  };
49
50
  }
50
51
  async function executeCase(input) {
51
- const startErrors = await reportTestStart(input.testCase, input.attempt, input.context);
52
+ const startErrors = await reportTestStart(input.testCase, input.attempt, input.context.reporterDelivery);
52
53
  const { endedAtMicroseconds, leakCheckedCase, startedAtMicroseconds } = await executeTimedLeakCheckedCase(input);
53
54
  const caseRunnerErrors = [
54
55
  ...input.context.dependencies.globalErrorObserver.takeErrors(),
@@ -122,7 +123,8 @@ async function serialTestPlanReporterErrors(input, state) {
122
123
  async function executeTestPlanCases(input) {
123
124
  let state = initialSerialCaseExecutionState();
124
125
  for (const testCase of input.testPlan.cases) {
125
- if (input.context.dependencies.globalErrorObserver.hasFatalError()) {
126
+ if (input.context.dependencies.globalErrorObserver.hasFatalError() ||
127
+ !input.supervision.acceptsNewCases()) {
126
128
  break;
127
129
  }
128
130
  state = await executeSerialTestPlanCase(input, state, testCase);
@@ -133,22 +135,48 @@ async function executeTestPlanCases(input) {
133
135
  testExecutionWallTimeMicroseconds: testExecutionWallTimeMicroseconds(state.timingWindows)
134
136
  };
135
137
  }
136
- async function reportConcurrentCaseStarts(input) {
137
- let reporterErrors = [];
138
+ function createConcurrentCaseStartReporter(reportQueue) {
138
139
  let currentSuitePath = [];
139
- for (const testCase of input.testPlan.cases) {
140
- const suiteErrors = await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, testCase.suitePath);
141
- const startErrors = await reportTestStart(testCase, 0, input.context);
142
- currentSuitePath = testCase.suitePath;
143
- reporterErrors = [...reporterErrors, ...suiteErrors, ...startErrors];
140
+ const admitStartReport = pLimit(1);
141
+ const reporterErrors = [];
142
+ return {
143
+ async finish() {
144
+ await admitStartReport(async function waitForStartReports() {
145
+ return undefined;
146
+ });
147
+ reporterErrors.push(...await reportSuiteTransition(reportQueue, currentSuitePath, []));
148
+ return reporterErrors;
149
+ },
150
+ async start(testCase, canStart) {
151
+ return await admitStartReport(async function reportAdmittedCaseStart() {
152
+ if (!canStart()) {
153
+ return false;
154
+ }
155
+ const previousSuitePath = currentSuitePath;
156
+ currentSuitePath = testCase.suitePath;
157
+ const errors = [
158
+ ...await reportSuiteTransition(reportQueue, previousSuitePath, testCase.suitePath),
159
+ ...await reportTestStart(testCase, 0, reportQueue)
160
+ ];
161
+ reporterErrors.push(...errors);
162
+ return true;
163
+ });
164
+ }
165
+ };
166
+ }
167
+ function createCaseAdmission(maxConcurrency) {
168
+ if (maxConcurrency === 'unlimited') {
169
+ return async function admitEveryCase(run) {
170
+ return await run();
171
+ };
144
172
  }
145
- return [
146
- ...reporterErrors,
147
- ...await reportSuiteTransition(input.context.reporterDelivery, currentSuitePath, [])
148
- ];
173
+ const admit = pLimit(maxConcurrency);
174
+ return async function admitBoundedCase(run) {
175
+ return await admit(run);
176
+ };
149
177
  }
150
178
  async function reportConcurrentCaseEnd(testCase, executedCase, reportQueue) {
151
- return await reportQueue.report({
179
+ return await reportQueue.reportEvent({
152
180
  attempt: 0,
153
181
  artifacts: [],
154
182
  case: testCase.id,
@@ -166,7 +194,7 @@ async function reportConcurrentCaseRunnerErrors(runnerErrors, reportQueue) {
166
194
  for (const error of runnerErrors) {
167
195
  reporterErrors = [
168
196
  ...reporterErrors,
169
- ...await reportQueue.report({
197
+ ...await reportQueue.reportEvent({
170
198
  error,
171
199
  kind: 'runner-error'
172
200
  })
@@ -174,74 +202,83 @@ async function reportConcurrentCaseRunnerErrors(runnerErrors, reportQueue) {
174
202
  }
175
203
  return reporterErrors;
176
204
  }
205
+ function concurrentCaseRunnerErrors(input, leakCheckedCase) {
206
+ return [
207
+ ...input.context.dependencies.globalErrorObserver.takeErrors(),
208
+ ...leakCheckedCase.executedCase.runnerErrors,
209
+ ...leakCheckedCase.runnerErrors
210
+ ];
211
+ }
212
+ async function executeStartedConcurrentCase(input, testCase) {
213
+ const timedCase = await executeTimedLeakCheckedCase({
214
+ attempt: 0,
215
+ context: input.context,
216
+ options: input.options,
217
+ supervision: input.supervision,
218
+ testCase
219
+ });
220
+ const runnerErrors = concurrentCaseRunnerErrors(input, timedCase.leakCheckedCase);
221
+ for (const runnerError of runnerErrors) {
222
+ input.supervision.recordRunnerError(runnerError);
223
+ }
224
+ return {
225
+ executionWindow: {
226
+ endedAtMicroseconds: timedCase.endedAtMicroseconds,
227
+ startedAtMicroseconds: timedCase.startedAtMicroseconds
228
+ },
229
+ reporterErrors: [
230
+ ...await reportConcurrentCaseRunnerErrors(runnerErrors, input.reportQueue),
231
+ ...await reportConcurrentCaseEnd(testCase, timedCase.leakCheckedCase.executedCase, input.reportQueue)
232
+ ],
233
+ result: timedCase.leakCheckedCase.executedCase.result,
234
+ runnerErrors
235
+ };
236
+ }
237
+ function canStartConcurrentCase(input) {
238
+ const blocked = [
239
+ input.context.dependencies.globalErrorObserver.hasFatalError(),
240
+ !input.supervision.acceptsNewCases()
241
+ ];
242
+ return !blocked.includes(true);
243
+ }
177
244
  async function executeConcurrentCases(input) {
178
- const endReporterErrors = [];
179
- const reportedRunnerErrors = [];
180
- const caseExecutions = input.testPlan.cases.map(async function executeCaseConcurrently(testCase) {
181
- const startedAtMicroseconds = Number(input.context.dependencies.wallClock.currentMonotonicMicroseconds);
182
- const executedCase = await input.context.dependencies.asyncLeakMonitor.runCase(testCase, async function runCase() {
183
- return await input.context.dependencies.globalErrorObserver.runCase(testCase, async function runObservedCase() {
184
- return await executeCaseBody(testCase, input.options.timeoutPolicy, input.supervision, input.context.dependencies);
245
+ const { execution } = input.options;
246
+ const admitCase = createCaseAdmission(execution.maxConcurrency);
247
+ const startReporter = createConcurrentCaseStartReporter(input.reportQueue);
248
+ const caseExecutions = input.testPlan.cases.map(async function scheduleConcurrentCase(testCase) {
249
+ return admitCase(async function executeAdmittedCase() {
250
+ const started = await startReporter.start(testCase, function checkCaseAdmission() {
251
+ return canStartConcurrentCase(input);
185
252
  });
253
+ return started ? await executeStartedConcurrentCase(input, testCase) : null;
186
254
  });
187
- const leakCheckedCase = await caseWithAsyncLeakPolicy({
188
- activeResourceTypesBefore: [],
189
- dependencies: input.context.dependencies,
190
- executedCase,
191
- includeActiveResourceLeaks: false,
192
- testCase
193
- });
194
- const endedAtMicroseconds = Number(input.context.dependencies.wallClock.currentMonotonicMicroseconds);
195
- const caseRunnerErrors = [
196
- ...input.context.dependencies.globalErrorObserver.takeErrors(),
197
- ...leakCheckedCase.executedCase.runnerErrors,
198
- ...leakCheckedCase.runnerErrors
199
- ];
200
- for (const runnerError of caseRunnerErrors) {
201
- input.supervision.recordRunnerError(runnerError);
202
- }
203
- endReporterErrors.push(...await reportConcurrentCaseRunnerErrors(caseRunnerErrors, input.reportQueue), ...await reportConcurrentCaseEnd(testCase, leakCheckedCase.executedCase, input.reportQueue));
204
- reportedRunnerErrors.push(...caseRunnerErrors);
205
- return {
206
- executedCase: leakCheckedCase.executedCase,
207
- executionWindow: { endedAtMicroseconds, startedAtMicroseconds }
208
- };
209
255
  });
210
- const executedCases = await Promise.all(caseExecutions);
256
+ const scheduledCases = await Promise.all(caseExecutions);
257
+ const executedCases = scheduledCases.filter(function isExecutedCase(executedCase) {
258
+ return executedCase !== null;
259
+ });
211
260
  return {
212
- endReporterErrors,
261
+ endReporterErrors: executedCases.flatMap(function toReporterErrors(executedCase) {
262
+ return executedCase.reporterErrors;
263
+ }),
213
264
  perTest: executedCases.map(function toPerTest(executedCase) {
214
- return executedCase.executedCase.result;
265
+ return executedCase.result;
266
+ }),
267
+ reportedRunnerErrors: executedCases.flatMap(function toRunnerErrors(executedCase) {
268
+ return executedCase.runnerErrors;
215
269
  }),
216
- reportedRunnerErrors,
217
270
  runnerErrors: input.supervision.runnerErrors,
271
+ startReporterErrors: await startReporter.finish(),
218
272
  testExecutionWallTimeMicroseconds: testExecutionWallTimeMicroseconds(executedCases.map(function toWindow(executedCase) {
219
273
  return executedCase.executionWindow;
220
274
  }))
221
275
  };
222
276
  }
223
- async function fatalConcurrentStartResult(input, reporterErrors) {
224
- const pendingRunnerErrors = input.context.dependencies.globalErrorObserver.takeErrors();
225
- const pendingRunnerErrorNotifications = await reportRunnerErrorEvents(input.context.reporterDelivery, pendingRunnerErrors);
226
- return {
227
- perTest: [],
228
- reporterErrors: [
229
- ...reporterErrors,
230
- ...pendingRunnerErrors,
231
- ...pendingRunnerErrorNotifications
232
- ],
233
- testExecutionWallTimeMicroseconds: 0
234
- };
235
- }
236
- async function executeConcurrentTestPlanCases(input) {
237
- const reporterErrors = await reportConcurrentCaseStarts(input);
238
- if (input.context.dependencies.globalErrorObserver.hasFatalError()) {
239
- return await fatalConcurrentStartResult(input, reporterErrors);
240
- }
277
+ async function executeConcurrentTestPlanCases(input, execution) {
241
278
  const activeResourceTypesBefore = input.context.dependencies.readActiveResourceTypes();
242
279
  const concurrentCaseExecution = await executeConcurrentCases({
243
280
  context: input.context,
244
- options: input.options,
281
+ options: { ...input.options, execution },
245
282
  reportQueue: createReporterEventQueue(input.context.reporterDelivery),
246
283
  supervision: input.supervision,
247
284
  testPlan: input.testPlan
@@ -255,7 +292,7 @@ async function executeConcurrentTestPlanCases(input) {
255
292
  return {
256
293
  perTest: concurrentCaseExecution.perTest,
257
294
  reporterErrors: [
258
- ...reporterErrors,
295
+ ...concurrentCaseExecution.startReporterErrors,
259
296
  ...runnerErrors,
260
297
  ...pendingRunnerErrorNotifications,
261
298
  ...concurrentCaseExecution.endReporterErrors
@@ -265,7 +302,7 @@ async function executeConcurrentTestPlanCases(input) {
265
302
  }
266
303
  export async function executeTestPlanCasesWithMode(input) {
267
304
  if (input.options.execution.mode === 'concurrent-in-process') {
268
- return await executeConcurrentTestPlanCases(input);
305
+ return await executeConcurrentTestPlanCases(input, input.options.execution);
269
306
  }
270
307
  return await executeTestPlanCases(input);
271
308
  }