mikro 0.19.0 → 0.20.0

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 (39) hide show
  1. package/dist/_exports/index.d.ts +17 -0
  2. package/dist/_exports/index.d.ts.map +1 -1
  3. package/dist/_exports/index.js.map +1 -1
  4. package/dist/_exports/ota.d.ts +1 -1
  5. package/dist/_exports/ota.d.ts.map +1 -1
  6. package/dist/_exports/ota.js.map +1 -1
  7. package/dist/_exports/watchdog.d.ts +2 -0
  8. package/dist/_exports/watchdog.d.ts.map +1 -0
  9. package/dist/_exports/watchdog.js +2 -0
  10. package/dist/_exports/watchdog.js.map +1 -0
  11. package/dist/cli/commands/profile.d.ts +2 -2
  12. package/dist/cli/commands/profile.d.ts.map +1 -1
  13. package/dist/cli/commands/profile.js +16 -59
  14. package/dist/cli/commands/profile.js.map +1 -1
  15. package/dist/cli/commands/sim/test.d.ts.map +1 -1
  16. package/dist/cli/commands/sim/test.js +5 -5
  17. package/dist/cli/commands/sim/test.js.map +1 -1
  18. package/dist/cli/commands/test.d.ts.map +1 -1
  19. package/dist/cli/commands/test.js +37 -12
  20. package/dist/cli/commands/test.js.map +1 -1
  21. package/dist/cli/lib/build.d.ts.map +1 -1
  22. package/dist/cli/lib/build.js +14 -4
  23. package/dist/cli/lib/build.js.map +1 -1
  24. package/dist/cli/lib/heapSnapshots.d.ts +65 -7
  25. package/dist/cli/lib/heapSnapshots.d.ts.map +1 -1
  26. package/dist/cli/lib/heapSnapshots.js +62 -3
  27. package/dist/cli/lib/heapSnapshots.js.map +1 -1
  28. package/dist/cli/lib/session.d.ts.map +1 -1
  29. package/dist/cli/lib/session.js +51 -25
  30. package/dist/cli/lib/session.js.map +1 -1
  31. package/dist/cli/lib/testRunner.d.ts +75 -1
  32. package/dist/cli/lib/testRunner.d.ts.map +1 -1
  33. package/dist/cli/lib/testRunner.js +196 -13
  34. package/dist/cli/lib/testRunner.js.map +1 -1
  35. package/dist/cli/program.d.ts +3 -3
  36. package/dist/simulator/builtins/ota-client.d.ts.map +1 -1
  37. package/dist/simulator/builtins/ota-client.js +40 -7
  38. package/dist/simulator/builtins/ota-client.js.map +1 -1
  39. package/package.json +8 -7
@@ -90,10 +90,27 @@ export type MikroJSPanicAction = {
90
90
  delay?: number;
91
91
  duration: number;
92
92
  };
93
+ export interface MikroJSWatchdogConfig {
94
+ /** Max ms one event-loop turn may hold the loop before it is interrupted.
95
+ * Default 30000. `false` disables. */
96
+ blocking?: number | false;
97
+ /** Max ms between `watchdog.feed()` calls before `onPanic` acts. The app
98
+ * decides what counts as progress; this decides how long without it is
99
+ * too long. Off by default. */
100
+ feed?: number;
101
+ /** Max ms the device may stay awake in one wake cycle before `onPanic`
102
+ * acts. Unlike `feed`, nothing can extend it. For apps that wake, work,
103
+ * and deep-sleep; leave unset on a device that stays powered. Off by
104
+ * default. */
105
+ awake?: number;
106
+ }
93
107
  export interface MikroJSConfig {
94
108
  /** Behavior after an uncaught exception. Default:
95
109
  * `{mode: 'restart', delay: 1000}`. */
96
110
  onPanic?: MikroJSPanicAction;
111
+ /** Watchdog limits. All three route through `onPanic` when they fire.
112
+ * See the `watchdog` section of the config docs. */
113
+ watchdog?: MikroJSWatchdogConfig;
97
114
  /** The app's OTA config schema, built with `mikro/schema`. Serialized into
98
115
  * `mikro.app.json` at `mikro ota pack` and sent to the registry at push, so
99
116
  * a registry can render a config form and validate what it serves. Import
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/_exports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/_exports/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_exports/index.ts"],"names":[],"mappings":"AA+MA,MAAM,UAAU,YAAY,CAA0B,MAAS;IAC7D,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_exports/index.ts"],"names":[],"mappings":"AAiOA,MAAM,UAAU,YAAY,CAA0B,MAAS;IAC7D,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { ApplyOutcome, CheckinReport, ConfigErrorReport, ConfigState, ConfigWrite, Diagnostic, DownloadFn, InstallOptions, InstallOutcome, Offer, Ota, OtaBeginError, OtaDownloadError, OtaError, OtaInstallError, OtaWriteError, RunningBuild, SettleOutcome, StoredConfig, Update, } from '@mikrojs/native/runtime/ota/types';
1
+ export type { ApplyOutcome, CheckinReport, ConfigErrorReport, ConfigWrite, DeclineReport, Diagnostic, DownloadFn, InstallOptions, InstallOutcome, Offer, Ota, OtaBeginError, OtaDownloadError, OtaError, OtaInstallError, OtaWriteError, RunningBuild, SettleOutcome, Update, } from '@mikrojs/native/runtime/ota/types';
2
2
  export { ota } from '@mikrojs/native/runtime/ota/types';
3
3
  //# sourceMappingURL=ota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../src/_exports/ota.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,KAAK,EACL,GAAG,EACH,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,GACP,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../src/_exports/ota.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,KAAK,EACL,GAAG,EACH,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,MAAM,GACP,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ota.js","sourceRoot":"","sources":["../../src/_exports/ota.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"ota.js","sourceRoot":"","sources":["../../src/_exports/ota.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@mikrojs/native/runtime/watchdog/types';
2
+ //# sourceMappingURL=watchdog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchdog.d.ts","sourceRoot":"","sources":["../../src/_exports/watchdog.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '@mikrojs/native/runtime/watchdog/types';
2
+ //# sourceMappingURL=watchdog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchdog.js","sourceRoot":"","sources":["../../src/_exports/watchdog.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA"}
@@ -2,14 +2,14 @@ import type { InferValue } from '@optique/core/parser';
2
2
  export declare const args: import("@optique/core").Parser<"async", {
3
3
  readonly action: "profile";
4
4
  readonly port: string | undefined;
5
- readonly updateHeap: true | undefined;
5
+ readonly write: true | undefined;
6
6
  readonly heapTolerance: string | undefined;
7
7
  readonly json: true | undefined;
8
8
  readonly agent: true | undefined;
9
9
  }, ["matched", string] | ["parsing", {
10
10
  readonly action: "profile";
11
11
  readonly port: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
12
- readonly updateHeap: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
12
+ readonly write: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
13
13
  readonly heapTolerance: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
14
14
  readonly json: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
15
15
  readonly agent: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAsBpD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;eAqBhB,CAAA;AAoED,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FxE"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAgBpD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;eAqBhB,CAAA;AA4DD,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFxE"}
@@ -6,19 +6,19 @@ import { flag, option } from '@optique/core/primitives';
6
6
  import { string } from '@optique/core/valueparser';
7
7
  import { firstValueFrom, lastValueFrom } from 'rxjs';
8
8
  import { agentResult, isAgentMode } from '../lib/agent.js';
9
- import { classifyBootSnapshot, heapTolerance, readBootSnapshot, writeBootSnapshot, } from '../lib/heapSnapshots.js';
9
+ import { applyBootSnapshot, DEFAULT_MEM_RESERVED } from '../lib/heapSnapshots.js';
10
10
  import { loadMikroConfig } from '../lib/loadMikroConfig.js';
11
11
  import { parseSize } from '../lib/parseSize.js';
12
12
  import { port } from '../lib/portValueParser.js';
13
13
  import { getMikroDir, resolveProjectRoot } from '../lib/projectRoot.js';
14
14
  import { openSession } from '../lib/serial/openSession.js';
15
- import { formatBytes } from '../lib/testRunner.js';
15
+ import { formatBootLine, formatBytes } from '../lib/testRunner.js';
16
16
  import { packProject } from './ota/pack.js';
17
17
  export const args = command('profile', object({
18
18
  action: constant('profile'),
19
19
  port: optional(option('-p', '--port', port(), { description: message `Serial port of device` })),
20
- updateHeap: optional(flag('-u', '--update-heap', {
21
- description: message `Overwrite the committed boot snapshot (__heap_snapshots__/<chip>.json) with this run's reading. Drift under the tolerance is left alone.`,
20
+ write: optional(flag('--write', {
21
+ description: message `Record this run's reading as the committed boot snapshot (__heap_snapshots__/<chip>.json). Without it the command only reports. Drift under the tolerance is left alone.`,
22
22
  })),
23
23
  heapTolerance: optional(option('--heap-tolerance', string({ metavar: 'SIZE' }), {
24
24
  description: message `Heap drift below which the snapshot is neither flagged nor rewritten (default: max(256, 1% of stored)). Accepts a K/M suffix.`,
@@ -26,15 +26,10 @@ export const args = command('profile', object({
26
26
  json: optional(flag('--json', { description: message `Output as JSON` })),
27
27
  agent: optional(flag('--agent', { description: message `NDJSON agent mode` })),
28
28
  }), {
29
- description: message `Report the memory a device leaves for an app: the JS budget before \`mem_limit\` throws, and the free system heap, both as they stood before the app was evaluated. Records them as the boot snapshot.`,
29
+ description: message `Report the memory a device leaves for an app: the JS budget before \`mem_limit\` throws, and the free system heap, both as they stood before the app was evaluated. Compares against the committed boot snapshot, which \`mikro test\` also records.`,
30
30
  });
31
- const green = (s) => `\x1b[32m${s}\x1b[0m`;
32
- const red = (s) => `\x1b[31m${s}\x1b[0m`;
33
31
  const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
34
- const dim = (s) => `\x1b[2m${s}\x1b[0m`;
35
32
  const READY_TIMEOUT_MS = 30_000;
36
- /** Matches the firmware fallback in mik_app_config.cpp. */
37
- const DEFAULT_MEM_RESERVED = 64 * 1024;
38
33
  /**
39
34
  * The device sets `mem_limit` from the `memReserved` in the config it booted
40
35
  * with, and that config only reaches it through a deploy. Editing
@@ -110,8 +105,8 @@ export async function run(config) {
110
105
  try {
111
106
  // The device only sends MSG_READY in reply to CMD_HELLO, so the handshake
112
107
  // has to be driven. awaitReady$ polls it; plain ready$ would wait forever.
113
- // Not `{fresh: true}`: the figures are captured once at first attach, so a
114
- // cached ready carries the same values.
108
+ // Not `{fresh: true}`: the figures are captured once at boot, so a cached
109
+ // ready carries the same values.
115
110
  const ready = await firstValueFrom(handles.session.awaitReady$(READY_TIMEOUT_MS));
116
111
  chip = ready.chip ?? 'unknown';
117
112
  measured = readFigures(ready);
@@ -146,60 +141,22 @@ export async function run(config) {
146
141
  log(msg);
147
142
  process.exit(1);
148
143
  }
149
- const stored = readBootSnapshot(root, chip);
150
- let action;
151
- if (stored === undefined) {
152
- writeBootSnapshot(root, chip, measured);
153
- action = 'created';
154
- }
155
- else {
156
- // Either ceiling can bind first, so a regression in either one counts.
157
- const verdicts = ['heapFree', 'systemFree'].map((k) => classifyBootSnapshot(measured[k], stored[k], heapTolerance(stored[k], tolerance)));
158
- const moved = verdicts.some((v) => v !== 'ok');
159
- if (config.updateHeap === true) {
160
- action = moved ? 'updated' : 'ok';
161
- if (moved)
162
- writeBootSnapshot(root, chip, measured);
163
- }
164
- else {
165
- action = verdicts.includes('exceeded') ? 'exceeded' : moved ? 'stale' : 'ok';
166
- }
167
- }
144
+ // Reporting is the default: a test run already records this figure from the
145
+ // handshake it does anyway, so profile writing unprompted would let a one-off
146
+ // read overwrite what the suite committed.
147
+ const { action, stored } = applyBootSnapshot(root, chip, measured, {
148
+ seed: config.write === true,
149
+ update: config.write === true,
150
+ tolerance,
151
+ });
168
152
  if (jsonOutput) {
169
153
  agentResult('profile', { chip, ...measured, stored: stored ?? measured, action });
170
154
  if (action === 'exceeded')
171
155
  process.exit(1);
172
156
  return;
173
157
  }
174
- render(chip, measured, stored, action);
158
+ console.error(` ${formatBootLine({ chip, measured, stored, action }, '--write')}`);
175
159
  if (action === 'exceeded')
176
160
  process.exit(1);
177
161
  }
178
- /**
179
- * One segment per ceiling:
180
- *
181
- * esp32c6 js 218KB → 221KB (+3KB) system 249.1KB → 252.4KB (+3.3KB)
182
- *
183
- * More free is the win here, so the colours invert relative to the
184
- * retained-heap diff `mikro test` prints.
185
- */
186
- function figure(label, now, before) {
187
- const value = formatBytes(now);
188
- if (before === undefined || before === now)
189
- return `${label} ${value}`;
190
- const change = now - before;
191
- const delta = change > 0 ? green(`+${formatBytes(change)}`) : red(formatBytes(change));
192
- return `${label} ${dim(`${formatBytes(before)} → ${value} (`)}${delta}${dim(')')}`;
193
- }
194
- function render(chip, measured, stored, action) {
195
- const body = `${figure('js', measured.heapFree, stored?.heapFree)} ${figure('system', measured.systemFree, stored?.systemFree)}`;
196
- const suffix = action === 'created'
197
- ? dim(' (wrote boot snapshot)')
198
- : action === 'exceeded'
199
- ? yellow(' ⚠ less than the stored figure. Re-run with -u to accept.')
200
- : action === 'stale'
201
- ? dim(' (re-run with -u to record it)')
202
- : '';
203
- console.error(` ${chip} ${body}${suffix}`);
204
- }
205
162
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAmDhB,CAAA;AASD,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAyL1D"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAmDhB,CAAA;AASD,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAyL1D"}
@@ -12,7 +12,7 @@ import { parseMinifier, parseMinifyLevel } from '../../lib/parseMinifier.js';
12
12
  import { parseSize } from '../../lib/parseSize.js';
13
13
  import { getMikroDir, resolveProjectRoot } from '../../lib/projectRoot.js';
14
14
  import { SimAlreadyRunningError } from '../../lib/simPid.js';
15
- import { discoverTestFiles, formatBytes, formatMemorySummary, runTestManifest, } from '../../lib/testRunner.js';
15
+ import { discoverTestFiles, formatBytes, formatHeapExceeded, formatHeapStale, formatMemorySummary, formatSuiteBreakdown, runTestManifest, } from '../../lib/testRunner.js';
16
16
  export const args = command('test', object({
17
17
  subcommand: constant('test'),
18
18
  filters: multiple(argument(string({ metavar: 'PATH_OR_PATTERN' }), {
@@ -303,13 +303,13 @@ function renderLeakReport(result) {
303
303
  break;
304
304
  }
305
305
  case 'exceeded': {
306
- const over = (result.heapDelta ?? 0) - (result.heapSnapshotStored ?? 0);
307
- console.error(` ${yellow(`⚠ heap snapshot exceeded for ${chip}: +${formatBytes(over)} over ${formatBytes(result.heapSnapshotStored ?? 0)}. Re-run with -u to accept.`)}`);
306
+ console.error(` ${formatHeapExceeded(result, chip)}`);
307
+ for (const line of formatSuiteBreakdown(result))
308
+ console.error(line);
308
309
  break;
309
310
  }
310
311
  case 'stale': {
311
- const under = (result.heapSnapshotStored ?? 0) - (result.heapDelta ?? 0);
312
- console.error(` ${dim(`heap snapshot stale for ${chip}: now ${formatBytes(result.heapDelta ?? 0)} (stored ${formatBytes(result.heapSnapshotStored ?? 0)}, -${formatBytes(under)}). Re-run with -u to record it.`)}`);
312
+ console.error(` ${dim(`heap snapshot stale for ${chip}: ${formatHeapStale(result)}. Re-run with -u to record it.`)}`);
313
313
  break;
314
314
  }
315
315
  case 'skipped':
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAuBpD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4DhB,CAAA;AAaD,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsOxE;AAmQD,MAAM,CAAC,OAAO,UAAU,KAAK,SAE5B"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AA4BpD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4DhB,CAAA;AAaD,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsPxE;AA4QD,MAAM,CAAC,OAAO,UAAU,KAAK,SAE5B"}
@@ -12,7 +12,7 @@ import { parseSize } from '../lib/parseSize.js';
12
12
  import { port } from '../lib/portValueParser.js';
13
13
  import { getMikroDir, resolveProjectRoot } from '../lib/projectRoot.js';
14
14
  import { openSession } from '../lib/serial/openSession.js';
15
- import { discoverTestFiles, formatBytes, formatMemorySummary, runTestManifest, } from '../lib/testRunner.js';
15
+ import { discoverTestFiles, formatBootLine, formatBytes, formatHeapExceeded, formatHeapStale, formatMemorySummary, formatSuiteBreakdown, runTestManifest, } from '../lib/testRunner.js';
16
16
  export const args = command('test', object({
17
17
  action: constant('test'),
18
18
  filters: multiple(argument(string({ metavar: 'PATH_OR_PATTERN' }), {
@@ -39,7 +39,7 @@ export const args = command('test', object({
39
39
  description: message `Per-file timeout in ms (default: 60000)`,
40
40
  })),
41
41
  updateHeapSnapshots: optional(flag('-u', '--update-heap', {
42
- description: message `Overwrite committed heap snapshots (__heap_snapshots__/<chip>.json) with the current run's heapDelta. Drift under the tolerance is left alone.`,
42
+ description: message `Overwrite committed heap snapshots (__heap_snapshots__/<chip>.json) with this run's per-test retained and peak figures and the device's boot figures. Drift under the tolerance is left alone.`,
43
43
  })),
44
44
  heapTolerance: optional(option('--heap-tolerance', string({ metavar: 'SIZE' }), {
45
45
  description: message `Heap drift below which a snapshot is neither flagged nor rewritten (default: max(256, 1% of stored)). Accepts a K/M suffix.`,
@@ -156,6 +156,7 @@ export async function run(config) {
156
156
  };
157
157
  const startTime = Date.now();
158
158
  let results;
159
+ let boot;
159
160
  try {
160
161
  results = await runTestManifest(session, testFiles, options, {
161
162
  onFileStart: (file, i, total) => {
@@ -206,6 +207,20 @@ export async function run(config) {
206
207
  }
207
208
  renderTestEvent(event, config.diagnostics === true);
208
209
  },
210
+ onBoot: (result) => {
211
+ boot = result;
212
+ if (jsonOutput) {
213
+ agentEmit({
214
+ type: 'boot',
215
+ chip: result.chip,
216
+ action: result.action,
217
+ ...result.measured,
218
+ ...(result.stored ? { stored: result.stored } : {}),
219
+ });
220
+ return;
221
+ }
222
+ log(` ${formatBootLine(result, '-u')}`);
223
+ },
209
224
  onDeployEvent: (event) => {
210
225
  if (jsonOutput) {
211
226
  if (event.type === 'uploading' || event.type === 'checking') {
@@ -260,6 +275,7 @@ export async function run(config) {
260
275
  ...totals,
261
276
  total: totals.passed + totals.failed + totals.skipped + totals.todo,
262
277
  erroredFiles: erroredFiles.length,
278
+ ...(boot ? { boot } : {}),
263
279
  files: results.map((r) => ({
264
280
  file: pathlib.relative(cwd, r.file),
265
281
  passed: r.passed,
@@ -281,7 +297,7 @@ export async function run(config) {
281
297
  });
282
298
  }
283
299
  else {
284
- renderAlertSummary(results, cwd);
300
+ renderAlertSummary(results, cwd, boot);
285
301
  renderAggregate(totals, erroredFiles.length, results.length, Date.now() - startTime);
286
302
  }
287
303
  process.exit(totals.failed > 0 || erroredFiles.length > 0 ? 1 : 0);
@@ -402,15 +418,17 @@ function renderLeakReport(result) {
402
418
  break;
403
419
  }
404
420
  case 'exceeded': {
405
- const over = (result.heapDelta ?? 0) - (result.heapSnapshotStored ?? 0);
406
421
  // eslint-disable-next-line no-console
407
- console.error(` ${yellow(`⚠ heap snapshot exceeded for ${chip}: +${formatBytes(over)} over ${formatBytes(result.heapSnapshotStored ?? 0)}. Re-run with -u to accept.`)}`);
422
+ console.error(` ${formatHeapExceeded(result, chip)}`);
423
+ for (const line of formatSuiteBreakdown(result)) {
424
+ // eslint-disable-next-line no-console
425
+ console.error(line);
426
+ }
408
427
  break;
409
428
  }
410
429
  case 'stale': {
411
- const under = (result.heapSnapshotStored ?? 0) - (result.heapDelta ?? 0);
412
430
  // eslint-disable-next-line no-console
413
- console.error(` ${dim(`heap snapshot stale for ${chip}: now ${formatBytes(result.heapDelta ?? 0)} (stored ${formatBytes(result.heapSnapshotStored ?? 0)}, -${formatBytes(under)}). Re-run with -u to record it.`)}`);
431
+ console.error(` ${dim(`heap snapshot stale for ${chip}: ${formatHeapStale(result)}. Re-run with -u to record it.`)}`);
414
432
  break;
415
433
  }
416
434
  case 'skipped':
@@ -456,17 +474,21 @@ function formatDuration(ms) {
456
474
  return `${ms}ms`;
457
475
  return `${(ms / 1000).toFixed(1)}s`;
458
476
  }
459
- function renderAlertSummary(results, cwd) {
477
+ function renderAlertSummary(results, cwd, boot) {
460
478
  const errored = results.filter((r) => r.error);
461
479
  const exceeded = results.filter((r) => r.heapSnapshotAction === 'exceeded');
462
480
  const stale = results.filter((r) => r.heapSnapshotAction === 'stale');
463
481
  const timerLeaks = results.filter((r) => (r.timerDelta ?? 0) > 0);
464
482
  const httpLeaks = results.filter((r) => (r.pendingDelta ?? 0) > 0);
483
+ // The boot line prints before the first file, hundreds of lines up by the
484
+ // time a suite finishes, so repeat a regression here.
485
+ const bootExceeded = boot?.action === 'exceeded' ? boot : undefined;
465
486
  if (errored.length === 0 &&
466
487
  exceeded.length === 0 &&
467
488
  stale.length === 0 &&
468
489
  timerLeaks.length === 0 &&
469
- httpLeaks.length === 0) {
490
+ httpLeaks.length === 0 &&
491
+ bootExceeded === undefined) {
470
492
  return;
471
493
  }
472
494
  const rel = (f) => pathlib.relative(cwd, f);
@@ -486,12 +508,15 @@ function renderAlertSummary(results, cwd) {
486
508
  console.error(` ${dim('Re-run with -u to accept.')}`);
487
509
  }
488
510
  if (stale.length > 0) {
489
- const items = stale
490
- .map((r) => `${rel(r.file)} (-${formatBytes((r.heapSnapshotStored ?? 0) - (r.heapDelta ?? 0))})`)
491
- .join(', ');
511
+ const items = stale.map((r) => `${rel(r.file)} (${formatHeapStale(r)})`).join(', ');
492
512
  // eslint-disable-next-line no-console
493
513
  console.error(` ${dim(`heap stale: ${items}`)}`);
494
514
  }
515
+ if (bootExceeded) {
516
+ // The line carries its own ⚠ and instruction, so this only labels it.
517
+ // eslint-disable-next-line no-console
518
+ console.error(` ${dim('boot:')} ${formatBootLine(bootExceeded, '-u')}`);
519
+ }
495
520
  if (timerLeaks.length > 0) {
496
521
  const items = timerLeaks.map((r) => `${rel(r.file)} (${r.timerDelta})`).join(', ');
497
522
  // eslint-disable-next-line no-console