@descryy/runtime-test-runner 0.4.11 → 0.4.13

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 (278) hide show
  1. package/dist/bounded-file.d.ts +18 -0
  2. package/dist/bounded-file.d.ts.map +1 -0
  3. package/dist/bounded-file.js +77 -0
  4. package/dist/bounded-file.js.map +1 -0
  5. package/dist/child-environment.d.ts +12 -0
  6. package/dist/child-environment.d.ts.map +1 -0
  7. package/dist/child-environment.js +124 -0
  8. package/dist/child-environment.js.map +1 -0
  9. package/dist/coverage-capture.d.ts +23 -0
  10. package/dist/coverage-capture.d.ts.map +1 -0
  11. package/dist/coverage-capture.js +165 -0
  12. package/dist/coverage-capture.js.map +1 -0
  13. package/dist/executed-coverage.d.ts +45 -0
  14. package/dist/executed-coverage.d.ts.map +1 -0
  15. package/dist/executed-coverage.js +143 -0
  16. package/dist/executed-coverage.js.map +1 -0
  17. package/dist/go-cover-profile.d.ts +29 -0
  18. package/dist/go-cover-profile.d.ts.map +1 -0
  19. package/dist/go-cover-profile.js +162 -0
  20. package/dist/go-cover-profile.js.map +1 -0
  21. package/dist/go-test.d.ts +29 -2
  22. package/dist/go-test.d.ts.map +1 -1
  23. package/dist/go-test.js +149 -30
  24. package/dist/go-test.js.map +1 -1
  25. package/dist/graph-mapping.d.ts +1 -0
  26. package/dist/graph-mapping.d.ts.map +1 -1
  27. package/dist/graph-mapping.js +78 -1
  28. package/dist/graph-mapping.js.map +1 -1
  29. package/dist/index.d.ts +21 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +11 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/lexers/c-family.d.ts +4 -0
  34. package/dist/lexers/c-family.d.ts.map +1 -0
  35. package/dist/lexers/c-family.js +221 -0
  36. package/dist/lexers/c-family.js.map +1 -0
  37. package/dist/lexers/chars.d.ts +7 -0
  38. package/dist/lexers/chars.d.ts.map +1 -0
  39. package/dist/lexers/chars.js +49 -0
  40. package/dist/lexers/chars.js.map +1 -0
  41. package/dist/lexers/index.d.ts +7 -0
  42. package/dist/lexers/index.d.ts.map +1 -0
  43. package/dist/lexers/index.js +5 -0
  44. package/dist/lexers/index.js.map +1 -0
  45. package/dist/lexers/python.d.ts +3 -0
  46. package/dist/lexers/python.d.ts.map +1 -0
  47. package/dist/lexers/python.js +101 -0
  48. package/dist/lexers/python.js.map +1 -0
  49. package/dist/quality/annotations.d.ts +14 -0
  50. package/dist/quality/annotations.d.ts.map +1 -0
  51. package/dist/quality/annotations.js +147 -0
  52. package/dist/quality/annotations.js.map +1 -0
  53. package/dist/quality/assertion-kinds.d.ts +18 -0
  54. package/dist/quality/assertion-kinds.d.ts.map +1 -0
  55. package/dist/quality/assertion-kinds.js +25 -0
  56. package/dist/quality/assertion-kinds.js.map +1 -0
  57. package/dist/quality/chains.d.ts +25 -0
  58. package/dist/quality/chains.d.ts.map +1 -0
  59. package/dist/quality/chains.js +129 -0
  60. package/dist/quality/chains.js.map +1 -0
  61. package/dist/quality/common.d.ts +31 -0
  62. package/dist/quality/common.d.ts.map +1 -0
  63. package/dist/quality/common.js +211 -0
  64. package/dist/quality/common.js.map +1 -0
  65. package/dist/quality/csharp-family.d.ts +9 -0
  66. package/dist/quality/csharp-family.d.ts.map +1 -0
  67. package/dist/quality/csharp-family.js +560 -0
  68. package/dist/quality/csharp-family.js.map +1 -0
  69. package/dist/quality/detect.d.ts +3 -0
  70. package/dist/quality/detect.d.ts.map +1 -0
  71. package/dist/quality/detect.js +348 -0
  72. package/dist/quality/detect.js.map +1 -0
  73. package/dist/quality/durations.d.ts +4 -0
  74. package/dist/quality/durations.d.ts.map +1 -0
  75. package/dist/quality/durations.js +177 -0
  76. package/dist/quality/durations.js.map +1 -0
  77. package/dist/quality/expressions.d.ts +7 -0
  78. package/dist/quality/expressions.d.ts.map +1 -0
  79. package/dist/quality/expressions.js +123 -0
  80. package/dist/quality/expressions.js.map +1 -0
  81. package/dist/quality/facts.d.ts +5 -0
  82. package/dist/quality/facts.d.ts.map +1 -0
  83. package/dist/quality/facts.js +183 -0
  84. package/dist/quality/facts.js.map +1 -0
  85. package/dist/quality/failure-of.d.ts +4 -0
  86. package/dist/quality/failure-of.d.ts.map +1 -0
  87. package/dist/quality/failure-of.js +233 -0
  88. package/dist/quality/failure-of.js.map +1 -0
  89. package/dist/quality/frameworks.d.ts +5 -0
  90. package/dist/quality/frameworks.d.ts.map +1 -0
  91. package/dist/quality/frameworks.js +20 -0
  92. package/dist/quality/frameworks.js.map +1 -0
  93. package/dist/quality/go-family.d.ts +6 -0
  94. package/dist/quality/go-family.d.ts.map +1 -0
  95. package/dist/quality/go-family.js +393 -0
  96. package/dist/quality/go-family.js.map +1 -0
  97. package/dist/quality/index.d.ts +10 -0
  98. package/dist/quality/index.d.ts.map +1 -0
  99. package/dist/quality/index.js +19 -0
  100. package/dist/quality/index.js.map +1 -0
  101. package/dist/quality/java-family.d.ts +12 -0
  102. package/dist/quality/java-family.d.ts.map +1 -0
  103. package/dist/quality/java-family.js +529 -0
  104. package/dist/quality/java-family.js.map +1 -0
  105. package/dist/quality/js-assertions.d.ts +11 -0
  106. package/dist/quality/js-assertions.d.ts.map +1 -0
  107. package/dist/quality/js-assertions.js +297 -0
  108. package/dist/quality/js-assertions.js.map +1 -0
  109. package/dist/quality/js-family.d.ts +3 -0
  110. package/dist/quality/js-family.d.ts.map +1 -0
  111. package/dist/quality/js-family.js +470 -0
  112. package/dist/quality/js-family.js.map +1 -0
  113. package/dist/quality/python-family.d.ts +6 -0
  114. package/dist/quality/python-family.d.ts.map +1 -0
  115. package/dist/quality/python-family.js +786 -0
  116. package/dist/quality/python-family.js.map +1 -0
  117. package/dist/quality/scope.d.ts +26 -0
  118. package/dist/quality/scope.d.ts.map +1 -0
  119. package/dist/quality/scope.js +33 -0
  120. package/dist/quality/scope.js.map +1 -0
  121. package/dist/quality/selectors.d.ts +14 -0
  122. package/dist/quality/selectors.d.ts.map +1 -0
  123. package/dist/quality/selectors.js +137 -0
  124. package/dist/quality/selectors.js.map +1 -0
  125. package/dist/quality/statuses.d.ts +7 -0
  126. package/dist/quality/statuses.d.ts.map +1 -0
  127. package/dist/quality/statuses.js +143 -0
  128. package/dist/quality/statuses.js.map +1 -0
  129. package/dist/quality/stream.d.ts +23 -0
  130. package/dist/quality/stream.d.ts.map +1 -0
  131. package/dist/quality/stream.js +194 -0
  132. package/dist/quality/stream.js.map +1 -0
  133. package/dist/quality/types.d.ts +88 -0
  134. package/dist/quality/types.d.ts.map +1 -0
  135. package/dist/quality/types.js +2 -0
  136. package/dist/quality/types.js.map +1 -0
  137. package/dist/run-timeout.d.ts +25 -0
  138. package/dist/run-timeout.d.ts.map +1 -0
  139. package/dist/run-timeout.js +52 -0
  140. package/dist/run-timeout.js.map +1 -0
  141. package/dist/runner-wrappers.d.ts +74 -0
  142. package/dist/runner-wrappers.d.ts.map +1 -0
  143. package/dist/runner-wrappers.js +604 -0
  144. package/dist/runner-wrappers.js.map +1 -0
  145. package/dist/swift-xctest.d.ts +15 -2
  146. package/dist/swift-xctest.d.ts.map +1 -1
  147. package/dist/swift-xctest.js +143 -20
  148. package/dist/swift-xctest.js.map +1 -1
  149. package/dist/test-runner-collector.d.ts +56 -6
  150. package/dist/test-runner-collector.d.ts.map +1 -1
  151. package/dist/test-runner-collector.js +265 -113
  152. package/dist/test-runner-collector.js.map +1 -1
  153. package/dist/testgen/csharp-facts.d.ts +3 -0
  154. package/dist/testgen/csharp-facts.d.ts.map +1 -0
  155. package/dist/testgen/csharp-facts.js +306 -0
  156. package/dist/testgen/csharp-facts.js.map +1 -0
  157. package/dist/testgen/csharp-profile.d.ts +14 -0
  158. package/dist/testgen/csharp-profile.d.ts.map +1 -0
  159. package/dist/testgen/csharp-profile.js +233 -0
  160. package/dist/testgen/csharp-profile.js.map +1 -0
  161. package/dist/testgen/declarations.d.ts +10 -0
  162. package/dist/testgen/declarations.d.ts.map +1 -0
  163. package/dist/testgen/declarations.js +110 -0
  164. package/dist/testgen/declarations.js.map +1 -0
  165. package/dist/testgen/facts-common.d.ts +33 -0
  166. package/dist/testgen/facts-common.d.ts.map +1 -0
  167. package/dist/testgen/facts-common.js +76 -0
  168. package/dist/testgen/facts-common.js.map +1 -0
  169. package/dist/testgen/failure.d.ts +4 -0
  170. package/dist/testgen/failure.d.ts.map +1 -0
  171. package/dist/testgen/failure.js +106 -0
  172. package/dist/testgen/failure.js.map +1 -0
  173. package/dist/testgen/frameworks.d.ts +6 -0
  174. package/dist/testgen/frameworks.d.ts.map +1 -0
  175. package/dist/testgen/frameworks.js +516 -0
  176. package/dist/testgen/frameworks.js.map +1 -0
  177. package/dist/testgen/go-facts.d.ts +11 -0
  178. package/dist/testgen/go-facts.d.ts.map +1 -0
  179. package/dist/testgen/go-facts.js +237 -0
  180. package/dist/testgen/go-facts.js.map +1 -0
  181. package/dist/testgen/go-profile.d.ts +6 -0
  182. package/dist/testgen/go-profile.d.ts.map +1 -0
  183. package/dist/testgen/go-profile.js +155 -0
  184. package/dist/testgen/go-profile.js.map +1 -0
  185. package/dist/testgen/index.d.ts +28 -0
  186. package/dist/testgen/index.d.ts.map +1 -0
  187. package/dist/testgen/index.js +21 -0
  188. package/dist/testgen/index.js.map +1 -0
  189. package/dist/testgen/java-build.d.ts +13 -0
  190. package/dist/testgen/java-build.d.ts.map +1 -0
  191. package/dist/testgen/java-build.js +250 -0
  192. package/dist/testgen/java-build.js.map +1 -0
  193. package/dist/testgen/java-facts.d.ts +3 -0
  194. package/dist/testgen/java-facts.d.ts.map +1 -0
  195. package/dist/testgen/java-facts.js +349 -0
  196. package/dist/testgen/java-facts.js.map +1 -0
  197. package/dist/testgen/java-profile.d.ts +13 -0
  198. package/dist/testgen/java-profile.d.ts.map +1 -0
  199. package/dist/testgen/java-profile.js +194 -0
  200. package/dist/testgen/java-profile.js.map +1 -0
  201. package/dist/testgen/languages.d.ts +11 -0
  202. package/dist/testgen/languages.d.ts.map +1 -0
  203. package/dist/testgen/languages.js +63 -0
  204. package/dist/testgen/languages.js.map +1 -0
  205. package/dist/testgen/lexer.d.ts +19 -0
  206. package/dist/testgen/lexer.d.ts.map +1 -0
  207. package/dist/testgen/lexer.js +257 -0
  208. package/dist/testgen/lexer.js.map +1 -0
  209. package/dist/testgen/mutant-core.d.ts +19 -0
  210. package/dist/testgen/mutant-core.d.ts.map +1 -0
  211. package/dist/testgen/mutant-core.js +39 -0
  212. package/dist/testgen/mutant-core.js.map +1 -0
  213. package/dist/testgen/mutants-lang.d.ts +6 -0
  214. package/dist/testgen/mutants-lang.d.ts.map +1 -0
  215. package/dist/testgen/mutants-lang.js +291 -0
  216. package/dist/testgen/mutants-lang.js.map +1 -0
  217. package/dist/testgen/mutants.d.ts +9 -0
  218. package/dist/testgen/mutants.d.ts.map +1 -0
  219. package/dist/testgen/mutants.js +148 -0
  220. package/dist/testgen/mutants.js.map +1 -0
  221. package/dist/testgen/paths.d.ts +32 -0
  222. package/dist/testgen/paths.d.ts.map +1 -0
  223. package/dist/testgen/paths.js +211 -0
  224. package/dist/testgen/paths.js.map +1 -0
  225. package/dist/testgen/process.d.ts +19 -0
  226. package/dist/testgen/process.d.ts.map +1 -0
  227. package/dist/testgen/process.js +89 -0
  228. package/dist/testgen/process.js.map +1 -0
  229. package/dist/testgen/profile-failure.d.ts +7 -0
  230. package/dist/testgen/profile-failure.d.ts.map +1 -0
  231. package/dist/testgen/profile-failure.js +29 -0
  232. package/dist/testgen/profile-failure.js.map +1 -0
  233. package/dist/testgen/python-facts.d.ts +11 -0
  234. package/dist/testgen/python-facts.d.ts.map +1 -0
  235. package/dist/testgen/python-facts.js +380 -0
  236. package/dist/testgen/python-facts.js.map +1 -0
  237. package/dist/testgen/python-profile.d.ts +4 -0
  238. package/dist/testgen/python-profile.d.ts.map +1 -0
  239. package/dist/testgen/python-profile.js +344 -0
  240. package/dist/testgen/python-profile.js.map +1 -0
  241. package/dist/testgen/source-facts.d.ts +30 -0
  242. package/dist/testgen/source-facts.d.ts.map +1 -0
  243. package/dist/testgen/source-facts.js +497 -0
  244. package/dist/testgen/source-facts.js.map +1 -0
  245. package/dist/testgen/stubs.d.ts +4 -0
  246. package/dist/testgen/stubs.d.ts.map +1 -0
  247. package/dist/testgen/stubs.js +66 -0
  248. package/dist/testgen/stubs.js.map +1 -0
  249. package/dist/testgen/toolchain.d.ts +23 -0
  250. package/dist/testgen/toolchain.d.ts.map +1 -0
  251. package/dist/testgen/toolchain.js +201 -0
  252. package/dist/testgen/toolchain.js.map +1 -0
  253. package/dist/testgen/types.d.ts +67 -0
  254. package/dist/testgen/types.d.ts.map +1 -0
  255. package/dist/testgen/types.js +2 -0
  256. package/dist/testgen/types.js.map +1 -0
  257. package/dist/v8-coverage.d.ts +21 -0
  258. package/dist/v8-coverage.d.ts.map +1 -0
  259. package/dist/v8-coverage.js +217 -0
  260. package/dist/v8-coverage.js.map +1 -0
  261. package/dist/vitest-reporter.d.ts +46 -13
  262. package/dist/vitest-reporter.d.ts.map +1 -1
  263. package/dist/vitest-reporter.js +119 -26
  264. package/dist/vitest-reporter.js.map +1 -1
  265. package/dist/vitest-version.d.ts +21 -0
  266. package/dist/vitest-version.d.ts.map +1 -0
  267. package/dist/vitest-version.js +98 -0
  268. package/dist/vitest-version.js.map +1 -0
  269. package/package.json +14 -8
  270. package/reporters/junit/classes/DescryJUnitListener.class +0 -0
  271. package/reporters/junit/classes/META-INF/services/org.junit.platform.launcher.TestExecutionListener +1 -0
  272. package/reporters/minitest/descry_minitest_reporter.rb +150 -0
  273. package/reporters/phpunit/DescryPhpUnitExtension.php +209 -0
  274. package/reporters/pytest/descry_pytest_plugin.py +397 -0
  275. package/reporters/rspec/descry_rspec_formatter.rb +175 -0
  276. package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.deps.json +203 -0
  277. package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.dll +0 -0
  278. package/reporters/xunit/bin/Release/netstandard2.0/Descry.TestLogger.pdb +0 -0
package/dist/go-test.js CHANGED
@@ -15,14 +15,20 @@
15
15
  * `run` arrives while the parent is still open, and the parent's result always
16
16
  * arrives last, so parentage is detected by name prefix (`Parent/child`) while
17
17
  * streaming, no lookahead needed. A test with children is a container: its own
18
- * pass/fail is suppressed.
18
+ * pass or skip is suppressed, and so is a failure one of its children already
19
+ * reported; a container that fails while every child passed failed on its own
20
+ * account (a t.Errorf, a cleanup, a panic in the parent body) and is reported.
19
21
  *
20
22
  * No source location: `go test -json` has no `file`/`line` field, only a
21
23
  * possible mention inside captured `Output` text — not scraped (same refusal as
22
24
  * `cargo test`'s prose). `sourceLocation` stays null: an honest gap, not a guess.
23
25
  */
24
- import { spawnProcess } from "@descryy/runtime-controller";
25
- import { createEventTranslator, pumpLines } from "./test-runner-collector.js";
26
+ import { buildChildEnvironment } from "./child-environment.js";
27
+ import { NO_SANDBOX_DISCLOSURES, spawnProcess, tokenizeCommand } from "@descryy/runtime-controller";
28
+ import { unavailableCoverage, withCoverageDirectoryAllowed } from "./executed-coverage.js";
29
+ import { beginGoCoverage } from "./go-cover-profile.js";
30
+ import { armRunTimeout, resolveRunTimeout } from "./run-timeout.js";
31
+ import { createEventTranslator, pumpLines, reportRunnerOutputGap } from "./test-runner-collector.js";
26
32
  export function isGoTestEvent(value) {
27
33
  return typeof value === "object" && value !== null && "Action" in value;
28
34
  }
@@ -34,39 +40,49 @@ export function isGoTestEvent(value) {
34
40
  */
35
41
  export function createGoEventTranslator() {
36
42
  const open = new Map();
37
- const parentOf = (name) => {
38
- const slash = name.lastIndexOf("/");
39
- return slash === -1 ? null : name.slice(0, slash);
43
+ const keyOf = (pkg, name) => JSON.stringify([pkg, name]);
44
+ const openParentOf = (pkg, name) => {
45
+ for (let slash = name.lastIndexOf("/"); slash > 0; slash = name.lastIndexOf("/", slash - 1)) {
46
+ const entry = open.get(keyOf(pkg, name.slice(0, slash)));
47
+ if (entry !== undefined)
48
+ return entry;
49
+ }
50
+ return null;
40
51
  };
41
52
  return {
42
53
  translate(event) {
43
54
  const name = event.Test;
44
55
  if (name === undefined)
45
- return null; // package-level line, no single test to attribute it to
56
+ return null;
57
+ const pkg = event.Package ?? "";
58
+ const key = keyOf(pkg, name);
46
59
  const qualifiedName = event.Package !== undefined ? `${event.Package}.${name}` : name;
47
60
  switch (event.Action) {
48
61
  case "run": {
49
- const parent = parentOf(name);
50
- if (parent !== null) {
51
- const entry = open.get(parent);
52
- if (entry !== undefined)
53
- entry.hasChildren = true;
54
- }
55
- open.set(name, { hasChildren: false, output: [] });
62
+ const parent = openParentOf(pkg, name);
63
+ if (parent !== null)
64
+ parent.children += 1;
65
+ open.set(key, { children: 0, childFailed: false, output: [] });
56
66
  return { type: "test:start", data: { name, qualifiedName } };
57
67
  }
58
68
  case "output": {
59
- open.get(name)?.output.push(event.Output ?? "");
69
+ open.get(key)?.output.push(event.Output ?? "");
60
70
  return null;
61
71
  }
62
72
  case "pass":
63
73
  case "fail":
64
74
  case "skip": {
65
- const entry = open.get(name);
66
- open.delete(name);
67
- // container result redundant with children's, already reported (RT-074/RT-092)
68
- if (entry?.hasChildren === true)
69
- return null;
75
+ const entry = open.get(key);
76
+ open.delete(key);
77
+ if (event.Action === "fail") {
78
+ const parent = openParentOf(pkg, name);
79
+ if (parent !== null)
80
+ parent.childFailed = true;
81
+ }
82
+ if (entry !== undefined && entry.children > 0) {
83
+ if (event.Action !== "fail" || entry.childFailed)
84
+ return null;
85
+ }
70
86
  if (event.Action === "skip") {
71
87
  return {
72
88
  type: "test:pass",
@@ -74,15 +90,12 @@ export function createGoEventTranslator() {
74
90
  name,
75
91
  qualifiedName,
76
92
  skip: true,
77
- // Go's JSON doesn't distinguish unconditional t.Skip() from a
78
- // conditional bail -- not guessed which.
79
93
  skipReason: "unspecified",
80
94
  },
81
95
  };
82
96
  }
83
97
  const message = (entry?.output ?? []).join("").trim();
84
98
  const durationMs = event.Elapsed !== undefined ? { duration_ms: event.Elapsed * 1000 } : {};
85
- // NodeTestEvent's `error` has no free-form `message`, only code/failureType/cause.
86
99
  const errorField = event.Action === "fail" ? { error: { failureType: "test", cause: message } } : {};
87
100
  return {
88
101
  type: event.Action === "pass" ? "test:pass" : "test:fail",
@@ -115,20 +128,46 @@ function computeCapabilities() {
115
128
  externalServiceObservation: status,
116
129
  };
117
130
  }
118
- /** Splits `command` on whitespace, same as `discoverRunner` elsewhere -- no shell quoting support. */
119
- function splitCommand(command) {
120
- return command.trim().split(/\s+/).filter((s) => s.length > 0);
131
+ const ENV_ASSIGNMENT = /^(?<name>[A-Za-z_][A-Za-z0-9_]*)=(?<value>.*)$/s;
132
+ export function parseGoTestCommand(command) {
133
+ const tokenized = tokenizeCommand(command);
134
+ if (!tokenized.ok)
135
+ return { ok: false, reason: `"${command}" could not be read as a command: ${tokenized.reason}` };
136
+ const tokens = [tokenized.command, ...tokenized.args];
137
+ const env = {};
138
+ let index = 0;
139
+ for (; index < tokens.length; index++) {
140
+ const assignment = ENV_ASSIGNMENT.exec(tokens[index]);
141
+ if (assignment?.groups === undefined)
142
+ break;
143
+ env[assignment.groups["name"]] = assignment.groups["value"];
144
+ }
145
+ const program = tokens[index] ?? "";
146
+ if (program === "")
147
+ return { ok: false, reason: `"${command}" sets environment variables but names no program to run.` };
148
+ return { ok: true, env, program, args: tokens.slice(index + 1) };
121
149
  }
122
150
  export function createGoTestCollector(options) {
123
151
  const capabilities = computeCapabilities();
124
152
  let managed = null;
125
153
  let completion = Promise.resolve();
126
154
  let translator = null;
155
+ let timeoutGuard = null;
156
+ let exitInfo = null;
157
+ let environmentDisclosures = [];
158
+ const collectCoverage = options.collectCoverage === true;
159
+ let coverage = unavailableCoverage(collectCoverage ? "no run has completed (it has not started, was refused, or is still running)" : "coverage collection was not requested (collectCoverage is not true)");
127
160
  return {
128
161
  collectorId: "go-test-collector",
129
162
  async start(ctx) {
130
- const tokens = splitCommand(options.command);
131
- const baseName = (tokens[0] ?? "").split(/[\\/]/).pop() ?? "";
163
+ const timeout = resolveRunTimeout(options.timeoutMs);
164
+ if (!timeout.ok)
165
+ return { available: false, reason: timeout.reason };
166
+ const parsedCommand = parseGoTestCommand(options.command);
167
+ if (!parsedCommand.ok)
168
+ return { available: false, reason: parsedCommand.reason };
169
+ const tokens = [parsedCommand.program, ...parsedCommand.args];
170
+ const baseName = parsedCommand.program.split(/[\\/]/).pop() ?? "";
132
171
  if (baseName !== "go" && baseName !== "go.exe") {
133
172
  return { available: false, reason: `"${options.command}" does not run \`go\` -- this collector only observes \`go test\`.` };
134
173
  }
@@ -139,12 +178,52 @@ export function createGoTestCollector(options) {
139
178
  if (tokens.includes("-json")) {
140
179
  return { available: false, reason: "command already includes -json -- this collector needs to own the flag to translate the stream, and a caller-supplied -json with no translator reading it would report nothing." };
141
180
  }
142
- const args = [...tokens.slice(1, testIndex + 1), "-json", ...tokens.slice(testIndex + 1)];
181
+ let coverageCapture = null;
182
+ let filesystemPolicy = options.filesystemPolicy;
183
+ if (collectCoverage) {
184
+ const begun = beginGoCoverage(tokens, testIndex, options.cwd);
185
+ if (begun.ok) {
186
+ coverageCapture = begun.capture;
187
+ if (filesystemPolicy !== undefined)
188
+ filesystemPolicy = withCoverageDirectoryAllowed(filesystemPolicy, begun.capture.directory);
189
+ }
190
+ else {
191
+ coverage = unavailableCoverage(begun.reason);
192
+ }
193
+ }
194
+ const args = [...tokens.slice(1, testIndex + 1), "-json", ...(coverageCapture?.flags ?? []), ...tokens.slice(testIndex + 1)];
195
+ const childEnvironment = buildChildEnvironment({
196
+ ...(options.inheritHostEnvironment === undefined ? {} : { inheritHostEnvironment: options.inheritHostEnvironment }),
197
+ ...(options.passthroughEnvironmentNames === undefined ? {} : { passthroughNames: options.passthroughEnvironmentNames }),
198
+ });
199
+ environmentDisclosures = childEnvironment.disclosure === null ? [] : [childEnvironment.disclosure];
143
200
  const processId = `go-test-${Date.now()}`;
144
- managed = spawnProcess({ processId, command: "go", args, cwd: options.cwd });
201
+ try {
202
+ managed = spawnProcess({
203
+ processId,
204
+ command: parsedCommand.program,
205
+ args,
206
+ cwd: options.cwd,
207
+ env: { ...childEnvironment.env, ...parsedCommand.env },
208
+ ...(filesystemPolicy === undefined ? {} : { filesystemPolicy }),
209
+ ...(options.networkPolicy === undefined ? {} : { networkPolicy: options.networkPolicy }),
210
+ });
211
+ }
212
+ catch (err) {
213
+ if (coverageCapture !== null) {
214
+ coverageCapture.dispose();
215
+ coverage = unavailableCoverage("the runner did not start");
216
+ }
217
+ return { available: false, reason: err instanceof Error ? err.message : String(err) };
218
+ }
219
+ timeoutGuard = armRunTimeout(managed, { runner: "go test", timeoutMs: timeout.timeoutMs, emit: ctx.emit, service: options.service ?? null, processId });
220
+ void managed.waitForExit().then((info) => {
221
+ exitInfo = info;
222
+ });
145
223
  translator = createEventTranslator(ctx.emit, options.service, processId);
146
224
  const activeTranslator = translator;
147
225
  const goTranslator = createGoEventTranslator();
226
+ const activeCapture = coverageCapture;
148
227
  completion = pumpLines(managed, (line) => {
149
228
  if (line.trim() === "")
150
229
  return;
@@ -162,16 +241,35 @@ export function createGoTestCollector(options) {
162
241
  const translated = goTranslator.translate(parsed);
163
242
  if (translated !== null)
164
243
  activeTranslator.handle(translated);
244
+ }, {
245
+ onGap: (droppedChars) => {
246
+ reportRunnerOutputGap(ctx.emit, { collector: "go-test", service: options.service ?? null, processId, droppedChars });
247
+ },
165
248
  }).then(() => {
166
249
  activeTranslator.flush();
250
+ if (activeCapture !== null) {
251
+ try {
252
+ coverage = activeCapture.collect();
253
+ }
254
+ catch (error) {
255
+ coverage = unavailableCoverage(`coverage data could not be read: ${error instanceof Error ? error.message : String(error)}`);
256
+ }
257
+ finally {
258
+ activeCapture.dispose();
259
+ }
260
+ }
167
261
  });
168
262
  return { available: true };
169
263
  },
170
264
  async stop() {
265
+ timeoutGuard?.cancel();
171
266
  if (managed !== null)
172
267
  await managed.kill();
173
268
  await completion;
174
269
  },
270
+ timedOut() {
271
+ return timeoutGuard?.timedOut() ?? false;
272
+ },
175
273
  capabilities() {
176
274
  return capabilities;
177
275
  },
@@ -181,6 +279,27 @@ export function createGoTestCollector(options) {
181
279
  traceCoverage() {
182
280
  return translator?.coverage() ?? { testsObserved: 0, idsPresent: 0, notRun: 0 };
183
281
  },
282
+ processExit() {
283
+ return exitInfo;
284
+ },
285
+ outputTail(maxBytes = 8192) {
286
+ if (managed === null)
287
+ return null;
288
+ const whole = managed.readOutput();
289
+ return whole.length <= maxBytes ? whole : whole.slice(whole.length - maxBytes);
290
+ },
291
+ wrapperDisclosures() {
292
+ return environmentDisclosures;
293
+ },
294
+ degradations() {
295
+ return [];
296
+ },
297
+ sandboxDisclosures() {
298
+ return managed?.sandboxDisclosures() ?? NO_SANDBOX_DISCLOSURES;
299
+ },
300
+ executedCoverage() {
301
+ return coverage;
302
+ },
184
303
  };
185
304
  }
186
305
  //# sourceMappingURL=go-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"go-test.js","sourceRoot":"","sources":["../src/go-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go-test.js","sourceRoot":"","sources":["../src/go-test.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,5 @@ export declare function resolveObservedTestCase(driver: SqlDriver, evidence: Pic
23
23
  readonly repoRoot?: string;
24
24
  readonly producerScanLimit?: number;
25
25
  }): ObservedTestCaseResolution;
26
+ export declare function candidateTestNames(qualifiedName: string, file: string): string[];
26
27
  //# sourceMappingURL=graph-mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-mapping.d.ts","sourceRoot":"","sources":["../src/graph-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAO7E,MAAM,MAAM,0BAA0B,GAClC,kBAAkB,GAClB;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKjE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACpE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAChF,0BAA0B,CA2B5B"}
1
+ {"version":3,"file":"graph-mapping.d.ts","sourceRoot":"","sources":["../src/graph-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,4BAA4B,CAAC;AAO7E,MAAM,MAAM,0BAA0B,GAClC,kBAAkB,GAClB;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKjE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACpE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAChF,0BAA0B,CAiC5B;AA+BD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBhF"}
@@ -12,6 +12,8 @@
12
12
  * exists after `store.write()` returns — outside this collector's reach. The
13
13
  * caller holding both store and graph `driver` attributes; this only resolves.
14
14
  */
15
+ import { readFileSync } from "node:fs";
16
+ import { isAbsolute, join } from "node:path";
15
17
  import { resolveTestCaseNode } from "@descryy/runtime-graph-correlator";
16
18
  // TEST_SKIPPED belongs in this set and was missing (RT-129) — its payload carries
17
19
  // `sourceLocation`/`qualifiedName` just like a pass, so it must resolve to a node too,
@@ -40,6 +42,81 @@ export function resolveObservedTestCase(driver, evidence, repo, options = {}) {
40
42
  };
41
43
  }
42
44
  const line = evidence.sourceLocation?.line ?? null;
43
- return resolveTestCaseNode(driver, { file, testName: qualifiedName, ...(line === null ? {} : { line }) }, repo, options);
45
+ const inFile = nameInsidePythonModule(file, qualifiedName);
46
+ const candidates = new Set([...candidateTestNames(qualifiedName, file), ...(inFile === null ? [] : [inFile])]);
47
+ let first = null;
48
+ for (const testName of candidates) {
49
+ const resolution = resolveTestCaseNode(driver, { file, testName, ...(line === null ? {} : { line }) }, repo, options);
50
+ first ??= resolution;
51
+ if (resolution.outcome === "line-mismatch" && line !== null && reportedLineIsDecoratorOf(resolution.node, line, file, options.repoRoot)) {
52
+ return { outcome: "resolved", node: resolution.node };
53
+ }
54
+ if (resolution.outcome !== "not-found")
55
+ return resolution;
56
+ }
57
+ return first ?? { outcome: "not-found", reason: `no candidate name was derived from "${qualifiedName}"` };
58
+ }
59
+ const MAX_DECORATOR_SPAN = 400;
60
+ function reportedLineIsDecoratorOf(node, line, file, repoRoot) {
61
+ const start = node.range?.startLine ?? null;
62
+ if (start === null || line >= start || start - line > MAX_DECORATOR_SPAN)
63
+ return false;
64
+ const path = isAbsolute(file) ? file : repoRoot === undefined ? null : join(repoRoot, file);
65
+ if (path === null)
66
+ return false;
67
+ let lines;
68
+ try {
69
+ lines = readFileSync(path, "utf8").split(/\r?\n/);
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ const reported = lines[line - 1]?.trimStart() ?? "";
75
+ if (!reported.startsWith("@"))
76
+ return false;
77
+ for (let index = line; index < start - 1; index += 1) {
78
+ const text = lines[index]?.trim() ?? "";
79
+ if (/^(def |async def |class )/.test(text))
80
+ return false;
81
+ }
82
+ return true;
83
+ }
84
+ function modulePathOf(file) {
85
+ const parts = file.split(/[\\/]/).filter((part) => part.length > 0 && part !== ".");
86
+ const last = parts.pop() ?? "";
87
+ const dot = last.lastIndexOf(".");
88
+ return [...parts, dot > 0 ? last.slice(0, dot) : last];
89
+ }
90
+ export function candidateTestNames(qualifiedName, file) {
91
+ const names = [qualifiedName];
92
+ const modulePath = modulePathOf(file);
93
+ const segments = qualifiedName.split(".");
94
+ let stripped = 0;
95
+ for (let count = Math.min(modulePath.length, segments.length - 1); count >= 1; count -= 1) {
96
+ const tail = modulePath.slice(modulePath.length - count);
97
+ if (tail.every((part, index) => part === segments[index])) {
98
+ stripped = count;
99
+ break;
100
+ }
101
+ }
102
+ if (stripped > 0) {
103
+ const withinModule = segments.slice(stripped);
104
+ if (withinModule.every((part) => part.length > 0)) {
105
+ names.push(withinModule.join("."));
106
+ if (withinModule.length > 1)
107
+ names.push(withinModule[withinModule.length - 1]);
108
+ }
109
+ }
110
+ return [...new Set(names)];
111
+ }
112
+ function nameInsidePythonModule(file, qualifiedName) {
113
+ if (!file.endsWith(".py"))
114
+ return null;
115
+ const stem = file.slice(file.lastIndexOf("/") + 1, -".py".length);
116
+ const segments = qualifiedName.split(".");
117
+ const moduleEnd = segments.indexOf(stem);
118
+ if (moduleEnd < 0 || moduleEnd === segments.length - 1)
119
+ return null;
120
+ return segments.slice(moduleEnd + 1).join(".");
44
121
  }
45
122
  //# sourceMappingURL=graph-mapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-mapping.js","sourceRoot":"","sources":["../src/graph-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,mBAAmB,EAA2B,MAAM,mCAAmC,CAAC;AAGjG,kFAAkF;AAClF,uFAAuF;AACvF,mEAAmE;AACnE,MAAM,qBAAqB,GAAkC,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AAMrI,qGAAqG;AACrG,mFAAmF;AACnF,+BAA+B;AAC/B,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,QAAoE,EACpE,IAAY,EACZ,UAA+E,EAAE;IAEjF,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,0BAA0B,QAAQ,CAAC,SAAS,2HAA2H;SAChL,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC;IACnD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,sFAAsF,EAAE,CAAC;IACpI,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA+C,CAAC;IACzE,MAAM,aAAa,GAAG,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,sIAAsI;SAC/I,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC;IACnD,OAAO,mBAAmB,CACxB,MAAM,EACN,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EACrE,IAAI,EACJ,OAAO,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"graph-mapping.js","sourceRoot":"","sources":["../src/graph-mapping.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,28 @@
1
- export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, RunnerMatch, SkipReason, TraceCoverage, EnvelopeVerdict, NodeTestEvent } from "./test-runner-collector.ts";
1
+ export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, RunnerMatch, SkipReason, TraceCoverage, EnvelopeVerdict, NodeTestEvent, ReporterFlagOptions } from "./test-runner-collector.ts";
2
+ export type { VitestDetection, VitestRunPlan } from "./vitest-version.ts";
3
+ export { detectInstalledVitest, planVitestRun, vitestLocationDegradations } from "./vitest-version.ts";
2
4
  export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.ts";
5
+ export type { WrapperMatch, WrapperEcosystem, UnwrapResult, WrapperEnvironment } from "./runner-wrappers.ts";
6
+ export { unwrapRunnerCommand, locateWrapperEnvironment, wrappedSpawnArgs } from "./runner-wrappers.ts";
7
+ export type { BuiltCommand, CommandRequest, Detection, FailureClass, FrameworkName, GenerationLanguage, Hazard, HazardKind, LanguageHint, LineRange, LocatedHazard, ModuleReference, ModuleReferenceForm, Mutant, MutationOperator, ReachRequest, TestFrameworkProfile, TestGenerationCatalog, UnstubbedHazard, Verdict, } from "./testgen/index.ts";
8
+ export { TEST_GENERATION_CATALOG_VERSION, classifyFailure, detectTestFramework, failureMessage, frameworkNames, hazardsIn, isExported, moduleReferences, mutantsOf, testGenerationCatalog, unstubbedHazards, } from "./testgen/index.ts";
9
+ export type { CFamilyDialect, Token as LexerToken, TokenKind as LexerTokenKind } from "./lexers/index.ts";
10
+ export { tokenizeCFamily, tokenizeJavaScript, tokenizePython } from "./lexers/index.ts";
11
+ export type { AssertionExpectation, AssertionFact, AssertionStrength, FailureKind, FailureLocation, HelperCallFact, HookFact, MockFact, MockKind, NormalisedFailure, QualityFramework, QualityLanguage, QualityRange, SelectorFact, SharedStateFact, SleepFact, TestQualityCatalog, TestSourceFacts, Unsupported, } from "./quality/index.ts";
12
+ export { TEST_QUALITY_CATALOG_VERSION, classifySelector, factsFor, failureOf, frameworkOf, isTestFile, statusFromName, testQualityCatalog } from "./quality/index.ts";
3
13
  export type { ObservedTestCaseResolution } from "./graph-mapping.ts";
4
- export { resolveObservedTestCase } from "./graph-mapping.ts";
5
- export type { SwiftTestDump, DiscoveredSwiftClass, SwiftDiscoveryResult, SwiftXCTestCollectorOptions, SwiftXCTestCollector } from "./swift-xctest.ts";
14
+ export { candidateTestNames, resolveObservedTestCase } from "./graph-mapping.ts";
15
+ export type { SwiftTestDump, DiscoveredSwiftClass, SwiftDiscoveryOptions, SwiftDiscoveryResult, SwiftXCTestCollectorOptions, SwiftXCTestCollector } from "./swift-xctest.ts";
6
16
  export { discoverClasses, generateLinuxMain, discoverSwiftTests, writeLinuxMain, removeGeneratedLinuxMain, createSwiftXCTestCollector, GENERATED_MARKER, } from "./swift-xctest.ts";
7
17
  export type { GoTestEvent, GoTestCollectorOptions, GoTestCollector } from "./go-test.ts";
8
18
  export { isGoTestEvent, createGoEventTranslator, createGoTestCollector } from "./go-test.ts";
19
+ export type { ExecutedCoverage, ExecutedCoverageFile, ExecutedCoverageTool } from "./executed-coverage.ts";
20
+ export { MAX_COVERAGE_FILES, MAX_COVERAGE_LINES } from "./executed-coverage.ts";
21
+ export type { V8CoverageRange, V8FunctionCoverage, V8Lines, V8DirectoryOptions } from "./v8-coverage.ts";
22
+ export { linesOfV8Functions, readV8CoverageDirectory } from "./v8-coverage.ts";
23
+ export type { GoModuleLocation, GoProfileContext } from "./go-cover-profile.ts";
24
+ export { executedCoverageFromGoProfile, hasGoCoverFlag, locateGoModule, modulePathOfGoMod } from "./go-cover-profile.ts";
25
+ export { coverageUnavailableReason, readPythonCoverageDirectory } from "./coverage-capture.ts";
9
26
  export { COLLECTOR_VERSION } from "./collector-version.ts";
27
+ export { DEFAULT_TEST_RUN_TIMEOUT_MS, resolveRunTimeout, runTimeoutReason } from "./run-timeout.ts";
10
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChO,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtJ,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,16 @@
1
+ export { detectInstalledVitest, planVitestRun, vitestLocationDegradations } from "./vitest-version.js";
1
2
  export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.js";
2
- export { resolveObservedTestCase } from "./graph-mapping.js";
3
+ export { unwrapRunnerCommand, locateWrapperEnvironment, wrappedSpawnArgs } from "./runner-wrappers.js";
4
+ export { TEST_GENERATION_CATALOG_VERSION, classifyFailure, detectTestFramework, failureMessage, frameworkNames, hazardsIn, isExported, moduleReferences, mutantsOf, testGenerationCatalog, unstubbedHazards, } from "./testgen/index.js";
5
+ export { tokenizeCFamily, tokenizeJavaScript, tokenizePython } from "./lexers/index.js";
6
+ export { TEST_QUALITY_CATALOG_VERSION, classifySelector, factsFor, failureOf, frameworkOf, isTestFile, statusFromName, testQualityCatalog } from "./quality/index.js";
7
+ export { candidateTestNames, resolveObservedTestCase } from "./graph-mapping.js";
3
8
  export { discoverClasses, generateLinuxMain, discoverSwiftTests, writeLinuxMain, removeGeneratedLinuxMain, createSwiftXCTestCollector, GENERATED_MARKER, } from "./swift-xctest.js";
4
9
  export { isGoTestEvent, createGoEventTranslator, createGoTestCollector } from "./go-test.js";
10
+ export { MAX_COVERAGE_FILES, MAX_COVERAGE_LINES } from "./executed-coverage.js";
11
+ export { linesOfV8Functions, readV8CoverageDirectory } from "./v8-coverage.js";
12
+ export { executedCoverageFromGoProfile, hasGoCoverFlag, locateGoModule, modulePathOfGoMod } from "./go-cover-profile.js";
13
+ export { coverageUnavailableReason, readPythonCoverageDirectory } from "./coverage-capture.js";
5
14
  export { COLLECTOR_VERSION } from "./collector-version.js";
15
+ export { DEFAULT_TEST_RUN_TIMEOUT_MS, resolveRunTimeout, runTimeoutReason } from "./run-timeout.js";
6
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAwBvG,OAAO,EACL,+BAA+B,EAC/B,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGtK,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG7F,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAE/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Token } from "../testgen/lexer.ts";
2
+ export type CFamilyDialect = "java" | "go" | "csharp";
3
+ export declare function tokenizeCFamily(source: string, dialect: CFamilyDialect): readonly Token[];
4
+ //# sourceMappingURL=c-family.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c-family.d.ts","sourceRoot":"","sources":["../../src/lexers/c-family.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGzE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;AA6ItD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,KAAK,EAAE,CA4EzF"}