@overkill-dev/run 0.0.33 → 0.0.35

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 (113) hide show
  1. package/assertion-protocol/source-location.d.ts.map +1 -1
  2. package/assertion-protocol/source-location.js +2 -0
  3. package/assertion-protocol/source-location.js.map +1 -1
  4. package/engine/case-execution.d.ts.map +1 -1
  5. package/engine/case-execution.js +16 -2
  6. package/engine/case-execution.js.map +1 -1
  7. package/engine/engine.d.ts +2 -1
  8. package/engine/engine.d.ts.map +1 -1
  9. package/engine/engine.js +1 -0
  10. package/engine/engine.js.map +1 -1
  11. package/engine/execution-supervision.d.ts.map +1 -1
  12. package/engine/execution-supervision.js +3 -0
  13. package/engine/execution-supervision.js.map +1 -1
  14. package/engine/execution.d.ts.map +1 -1
  15. package/engine/execution.js +2 -0
  16. package/engine/execution.js.map +1 -1
  17. package/engine/reporter.d.ts +2 -1
  18. package/engine/reporter.d.ts.map +1 -1
  19. package/engine/reporter.js.map +1 -1
  20. package/engine/run-result.d.ts +27 -1
  21. package/engine/run-result.d.ts.map +1 -1
  22. package/engine/run-result.js.map +1 -1
  23. package/engine/test-node.d.ts +17 -1
  24. package/engine/test-node.d.ts.map +1 -1
  25. package/engine/test-node.js +33 -1
  26. package/engine/test-node.js.map +1 -1
  27. package/engine/test-plan.d.ts +3 -2
  28. package/engine/test-plan.d.ts.map +1 -1
  29. package/engine/test-plan.js +2 -2
  30. package/engine/test-plan.js.map +1 -1
  31. package/package.json +4 -2
  32. package/packages/engine/engine.entry-point.js +3 -0
  33. package/packages/engine/engine.entry-point.js.map +1 -1
  34. package/packages/reporter-line/reporter-line.entry-point.js +3 -2
  35. package/packages/reporter-line/reporter-line.entry-point.js.map +1 -1
  36. package/packages/run/command-line.entry-point.d.ts +1 -1
  37. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  38. package/packages/run/config.entry-point.d.ts +1 -1
  39. package/packages/run/config.entry-point.d.ts.map +1 -1
  40. package/packages/run/run.entry-point.d.ts +2 -2
  41. package/packages/run/run.entry-point.d.ts.map +1 -1
  42. package/readme.md +18 -6
  43. package/reporters/line-reporter.js +50 -6
  44. package/reporters/line-reporter.js.map +1 -1
  45. package/reporters/run-fact-summary.js +20 -0
  46. package/reporters/run-fact-summary.js.map +1 -0
  47. package/run/collected-run-plan.js +12 -7
  48. package/run/collected-run-plan.js.map +1 -1
  49. package/run/command-line-command.d.ts +4 -0
  50. package/run/command-line-command.d.ts.map +1 -1
  51. package/run/command-line-command.js.map +1 -1
  52. package/run/command-line-runner.js +2 -2
  53. package/run/command-line-runner.js.map +1 -1
  54. package/run/current-process-run-orchestrator.js +8 -2
  55. package/run/current-process-run-orchestrator.js.map +1 -1
  56. package/run/default-run-engine.js +1 -0
  57. package/run/default-run-engine.js.map +1 -1
  58. package/run/profile-file-glob.js.map +1 -1
  59. package/run/run-config-schema.d.ts +201 -10
  60. package/run/run-config-schema.d.ts.map +1 -1
  61. package/run/run-config-schema.js +33 -1
  62. package/run/run-config-schema.js.map +1 -1
  63. package/run/run-config.d.ts +3 -1
  64. package/run/run-config.d.ts.map +1 -1
  65. package/run/run-config.js +86 -19
  66. package/run/run-config.js.map +1 -1
  67. package/run/run-discovery.js +115 -13
  68. package/run/run-discovery.js.map +1 -1
  69. package/run/run-facts.js +4 -4
  70. package/run/run-facts.js.map +1 -1
  71. package/run/run-if-main-facts.js +14 -12
  72. package/run/run-if-main-facts.js.map +1 -1
  73. package/run/run-if-main-options.d.ts +4 -4
  74. package/run/run-if-main-options.d.ts.map +1 -1
  75. package/run/run-if-main-options.js.map +1 -1
  76. package/run/run-if-main-profile.js +114 -23
  77. package/run/run-if-main-profile.js.map +1 -1
  78. package/run/run-if-main.d.ts.map +1 -1
  79. package/run/run-if-main.js +13 -3
  80. package/run/run-if-main.js.map +1 -1
  81. package/run/run-input-resolution.js +19 -0
  82. package/run/run-input-resolution.js.map +1 -1
  83. package/run/run-list-renderer.js +67 -6
  84. package/run/run-list-renderer.js.map +1 -1
  85. package/run/run-local-test-plan.js.map +1 -1
  86. package/run/run-orchestrator.js +6 -6
  87. package/run/run-orchestrator.js.map +1 -1
  88. package/run/run-process-engine.js.map +1 -1
  89. package/run/run-seed.js +6 -0
  90. package/run/run-seed.js.map +1 -0
  91. package/run/run-selection.js +59 -5
  92. package/run/run-selection.js.map +1 -1
  93. package/run/run-support.js +38 -2
  94. package/run/run-support.js.map +1 -1
  95. package/run/run-types.d.ts +38 -7
  96. package/run/run-types.d.ts.map +1 -1
  97. package/run/run-types.js +7 -0
  98. package/run/run-types.js.map +1 -1
  99. package/run/run-validation.js +7 -2
  100. package/run/run-validation.js.map +1 -1
  101. package/run/run.js +51 -29
  102. package/run/run.js.map +1 -1
  103. package/run/supervised-child-process.js +26 -1
  104. package/run/supervised-child-process.js.map +1 -1
  105. package/run/supervised-child.js +16 -4
  106. package/run/supervised-child.js.map +1 -1
  107. package/run/supervised-run-runtime.js +60 -14
  108. package/run/supervised-run-runtime.js.map +1 -1
  109. package/run/supervised-run-state.js +75 -0
  110. package/run/supervised-run-state.js.map +1 -1
  111. package/run/supervised-run.js +24 -9
  112. package/run/supervised-run.js.map +1 -1
  113. package/sbom.cdx.json +21 -4
@@ -1,4 +1,4 @@
1
- import { glob, realpath } from 'node:fs/promises';
1
+ import { glob, realpath, stat } from 'node:fs/promises';
2
2
  import { relative, resolve } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { loadRunConfig, RunConfigError } from "./run-config.js";
@@ -34,11 +34,22 @@ async function matchedFiles(pattern, cwd) {
34
34
  }
35
35
  return files;
36
36
  }
37
- async function profileIncludesFile(profile, file, cwd) {
38
- if (profile.files === null) {
39
- return false;
37
+ async function matchedProfilePatternFiles(profileFiles, cwd) {
38
+ const files = [];
39
+ const matches = glob(profileFiles.include, { cwd, exclude: profileFiles.exclude, followSymlinks: false });
40
+ for await (const file of matches) {
41
+ const filePath = resolve(cwd, file);
42
+ const fileStat = await stat(filePath);
43
+ if (fileStat.isFile()) {
44
+ files.push(await canonicalPath(filePath));
45
+ }
40
46
  }
41
- for (const includePattern of profile.files.include) {
47
+ return Array.from(new Set(files)).toSorted(function compareFiles(left, right) {
48
+ return left.localeCompare(right);
49
+ });
50
+ }
51
+ async function patternSetIncludesFile(profileFiles, file, cwd) {
52
+ for (const includePattern of profileFiles.include) {
42
53
  const includedFiles = await matchedFiles(includePattern, cwd);
43
54
  for (const includedFile of includedFiles) {
44
55
  if (await sameRealPath(includedFile, file)) {
@@ -48,11 +59,8 @@ async function profileIncludesFile(profile, file, cwd) {
48
59
  }
49
60
  return false;
50
61
  }
51
- async function profileExcludesFile(profile, file, cwd) {
52
- if (profile.files === null) {
53
- return false;
54
- }
55
- for (const excludePattern of profile.files.exclude) {
62
+ async function patternSetExcludesFile(profileFiles, file, cwd) {
63
+ for (const excludePattern of profileFiles.exclude) {
56
64
  const excludedFiles = await matchedFiles(excludePattern, cwd);
57
65
  for (const excludedFile of excludedFiles) {
58
66
  if (await sameRealPath(excludedFile, file)) {
@@ -62,17 +70,78 @@ async function profileExcludesFile(profile, file, cwd) {
62
70
  }
63
71
  return false;
64
72
  }
65
- async function profileMatchesFile(profile, file, cwd) {
66
- return await profileIncludesFile(profile, file, cwd) && !await profileExcludesFile(profile, file, cwd);
73
+ async function patternSetMatchesFile(profileFiles, file, cwd) {
74
+ return await patternSetIncludesFile(profileFiles, file, cwd) &&
75
+ !await patternSetExcludesFile(profileFiles, file, cwd);
67
76
  }
68
- async function matchingProfiles(config, file, cwd) {
69
- const profiles = [];
70
- for (const [name, profile] of Object.entries(config.profiles)) {
71
- if (await profileMatchesFile(profile, file, cwd)) {
72
- profiles.push({ name, profile });
77
+ function hasProfileFileSets(profileFiles) {
78
+ return profileFiles.sets !== undefined;
79
+ }
80
+ async function directProfileFileSet(name, profileFiles, cwd) {
81
+ const files = await matchedProfilePatternFiles(profileFiles, cwd);
82
+ if (files.length === 0) {
83
+ throw new RunConfigError(`Profile files.sets.${name} matched no test files.`);
84
+ }
85
+ return { files, name };
86
+ }
87
+ function directProfileSetOverlapMessage(file, cwd, firstSet, secondSet) {
88
+ return `runIfMain() profile file sets must not overlap: ${relative(cwd, file)} matched ${firstSet} and ${secondSet}.`;
89
+ }
90
+ function assertNonOverlappingDirectProfileFileSets(fileSets, cwd) {
91
+ const owners = new Map();
92
+ for (const fileSet of fileSets) {
93
+ for (const file of fileSet.files) {
94
+ const owner = owners.get(file);
95
+ if (owner !== undefined) {
96
+ throw new RunConfigError(directProfileSetOverlapMessage(file, cwd, owner, fileSet.name));
97
+ }
98
+ owners.set(file, fileSet.name);
73
99
  }
74
100
  }
75
- return profiles;
101
+ }
102
+ async function directProfileFileSets(sets, cwd) {
103
+ const fileSets = await Promise.all(Object.entries(sets).map(async function discoverFileSet([name, set]) {
104
+ return await directProfileFileSet(name, set, cwd);
105
+ }));
106
+ assertNonOverlappingDirectProfileFileSets(fileSets, cwd);
107
+ return fileSets;
108
+ }
109
+ async function profilePatternFileSetForFile(profileFiles, file, cwd) {
110
+ return await patternSetMatchesFile(profileFiles, file, cwd) ? null : undefined;
111
+ }
112
+ async function namedProfileFileSetForFile(profileFiles, file, cwd) {
113
+ const canonicalFile = await canonicalPath(file);
114
+ const fileSets = await directProfileFileSets(profileFiles.sets, cwd);
115
+ const matchedSet = fileSets.find(function includesFile(fileSet) {
116
+ return fileSet.files.includes(canonicalFile);
117
+ });
118
+ return matchedSet?.name;
119
+ }
120
+ async function profileFileSetForFile(profileFiles, file, cwd) {
121
+ if (!hasProfileFileSets(profileFiles)) {
122
+ return await profilePatternFileSetForFile(profileFiles, file, cwd);
123
+ }
124
+ return await namedProfileFileSetForFile(profileFiles, file, cwd);
125
+ }
126
+ async function selectedProfileForFile([name, profile], file, cwd) {
127
+ const profileFiles = profile.files;
128
+ if (profileFiles === null) {
129
+ return null;
130
+ }
131
+ const fileSet = await profileFileSetForFile(profileFiles, file, cwd);
132
+ if (fileSet === undefined) {
133
+ return null;
134
+ }
135
+ return { fileSet, name, profile };
136
+ }
137
+ function isSelectedDirectProfile(profile) {
138
+ return profile !== null;
139
+ }
140
+ async function matchingProfiles(config, file, cwd) {
141
+ const profiles = await Promise.all(Object.entries(config.profiles).map(async function matchProfile(entry) {
142
+ return await selectedProfileForFile(entry, file, cwd);
143
+ }));
144
+ return profiles.filter(isSelectedDirectProfile);
76
145
  }
77
146
  function ambiguousProfileMessage(file, cwd, profiles) {
78
147
  const relativeFile = relative(cwd, file);
@@ -81,16 +150,36 @@ function ambiguousProfileMessage(file, cwd, profiles) {
81
150
  });
82
151
  return `runIfMain() matched multiple profiles for "${relativeFile}": ${profileNames.join(', ')}.`;
83
152
  }
84
- function configuredMicrotest(config) {
153
+ async function configuredMicrotestFileSet(profile, file, cwd) {
154
+ if (profile.files === null) {
155
+ return null;
156
+ }
157
+ const fileSet = await profileFileSetForFile(profile.files, file, cwd);
158
+ if (profile.files.sets !== undefined && fileSet === undefined) {
159
+ throw new RunConfigError(`runIfMain() file must match exactly one profile file set for "microtest": ${relative(cwd, file)}.`);
160
+ }
161
+ return fileSet ?? null;
162
+ }
163
+ async function configuredMicrotest(config, file, cwd) {
85
164
  const profile = config.profiles.microtest;
86
- if (profile === undefined) {
165
+ if (profile?.testFamily !== 'microtest') {
87
166
  throw new RunConfigError('runIfMain() requires the configured "microtest" profile.');
88
167
  }
89
- return { name: 'microtest', profile };
168
+ const fileSet = await configuredMicrotestFileSet(profile, file, cwd);
169
+ return { fileSet, name: 'microtest', profile };
170
+ }
171
+ function assertSupportedDirectProfile(context) {
172
+ if (context.profile.testFamily === 'integration') {
173
+ throw new RunConfigError([
174
+ `runIfMain() does not support integration profile "${context.name}" yet.`,
175
+ `Use the overkill CLI with --profile ${context.name}.`
176
+ ]
177
+ .join(' '));
178
+ }
90
179
  }
91
180
  async function selectDirectProfile(config, file, cwd) {
92
181
  if (config.configPath === null) {
93
- return configuredMicrotest(config);
182
+ return await configuredMicrotest(config, file, cwd);
94
183
  }
95
184
  const matches = await matchingProfiles(config, file, cwd);
96
185
  if (matches.length > 1) {
@@ -100,16 +189,18 @@ async function selectDirectProfile(config, file, cwd) {
100
189
  if (profile !== undefined) {
101
190
  return profile;
102
191
  }
103
- return configuredMicrotest(config);
192
+ return await configuredMicrotest(config, file, cwd);
104
193
  }
105
194
  export async function resolveDirectProfile(meta, cwd) {
106
195
  const canonicalCwd = await canonicalPath(cwd);
107
196
  const file = await canonicalPath(directFilePath(meta));
108
197
  const config = await loadRunConfig({ configPath: null, cwd: canonicalCwd });
109
198
  const selectedProfile = await selectDirectProfile(config, file, canonicalCwd);
199
+ assertSupportedDirectProfile(selectedProfile);
110
200
  return {
111
201
  config,
112
202
  file,
203
+ fileSet: selectedProfile.fileSet,
113
204
  name: selectedProfile.name,
114
205
  projectRoot: canonicalCwd,
115
206
  profile: selectedProfile.profile
@@ -1 +1 @@
1
- {"version":3,"file":"run-if-main-profile.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACH,aAAa,EACb,cAAc,EAEjB,MAAM,iBAAiB,CAAC;AAczB,SAAS,cAAc,CAAC,IAA0B;IAC9C,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,UAAkB;IAC7D,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IACzC,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,GAAW;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,OAAkC,EAClC,IAAY,EACZ,GAAW;IAEX,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAE9D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,MAAM,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,OAAkC,EAClC,IAAY,EACZ,GAAW;IAEX,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAE9D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,MAAM,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,OAAkC,EAClC,IAAY,EACZ,GAAW;IAEX,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC3B,MAAuB,EACvB,IAAY,EACZ,GAAW;IAEX,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,CAAE,IAAI,EAAE,OAAO,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,IAAI,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,GAAW,EAAE,QAA0C;IAClG,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,OAAO;QAC5D,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,8CAA8C,YAAY,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtG,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;IAE1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CAAC,0DAA0D,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,MAAuB,EACvB,IAAY,EACZ,GAAW;IAEX,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAE,OAAO,CAAE,GAAG,OAAO,CAAC;IAE5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAA0B,EAC1B,GAAW;IAEX,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAE9E,OAAO;QACH,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,eAAe,CAAC,OAAO;KACnC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"run-if-main-profile.js","sourceRoot":"","sources":["../../../../source/run/run-if-main-profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,OAAO,EAOH,KAAK,gBAAgB,EACxB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAyFnB,wBAAsB,SAAS,CAC3B,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,OAAO,EAOH,KAAK,gBAAgB,EACxB,MAAM,0BAA0B,CAAC;AAIlC,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAoGnB,wBAAsB,SAAS,CAC3B,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -5,13 +5,15 @@ import { createNodeResourceUsageTracker } from "./resource-usage.js";
5
5
  import { assertDirectTestPlanMatchesTestFamily, directRunFacts, runConfig } from "./run-if-main-facts.js";
6
6
  import { executionMode, rootMetadata, rootTitle, selectedOutputRenderer, selectedReporters, warnOnSupervisedDowngrade } from "./run-if-main-options.js";
7
7
  import { resolveDirectProfile } from "./run-if-main-profile.js";
8
+ import { createSeededTestPlan } from "./run-selection.js";
8
9
  const failureExitCodes = new Set([undefined, null, 0, '0']);
9
10
  function shouldSetFailureExitCode(exitCode) {
10
11
  return failureExitCodes.has(exitCode);
11
12
  }
12
13
  async function createDirectRunContext(meta, testNode, options) {
14
+ const context = await resolveDirectProfile(meta, process.cwd());
13
15
  return {
14
- ...await resolveDirectProfile(meta, process.cwd()),
16
+ ...context,
15
17
  options,
16
18
  testNode
17
19
  };
@@ -27,12 +29,20 @@ async function executeDirectTestPlan(context, testPlan) {
27
29
  const wallClock = createWallClock();
28
30
  const reporters = await selectedReporters(context.profile, context.config, context.options);
29
31
  const config = runConfig(context.config, reporters);
30
- const runFacts = directRunFacts(config, context.name, testPlan, context.projectRoot);
32
+ const ordered = createSeededTestPlan(testPlan);
33
+ const runFacts = directRunFacts({
34
+ config,
35
+ fileSet: context.fileSet,
36
+ profileName: context.name,
37
+ projectRoot: context.projectRoot,
38
+ seed: ordered.seed,
39
+ testPlan: ordered.testPlan
40
+ });
31
41
  const runtimePolicy = createDirectRuntimePolicy();
32
42
  const { resourceUsagePolicy } = runFacts.execution;
33
43
  const startedAt = new Date(wallClock.currentTimestampInMilliseconds);
34
44
  warnOnSupervisedDowngrade(context.profile);
35
- return await defaultRunEngine.execute(testPlan, {
45
+ return await defaultRunEngine.execute(ordered.testPlan, {
36
46
  execution: { mode: executionMode(context.profile) },
37
47
  outputRenderer: selectedOutputRenderer(context.config, context.options),
38
48
  reporters,
@@ -1 +1 @@
1
- {"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/run/run-if-main.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,30 @@ import { discoverRunFilesWithProjectRoot } from "./run-discovery.js";
2
2
  import { selectedProfile } from "./run-facts.js";
3
3
  import { copyRunEngineSelection, copyRunConfig, copyRunRequest, freezeValue } from "./run-support.js";
4
4
  import { assertSupportedProcessEngine, validateRunInput } from "./run-validation.js";
5
+ import { invalidRequest } from "./run-errors.js";
6
+ function assertMicrotestCaptureSupported(request, profile) {
7
+ if (profile.testFamily === 'microtest' && request.capture === 'live') {
8
+ invalidRequest('Microtest profiles do not support live capture.');
9
+ }
10
+ }
11
+ export function assertMicrotestMetadataCaptureSupported(profile, collectedPlan) {
12
+ if (profile.testFamily !== 'microtest') {
13
+ return;
14
+ }
15
+ for (const file of collectedPlan.files) {
16
+ for (const testCase of file.cases) {
17
+ if (testCase.metadata.capture !== null) {
18
+ invalidRequest('Microtest metadata does not support capture mode.');
19
+ }
20
+ }
21
+ }
22
+ }
5
23
  export async function readResolvedRunInput(command) {
6
24
  validateRunInput(command);
7
25
  const request = freezeValue(copyRunRequest(command.request));
8
26
  const config = freezeValue(copyRunConfig(command.config));
9
27
  const profile = selectedProfile(request, config);
28
+ assertMicrotestCaptureSupported(request, profile);
10
29
  assertSupportedProcessEngine(command, profile);
11
30
  const discovery = freezeValue(await discoverRunFilesWithProjectRoot({
12
31
  cwd: command.cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"run-input-resolution.js","sourceRoot":"","sources":["../../../../source/run/run-input-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACH,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,WAAW,EACd,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACH,4BAA4B,EAC5B,gBAAgB,EACnB,MAAM,qBAAqB,CAAC;AAW7B,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAmB;IAC1D,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,WAAW,CACzB,MAAM,+BAA+B,CAAC;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,YAAY,EAAE,OAAO,CAAC,KAAK;KAC9B,CAAC,CACL,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"run-input-resolution.js","sourceRoot":"","sources":["../../../../source/run/run-input-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACH,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,WAAW,EACd,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACH,4BAA4B,EAC5B,gBAAgB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAWjD,SAAS,+BAA+B,CACpC,OAAmB,EACnB,OAAyB;IAEzB,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,cAAc,CAAC,iDAAiD,CAAC,CAAC;IACtE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uCAAuC,CACnD,OAAyB,EACzB,aAA+B;IAE/B,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;IACX,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,CAAC,mDAAmD,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAmB;IAC1D,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,WAAW,CACzB,MAAM,+BAA+B,CAAC;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,YAAY,EAAE,OAAO,CAAC,KAAK;KAC9B,CAAC,CACL,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5G,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { createReportingContext, formatDefinitionLocations, formatSourceLocation } from "../engine/reporting-context.js";
2
- import { collectedRunPlanFromTestPlan } from "./collected-run-plan.js";
2
+ import { caseIdentityKey } from "../engine/identity.js";
3
+ import { collectedRunCaseEntries, collectedRunPlanFromTestPlan } from "./collected-run-plan.js";
3
4
  const indentation = ' ';
4
5
  const orphanDetailDepth = 2;
5
6
  function indent(depth) {
@@ -70,6 +71,41 @@ function renderFile(file, options, context) {
70
71
  }
71
72
  return lines;
72
73
  }
74
+ function renderCaseEntry(testCase, currentSuitePath, options, context) {
75
+ const sharedLength = sharedPrefixLength(currentSuitePath, testCase.testCase.suitePath);
76
+ return [
77
+ ...renderSuiteLines(sharedLength, testCase.testCase.suitePath, options, context),
78
+ ...formatNodeLines({
79
+ context,
80
+ depth: testCase.testCase.suitePath.length + 1,
81
+ locations: testCase.testCase.definitionLocations,
82
+ name: formatCaseName(testCase.testCase),
83
+ options
84
+ })
85
+ ];
86
+ }
87
+ function appendRenderedCaseEntry(state, testCase, options, context) {
88
+ const sameFile = testCase.file === state.currentFile;
89
+ const currentSuitePath = sameFile ? state.currentSuitePath : [];
90
+ const lines = sameFile ? state.lines : [...state.lines, testCase.file];
91
+ return {
92
+ currentFile: testCase.file,
93
+ currentSuitePath: testCase.testCase.suitePath,
94
+ lines: [...lines, ...renderCaseEntry(testCase, currentSuitePath, options, context)]
95
+ };
96
+ }
97
+ function renderCaseEntries(cases, options, context) {
98
+ const initialState = {
99
+ currentFile: null,
100
+ currentSuitePath: [],
101
+ lines: []
102
+ };
103
+ return cases
104
+ .reduce(function renderCaseEntryLines(state, testCase) {
105
+ return appendRenderedCaseEntry(state, testCase, options, context);
106
+ }, initialState)
107
+ .lines;
108
+ }
73
109
  function renderOrphan(orphan, options, context) {
74
110
  const file = orphan.file ?? '<unknown>';
75
111
  return [
@@ -94,17 +130,42 @@ function resolvedCollectedPlan(resolvedRun) {
94
130
  }
95
131
  return collectedRunPlanFromTestPlan(resolvedRun.plan.testPlan);
96
132
  }
133
+ function factsCaseEntries(resolvedRun, plan) {
134
+ const { cases: factsCases } = resolvedRun.facts;
135
+ const casesByKey = new Map(collectedRunCaseEntries(plan).map(function toEntry(testCase) {
136
+ return [caseIdentityKey(testCase.id), testCase];
137
+ }));
138
+ const entries = factsCases.flatMap(function toOrderedCase(testCase) {
139
+ const entry = casesByKey.get(caseIdentityKey(testCase.id));
140
+ return entry === undefined ? [] : [entry];
141
+ });
142
+ return entries.length === factsCases.length ? entries : null;
143
+ }
144
+ function planLines(resolvedRun, plan, options, context) {
145
+ const orderedCases = factsCaseEntries(resolvedRun, plan);
146
+ if (orderedCases === null) {
147
+ return plan.files.flatMap(function renderPlanFile(file) {
148
+ return renderFile(file, options, context);
149
+ });
150
+ }
151
+ return renderCaseEntries(orderedCases, options, context);
152
+ }
153
+ function orderSummary(resolvedRun) {
154
+ const { execution, reproducibility } = resolvedRun.facts;
155
+ return [`order=${execution.order} seed=${reproducibility.seed}`];
156
+ }
97
157
  export function renderResolvedRunList(resolvedRun, options) {
98
158
  const plan = resolvedCollectedPlan(resolvedRun);
99
159
  const context = createReportingContext({
100
160
  projectRoot: resolvedRun.facts.environment.projectRoot
101
161
  });
102
- const planLines = plan.files.flatMap(function renderPlanFile(file) {
103
- return renderFile(file, options, context);
104
- });
162
+ const renderedPlan = [
163
+ ...orderSummary(resolvedRun),
164
+ ...planLines(resolvedRun, plan, options, context)
165
+ ];
105
166
  if (!options.withOrphans) {
106
- return planLines;
167
+ return renderedPlan;
107
168
  }
108
- return [...planLines, ...renderOrphans(plan.orphans, options, context)];
169
+ return [...renderedPlan, ...renderOrphans(plan.orphans, options, context)];
109
170
  }
110
171
  //# sourceMappingURL=run-list-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-list-renderer.js","sourceRoot":"","sources":["../../../../source/run/run-list-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-list-renderer.js","sourceRoot":"","sources":["../../../../source/run/run-list-renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-local-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-local-test-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAIhE,KAAK,UAAU,cAAc,CACzB,OAAmB,EACnB,OAAkC,EAClC,KAA+C,EAC/C,YAAyC;IAEzC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEpE,OAAO,MAAM,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AACjH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,OAAmB,EACnB,OAAkC,EAClC,KAA+C,EAC/C,YAAyC;IAEzC,IAAI,gBAAgB,GAAwC,SAAS,YAAY;QAC7E,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAQ,SAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM;QAC5F,gBAAgB,GAAG,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,sBAAsB;QAC7E,gBAAgB,CACZ,IAAI,kBAAkB,CAClB,yCAAyC,EACzC,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,QAAQ,CACX,CACJ,CAAC;IACN,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE5C,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAE,CAAC,CAAC;IAC5G,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"run-local-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-local-test-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAIhE,KAAK,UAAU,cAAc,CACzB,OAAmB,EACnB,OAAyB,EACzB,KAA+C,EAC/C,YAAyC;IAEzC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEpE,OAAO,MAAM,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AACjH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,OAAmB,EACnB,OAAyB,EACzB,KAA+C,EAC/C,YAAyC;IAEzC,IAAI,gBAAgB,GAAwC,SAAS,YAAY;QAC7E,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAQ,SAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM;QAC5F,gBAAgB,GAAG,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,sBAAsB;QAC7E,gBAAgB,CACZ,IAAI,kBAAkB,CAClB,yCAAyC,EACzC,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,QAAQ,CACX,CACJ,CAAC;IACN,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE5C,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAE,CAAC,CAAC;IAC5G,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;AACL,CAAC"}
@@ -1,13 +1,9 @@
1
- import { randomBytes } from 'node:crypto';
2
1
  import { createWallClock } from '@enormora/wall-clock';
3
2
  import { createExecute } from "../engine/execution.js";
4
3
  import { createReporterDispatcher } from "../engine/reporter-dispatcher.js";
5
4
  import { createNodeResourceUsageTracker } from "./resource-usage.js";
6
5
  import { createRunOrchestrator } from "./run.js";
7
- const seedByteLength = 8;
8
- function createDefaultSeed() {
9
- return randomBytes(seedByteLength).readBigUInt64BE();
10
- }
6
+ import { createRandomRunSeed } from "./run-seed.js";
11
7
  export function createNodeRunOrchestrator(input) {
12
8
  const wallClock = createWallClock();
13
9
  const reporterDispatcher = createReporterDispatcher({
@@ -16,7 +12,7 @@ export function createNodeRunOrchestrator(input) {
16
12
  wallClock
17
13
  });
18
14
  return createRunOrchestrator({
19
- createSeed: createDefaultSeed,
15
+ createSeed: createRandomRunSeed,
20
16
  createResourceUsageTracker(options) {
21
17
  return createNodeResourceUsageTracker(wallClock, options);
22
18
  },
@@ -25,6 +21,10 @@ export function createNodeRunOrchestrator(input) {
25
21
  reporterDispatcher,
26
22
  wallClock
27
23
  }),
24
+ liveOutput: {
25
+ stderr: { write: input.stderr.write },
26
+ stdout: { write: input.stdout.write }
27
+ },
28
28
  node: input.node,
29
29
  reporterDispatcher,
30
30
  runtimeCapabilityPolicy: {
@@ -1 +1 @@
1
- {"version":3,"file":"run-orchestrator.js","sourceRoot":"","sources":["../../../../source/run/run-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjD,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,SAAS,iBAAiB;IACtB,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,CAAC;AACzD,CAAC;AAmBD,MAAM,UAAU,yBAAyB,CAAC,KAA+B;IACrE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;QAChD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS;KACZ,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;QACzB,UAAU,EAAE,iBAAiB;QAC7B,0BAA0B,CAAC,OAAO;YAC9B,OAAO,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,aAAa,CAAC;YACnB,kBAAkB;YAClB,SAAS;SACZ,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,kBAAkB;QAClB,uBAAuB,EAAE;YACrB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,kCAAkC,EAAE,KAAK,CAAC,kCAAkC;YAC5E,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC;QACD,SAAS;KACZ,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"run-orchestrator.js","sourceRoot":"","sources":["../../../../source/run/run-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAsBpD,MAAM,UAAU,yBAAyB,CAAC,KAA+B;IACrE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;QAChD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS;KACZ,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;QACzB,UAAU,EAAE,mBAAmB;QAC/B,0BAA0B,CAAC,OAAO;YAC9B,OAAO,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,aAAa,CAAC;YACnB,kBAAkB;YAClB,SAAS;SACZ,CAAC;QACF,UAAU,EAAE;YACR,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACrC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;SACxC;QACD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,kBAAkB;QAClB,uBAAuB,EAAE;YACrB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,kCAAkC,EAAE,KAAK,CAAC,kCAAkC;YAC5E,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC;QACD,SAAS;KACZ,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-process-engine.js","sourceRoot":"","sources":["../../../../source/run/run-process-engine.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,SAAS,iBAAiB,CAAC,OAAkC;IACzD,OAAO,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,oBAAoB,CAAC;AACnE,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,cAAc,CAAC,4FAA4F,CAAC,CAAC;IACjH,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACjC,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,cAAc,CAAC,kEAAkE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,QAAgB;IAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO;IACX,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChE,cAAc,CAAC,uDAAuD,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,OAAkC;IAChG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO;IACX,CAAC;IAED,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"run-process-engine.js","sourceRoot":"","sources":["../../../../source/run/run-process-engine.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,SAAS,iBAAiB,CAAC,OAAyB;IAChD,OAAO,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,oBAAoB,CAAC;AACnE,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,cAAc,CAAC,4FAA4F,CAAC,CAAC;IACjH,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACjC,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,cAAc,CAAC,kEAAkE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,QAAgB;IAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IACxD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO;IACX,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChE,cAAc,CAAC,uDAAuD,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,OAAyB;IACvF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO;IACX,CAAC;IAED,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ const seedByteLength = 8;
3
+ export function createRandomRunSeed() {
4
+ return randomBytes(seedByteLength).readBigUInt64BE();
5
+ }
6
+ //# sourceMappingURL=run-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-seed.js","sourceRoot":"","sources":["../../../../source/run/run-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,mBAAmB;IAC/B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,CAAC;AACzD,CAAC"}
@@ -1,6 +1,56 @@
1
+ import { uniformInt } from 'pure-rand/distribution/uniformInt';
2
+ import { xoroshiro128plus } from 'pure-rand/generator/xoroshiro128plus';
1
3
  import { createCaseId } from "../engine/identity.js";
2
4
  import { noTestsCollected, RunCollectionError } from "./run-errors.js";
3
5
  import { matchesRunFilter } from "./run-selection-filters.js";
6
+ import { createRandomRunSeed } from "./run-seed.js";
7
+ const randomSeedRange = 4294967296n;
8
+ function resolvedSeed(seed) {
9
+ if (seed.value === null) {
10
+ throw new Error('Seeded ordering requires a resolved run seed.');
11
+ }
12
+ return seed.value;
13
+ }
14
+ function generatorSeed(seed) {
15
+ const normalizedSeed = (seed % randomSeedRange + randomSeedRange) % randomSeedRange;
16
+ return Number(normalizedSeed);
17
+ }
18
+ function arrayEntry(values, index) {
19
+ const value = values[index];
20
+ if (value === undefined) {
21
+ throw new Error('Seeded ordering selected an invalid case index.');
22
+ }
23
+ return value;
24
+ }
25
+ function seededOrder(values, seed) {
26
+ const random = xoroshiro128plus(generatorSeed(seed));
27
+ const ordered = Array.from(values);
28
+ for (let index = ordered.length - 1; index > 0; index -= 1) {
29
+ const swapIndex = uniformInt(random, 0, index);
30
+ const leftValue = arrayEntry(ordered, index);
31
+ const rightValue = arrayEntry(ordered, swapIndex);
32
+ ordered[index] = rightValue;
33
+ ordered[swapIndex] = leftValue;
34
+ }
35
+ return ordered;
36
+ }
37
+ export function orderedRunCases(cases, order, seed) {
38
+ return order === 'seeded' ? seededOrder(cases, resolvedSeed(seed)) : cases;
39
+ }
40
+ export function orderedTestPlan(testPlan, order, seed) {
41
+ const cases = orderedRunCases(testPlan.cases, order, seed);
42
+ return {
43
+ ...testPlan,
44
+ cases
45
+ };
46
+ }
47
+ export function createSeededTestPlan(testPlan) {
48
+ const seed = { value: createRandomRunSeed() };
49
+ return {
50
+ seed,
51
+ testPlan: orderedTestPlan(testPlan, 'seeded', seed)
52
+ };
53
+ }
4
54
  function invalidFamilyMessage(testFamily, expectedFamily) {
5
55
  return `Run profile "${expectedFamily}" cannot run test case with metadata.kind "${testFamily}".`;
6
56
  }
@@ -48,18 +98,22 @@ function matchesTestPlanCase(selection) {
48
98
  });
49
99
  };
50
100
  }
51
- export function selectedTestPlanCases(testPlan, selection) {
101
+ function selectedTestPlanCases(testPlan, selection) {
52
102
  return selectedCases(testPlan.discoveredCases, selection, matchesTestPlanCase(selection));
53
103
  }
104
+ export function selectedNonEmptyTestPlanCases(testPlan, selection) {
105
+ const cases = selectedTestPlanCases(testPlan, selection).plannedCases;
106
+ const firstCase = cases[0];
107
+ return firstCase === undefined ? null : [firstCase, ...cases.slice(1)];
108
+ }
54
109
  export function selectedTestPlan(testPlan, selection) {
55
- const selectionResult = selectedTestPlanCases(testPlan, selection);
56
- const firstCase = selectionResult.plannedCases[0];
57
- if (firstCase === undefined) {
110
+ const cases = selectedNonEmptyTestPlanCases(testPlan, selection);
111
+ if (cases === null) {
58
112
  noTestsCollected('Run selection matched no test cases.');
59
113
  }
60
114
  return {
61
115
  ...testPlan,
62
- cases: [firstCase, ...selectionResult.plannedCases.slice(1)]
116
+ cases
63
117
  };
64
118
  }
65
119
  function collectedCaseId(file, testCase) {