@matter/testing 0.17.0-alpha.0-20260505-f95da55d0 → 0.17.0-alpha.0-20260507-059f7763b

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.
@@ -51,6 +51,13 @@ export interface Chip {
51
51
  * Default test subject. If this is set, test implementations may omit the subject.
52
52
  */
53
53
  defaultSubject: Subject.Factory;
54
+ /**
55
+ * Register a {@link Subject.Factory} for a chip-test-header app name (e.g. `"all-clusters"`,
56
+ * `"all-devices"`). When a test descriptor has an `app` field set by the descriptor generator,
57
+ * the framework dispatches to the registered factory automatically. Manual `.subject(...)`
58
+ * overrides on a builder still take precedence over the registry.
59
+ */
60
+ subjectFor(app: string, factory: Subject.Factory): void;
54
61
  /**
55
62
  * Clear the MDNS cache.
56
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAErC;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAEnD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC;IAEjC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC;IAEtB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAmQD,eAAO,MAAM,IAAI,EAAa,IAAI,CAAC;AAiBnC,yBAAiB,IAAI,CAAC,CAAC;IACnB;;OAEG;IACH,KAAY,aAAa,GAAG,IAAI,GAAG,MAAM,CAAC;IAE1C,UAAiB,UAAU;QACvB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD;IAED,UAAiB,iBAAiB;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,OAAO;QACpB;;;;WAIG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3C;;WAEG;QACH,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEvC;;WAEG;QACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEtC;;WAEG;QACH,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC;QAE5C;;WAEG;QACH,cAAc,IAAI,OAAO,CAAC;QAE1B;;WAEG;QACH,IAAI,IAAI,OAAO,CAAC;KACnB;CACJ"}
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"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"}
@@ -172,20 +172,42 @@ function createBuilder(initial) {
172
172
  this.timeout(descriptor.timeoutMs ?? chip.defaultTimeoutMs);
173
173
  return import_state.State.run(test, args, (subject2, test2) => runBeforeHooks(beforeTestHooks, subject2, test2));
174
174
  });
175
- (0, import_mocha.beforeOne)(
176
- mochaTest,
177
- async () => import_state.State.activateSubject(
178
- subject ?? import_state.State.subject,
175
+ (0, import_mocha.beforeOne)(mochaTest, async function() {
176
+ let factory = subject;
177
+ let appArgs;
178
+ if (factory === void 0 && descriptor.app !== void 0) {
179
+ factory = import_state.State.subjectForApp(descriptor.app);
180
+ if (factory === void 0) {
181
+ this.skip();
182
+ }
183
+ appArgs = parseAppArgs(descriptor);
184
+ }
185
+ if (factory === void 0) {
186
+ factory = import_state.State.subject;
187
+ }
188
+ await import_state.State.activateSubject(
189
+ factory,
179
190
  startCommissioned,
180
191
  test,
181
- (subject2, test2) => runBeforeHooks(beforeStartHooks, subject2, test2)
182
- )
183
- );
192
+ (subject2, test2) => runBeforeHooks(beforeStartHooks, subject2, test2),
193
+ appArgs
194
+ );
195
+ });
184
196
  mochaTest.descriptor = test.descriptor;
185
197
  implementations.set(descriptor, mochaTest);
186
198
  (0, import_mocha.afterOne)(mochaTest, import_state.State.deactivateSubject);
187
199
  }
188
200
  }
201
+ function parseAppArgs(descriptor) {
202
+ const raw = descriptor.config?.["app-args"];
203
+ if (raw === void 0) return void 0;
204
+ if (Array.isArray(raw)) return raw.map(String);
205
+ if (typeof raw === "string") {
206
+ const trimmed = raw.trim();
207
+ return trimmed === "" ? void 0 : trimmed.split(/\s+/);
208
+ }
209
+ return void 0;
210
+ }
189
211
  function chipFn(subjectOrFirstInclusion, ...include) {
190
212
  if (typeof subjectOrFirstInclusion === "function") {
191
213
  return chip().subject(subjectOrFirstInclusion).include(...include);
@@ -201,6 +223,11 @@ Object.defineProperties(chipFn, {
201
223
  import_state.State.subject = subject;
202
224
  }
203
225
  },
226
+ subjectFor: {
227
+ value: (app, factory) => {
228
+ import_state.State.registerSubjectForApp(app, factory);
229
+ }
230
+ },
204
231
  activeTest: {
205
232
  get: () => import_state.State.test
206
233
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/chip.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["subject", "test"]
6
6
  }
@@ -16,6 +16,8 @@ import { PicsFile } from "./pics/file.js";
16
16
  export declare const State: {
17
17
  readonly container: Container;
18
18
  subject: Subject.Factory;
19
+ registerSubjectForApp(app: string, factory: Subject.Factory): void;
20
+ subjectForApp(app: string): Subject.Factory | undefined;
19
21
  pullBeforeTesting: boolean;
20
22
  readonly defaultPics: PicsFile;
21
23
  readonly defaultPicsFilename: string;
@@ -62,7 +64,7 @@ export declare const State: {
62
64
  * On first activation, commissions the subject. Thereafter the subject is either already active or reactivated
63
65
  * here.
64
66
  */
65
- activateSubject(factory: Subject.Factory, startCommissioned: boolean, test: Test, beforeStart?: chip.BeforeHook): Promise<void>;
67
+ activateSubject(factory: Subject.Factory, startCommissioned: boolean, test: Test, beforeStart?: chip.BeforeHook, appArgs?: string[]): Promise<void>;
66
68
  /**
67
69
  * Stop the current test subject, if any.
68
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/chip/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,OAAO,EAAsB,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAE/F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA+B1C;;GAEG;AACH,eAAO,MAAM,KAAK;;aAWO,OAAO,CAAC,OAAO;uBAkBP,OAAO;;;;;;;;IA+CpC;;OAEG;;IA2BH;;OAEG;;IAiBH;;OAEG;gBACS,MAAM,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;;IAWH;;OAEG;cACa,IAAI,QAAQ,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxG;;OAEG;yBACkB,kBAAkB;IAQvC;;OAEG;mBACkB,MAAM;IAa3B;;OAEG;wBACiB,MAAM,GAAG,cAAc,GAAG,IAAI;IAkBlD;;;;;OAKG;6BAEU,OAAO,CAAC,OAAO,qBACL,OAAO,QACpB,IAAI,gBACI,IAAI,CAAC,UAAU;IAoEjC;;;;;;;OAOG;;IAmBH;;OAEG;;CAYN,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/chip/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,OAAO,EAAsB,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAE/F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgC1C;;GAEG;AACH,eAAO,MAAM,KAAK;;aAWO,OAAO,CAAC,OAAO;+BAcT,MAAM,WAAW,OAAO,CAAC,OAAO;uBAOxC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS;uBAQ1B,OAAO;;;;;;;;IA+CpC;;OAEG;;IA2BH;;OAEG;;IAiBH;;OAEG;gBACS,MAAM,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;;IAWH;;OAEG;cACa,IAAI,QAAQ,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxG;;OAEG;yBACkB,kBAAkB;IAQvC;;OAEG;mBACkB,MAAM;IAa3B;;OAEG;wBACiB,MAAM,GAAG,cAAc,GAAG,IAAI;IAkBlD;;;;;OAKG;6BAEU,OAAO,CAAC,OAAO,qBACL,OAAO,QACpB,IAAI,gBACI,IAAI,CAAC,UAAU,YACnB,MAAM,EAAE;IAoEtB;;;;;;;OAOG;;IAmBH;;OAEG;;CAYN,CAAC"}
@@ -57,6 +57,7 @@ const Values = {
57
57
  singleUseSubject: false,
58
58
  closers: Array(),
59
59
  subjects: /* @__PURE__ */ new Map(),
60
+ subjectsByApp: /* @__PURE__ */ new Map(),
60
61
  snapshots: /* @__PURE__ */ new Map(),
61
62
  containerLifecycleInstalled: false,
62
63
  testMap: /* @__PURE__ */ new Map(),
@@ -83,6 +84,15 @@ const State = {
83
84
  }
84
85
  return subject;
85
86
  },
87
+ registerSubjectForApp(app, factory) {
88
+ if (Values.subjectsByApp.has(app)) {
89
+ throw new Error(`Subject factory already registered for app "${app}"`);
90
+ }
91
+ Values.subjectsByApp.set(app, factory);
92
+ },
93
+ subjectForApp(app) {
94
+ return Values.subjectsByApp.get(app);
95
+ },
86
96
  get pullBeforeTesting() {
87
97
  return Values.pullBeforeTesting;
88
98
  },
@@ -239,12 +249,12 @@ const State = {
239
249
  * On first activation, commissions the subject. Thereafter the subject is either already active or reactivated
240
250
  * here.
241
251
  */
242
- async activateSubject(factory, startCommissioned, test, beforeStart) {
252
+ async activateSubject(factory, startCommissioned, test, beforeStart, appArgs) {
243
253
  let subject;
244
254
  if (startCommissioned) {
245
- subject = loadSubject(factory, test.descriptor.kind);
255
+ subject = loadSubject(factory, test.descriptor.kind, appArgs);
246
256
  } else {
247
- subject = factory(test.descriptor.kind ?? "unknown");
257
+ subject = factory(test.descriptor.kind ?? "unknown", { appArgs });
248
258
  }
249
259
  if (Values.activeSubject === subject) {
250
260
  return;
@@ -427,14 +437,14 @@ async function configureLocalController() {
427
437
  ]);
428
438
  Values.localControllerPort = import_config.Constants.controllerPort;
429
439
  }
430
- function loadSubject(factory, kind) {
440
+ function loadSubject(factory, kind, appArgs) {
431
441
  let forFactory = Values.subjects.get(factory);
432
442
  if (forFactory === void 0) {
433
443
  Values.subjects.set(factory, forFactory = {});
434
444
  }
435
445
  let subject = forFactory[kind];
436
446
  if (subject === void 0) {
437
- subject = forFactory[kind] = factory(kind);
447
+ subject = forFactory[kind] = factory(kind, { appArgs });
438
448
  }
439
449
  return subject;
440
450
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/state.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -25,13 +25,20 @@ export declare namespace Subject {
25
25
  /**
26
26
  * Producer for test subjects.
27
27
  *
28
- * We cache subjects based on the subject factory although a factory may be invoked multiple times if the subject
29
- * initializes differently for different test implementations.
28
+ * Subjects are cached per (factory, domain, appArgs). A factory may be invoked multiple times if the subject
29
+ * initializes differently for different test implementations (e.g. chip multi-run tests with distinct app-args).
30
30
  */
31
31
  interface Factory {
32
- (domain: string): Subject;
32
+ (domain: string, options?: Subject.Options): Subject;
33
33
  pics?: PicsFile;
34
34
  }
35
+ /**
36
+ * Per-invocation overrides for a {@link Subject.Factory}. Used to forward chip header `app-args:` into the
37
+ * in-process subject without going through process.argv.
38
+ */
39
+ interface Options {
40
+ appArgs?: string[];
41
+ }
35
42
  type CommissioningMethod = "onnetwork";
36
43
  interface WifiNetwork {
37
44
  kind: "wifi";
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../src/device/subject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,yBAAiB,OAAO,CAAC,CAAC;IACtB;;;;;OAKG;IACH,UAAiB,OAAO;QACpB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;KACnB;IAED,KAAY,mBAAmB,GAAG,WAAW,CAAC;IAE9C,UAAiB,WAAW;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,aAAa;QAC1B,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB;IAED;;OAEG;IACH,UAAiB,uBAAuB;QACpC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;QAC/C,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACzC;CACJ"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../src/device/subject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,yBAAiB,OAAO,CAAC,CAAC;IACtB;;;;;OAKG;IACH,UAAiB,OAAO;QACpB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QACrD,IAAI,CAAC,EAAE,QAAQ,CAAC;KACnB;IAED;;;OAGG;IACH,UAAiB,OAAO;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB;IAED,KAAY,mBAAmB,GAAG,WAAW,CAAC;IAE9C,UAAiB,WAAW;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,aAAa;QAC1B,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB;IAED;;OAEG;IACH,UAAiB,uBAAuB;QACpC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;QAC/C,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACzC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"print-report.d.ts","sourceRoot":"","sources":["../../src/print-report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,OAAO,QAEhF;AAqGD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;GAuCzD"}
1
+ {"version":3,"file":"print-report.d.ts","sourceRoot":"","sources":["../../src/print-report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,OAAO,QAEhF;AA0GD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;GAuCzD"}
@@ -95,6 +95,10 @@ function printDescriptor(descriptor, includeDisabled, prefix = "", path) {
95
95
  if (steps) {
96
96
  title = `${title} ${import_ansi_colors.default.cyan(`(${steps} steps)`)}`;
97
97
  }
98
+ const app = member.app ?? member.config?.["app"];
99
+ if (app) {
100
+ title = `${title} ${import_ansi_colors.default.magenta(`[${app}]`)}`;
101
+ }
98
102
  if (member.pics) {
99
103
  try {
100
104
  const expr = new import_expression.PicsExpression(member.pics);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/print-report.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["colors", "path", "descriptor"]
6
6
  }
@@ -51,6 +51,13 @@ export interface Chip {
51
51
  * Default test subject. If this is set, test implementations may omit the subject.
52
52
  */
53
53
  defaultSubject: Subject.Factory;
54
+ /**
55
+ * Register a {@link Subject.Factory} for a chip-test-header app name (e.g. `"all-clusters"`,
56
+ * `"all-devices"`). When a test descriptor has an `app` field set by the descriptor generator,
57
+ * the framework dispatches to the registered factory automatically. Manual `.subject(...)`
58
+ * overrides on a builder still take precedence over the registry.
59
+ */
60
+ subjectFor(app: string, factory: Subject.Factory): void;
54
61
  /**
55
62
  * Clear the MDNS cache.
56
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAErC;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAEnD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC;IAEjC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC;IAEtB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAmQD,eAAO,MAAM,IAAI,EAAa,IAAI,CAAC;AAiBnC,yBAAiB,IAAI,CAAC,CAAC;IACnB;;OAEG;IACH,KAAY,aAAa,GAAG,IAAI,GAAG,MAAM,CAAC;IAE1C,UAAiB,UAAU;QACvB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD;IAED,UAAiB,iBAAiB;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,OAAO;QACpB;;;;WAIG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3C;;WAEG;QACH,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEvC;;WAEG;QACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEtC;;WAEG;QACH,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC;QAE5C;;WAEG;QACH,cAAc,IAAI,OAAO,CAAC;QAE1B;;WAEG;QACH,IAAI,IAAI,OAAO,CAAC;KACnB;CACJ"}
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"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"}
@@ -149,20 +149,42 @@ function createBuilder(initial) {
149
149
  this.timeout(descriptor.timeoutMs ?? chip.defaultTimeoutMs);
150
150
  return State.run(test, args, (subject2, test2) => runBeforeHooks(beforeTestHooks, subject2, test2));
151
151
  });
152
- beforeOne(
153
- mochaTest,
154
- async () => State.activateSubject(
155
- subject ?? State.subject,
152
+ beforeOne(mochaTest, async function() {
153
+ let factory = subject;
154
+ let appArgs;
155
+ if (factory === void 0 && descriptor.app !== void 0) {
156
+ factory = State.subjectForApp(descriptor.app);
157
+ if (factory === void 0) {
158
+ this.skip();
159
+ }
160
+ appArgs = parseAppArgs(descriptor);
161
+ }
162
+ if (factory === void 0) {
163
+ factory = State.subject;
164
+ }
165
+ await State.activateSubject(
166
+ factory,
156
167
  startCommissioned,
157
168
  test,
158
- (subject2, test2) => runBeforeHooks(beforeStartHooks, subject2, test2)
159
- )
160
- );
169
+ (subject2, test2) => runBeforeHooks(beforeStartHooks, subject2, test2),
170
+ appArgs
171
+ );
172
+ });
161
173
  mochaTest.descriptor = test.descriptor;
162
174
  implementations.set(descriptor, mochaTest);
163
175
  afterOne(mochaTest, State.deactivateSubject);
164
176
  }
165
177
  }
178
+ function parseAppArgs(descriptor) {
179
+ const raw = descriptor.config?.["app-args"];
180
+ if (raw === void 0) return void 0;
181
+ if (Array.isArray(raw)) return raw.map(String);
182
+ if (typeof raw === "string") {
183
+ const trimmed = raw.trim();
184
+ return trimmed === "" ? void 0 : trimmed.split(/\s+/);
185
+ }
186
+ return void 0;
187
+ }
166
188
  function chipFn(subjectOrFirstInclusion, ...include) {
167
189
  if (typeof subjectOrFirstInclusion === "function") {
168
190
  return chip().subject(subjectOrFirstInclusion).include(...include);
@@ -178,6 +200,11 @@ Object.defineProperties(chipFn, {
178
200
  State.subject = subject;
179
201
  }
180
202
  },
203
+ subjectFor: {
204
+ value: (app, factory) => {
205
+ State.registerSubjectForApp(app, factory);
206
+ }
207
+ },
181
208
  activeTest: {
182
209
  get: () => State.test
183
210
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/chip.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["subject", "test"]
6
6
  }
@@ -16,6 +16,8 @@ import { PicsFile } from "./pics/file.js";
16
16
  export declare const State: {
17
17
  readonly container: Container;
18
18
  subject: Subject.Factory;
19
+ registerSubjectForApp(app: string, factory: Subject.Factory): void;
20
+ subjectForApp(app: string): Subject.Factory | undefined;
19
21
  pullBeforeTesting: boolean;
20
22
  readonly defaultPics: PicsFile;
21
23
  readonly defaultPicsFilename: string;
@@ -62,7 +64,7 @@ export declare const State: {
62
64
  * On first activation, commissions the subject. Thereafter the subject is either already active or reactivated
63
65
  * here.
64
66
  */
65
- activateSubject(factory: Subject.Factory, startCommissioned: boolean, test: Test, beforeStart?: chip.BeforeHook): Promise<void>;
67
+ activateSubject(factory: Subject.Factory, startCommissioned: boolean, test: Test, beforeStart?: chip.BeforeHook, appArgs?: string[]): Promise<void>;
66
68
  /**
67
69
  * Stop the current test subject, if any.
68
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/chip/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,OAAO,EAAsB,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAE/F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA+B1C;;GAEG;AACH,eAAO,MAAM,KAAK;;aAWO,OAAO,CAAC,OAAO;uBAkBP,OAAO;;;;;;;;IA+CpC;;OAEG;;IA2BH;;OAEG;;IAiBH;;OAEG;gBACS,MAAM,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;;IAWH;;OAEG;cACa,IAAI,QAAQ,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxG;;OAEG;yBACkB,kBAAkB;IAQvC;;OAEG;mBACkB,MAAM;IAa3B;;OAEG;wBACiB,MAAM,GAAG,cAAc,GAAG,IAAI;IAkBlD;;;;;OAKG;6BAEU,OAAO,CAAC,OAAO,qBACL,OAAO,QACpB,IAAI,gBACI,IAAI,CAAC,UAAU;IAoEjC;;;;;;;OAOG;;IAmBH;;OAEG;;CAYN,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/chip/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,OAAO,EAAsB,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAE/F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgC1C;;GAEG;AACH,eAAO,MAAM,KAAK;;aAWO,OAAO,CAAC,OAAO;+BAcT,MAAM,WAAW,OAAO,CAAC,OAAO;uBAOxC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS;uBAQ1B,OAAO;;;;;;;;IA+CpC;;OAEG;;IA2BH;;OAEG;;IAiBH;;OAEG;gBACS,MAAM,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;;IAWH;;OAEG;cACa,IAAI,QAAQ,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxG;;OAEG;yBACkB,kBAAkB;IAQvC;;OAEG;mBACkB,MAAM;IAa3B;;OAEG;wBACiB,MAAM,GAAG,cAAc,GAAG,IAAI;IAkBlD;;;;;OAKG;6BAEU,OAAO,CAAC,OAAO,qBACL,OAAO,QACpB,IAAI,gBACI,IAAI,CAAC,UAAU,YACnB,MAAM,EAAE;IAoEtB;;;;;;;OAOG;;IAmBH;;OAEG;;CAYN,CAAC"}
@@ -34,6 +34,7 @@ const Values = {
34
34
  singleUseSubject: false,
35
35
  closers: Array(),
36
36
  subjects: /* @__PURE__ */ new Map(),
37
+ subjectsByApp: /* @__PURE__ */ new Map(),
37
38
  snapshots: /* @__PURE__ */ new Map(),
38
39
  containerLifecycleInstalled: false,
39
40
  testMap: /* @__PURE__ */ new Map(),
@@ -60,6 +61,15 @@ const State = {
60
61
  }
61
62
  return subject;
62
63
  },
64
+ registerSubjectForApp(app, factory) {
65
+ if (Values.subjectsByApp.has(app)) {
66
+ throw new Error(`Subject factory already registered for app "${app}"`);
67
+ }
68
+ Values.subjectsByApp.set(app, factory);
69
+ },
70
+ subjectForApp(app) {
71
+ return Values.subjectsByApp.get(app);
72
+ },
63
73
  get pullBeforeTesting() {
64
74
  return Values.pullBeforeTesting;
65
75
  },
@@ -216,12 +226,12 @@ const State = {
216
226
  * On first activation, commissions the subject. Thereafter the subject is either already active or reactivated
217
227
  * here.
218
228
  */
219
- async activateSubject(factory, startCommissioned, test, beforeStart) {
229
+ async activateSubject(factory, startCommissioned, test, beforeStart, appArgs) {
220
230
  let subject;
221
231
  if (startCommissioned) {
222
- subject = loadSubject(factory, test.descriptor.kind);
232
+ subject = loadSubject(factory, test.descriptor.kind, appArgs);
223
233
  } else {
224
- subject = factory(test.descriptor.kind ?? "unknown");
234
+ subject = factory(test.descriptor.kind ?? "unknown", { appArgs });
225
235
  }
226
236
  if (Values.activeSubject === subject) {
227
237
  return;
@@ -404,14 +414,14 @@ async function configureLocalController() {
404
414
  ]);
405
415
  Values.localControllerPort = Constants.controllerPort;
406
416
  }
407
- function loadSubject(factory, kind) {
417
+ function loadSubject(factory, kind, appArgs) {
408
418
  let forFactory = Values.subjects.get(factory);
409
419
  if (forFactory === void 0) {
410
420
  Values.subjects.set(factory, forFactory = {});
411
421
  }
412
422
  let subject = forFactory[kind];
413
423
  if (subject === void 0) {
414
- subject = forFactory[kind] = factory(kind);
424
+ subject = forFactory[kind] = factory(kind, { appArgs });
415
425
  }
416
426
  return subject;
417
427
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/state.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -25,13 +25,20 @@ export declare namespace Subject {
25
25
  /**
26
26
  * Producer for test subjects.
27
27
  *
28
- * We cache subjects based on the subject factory although a factory may be invoked multiple times if the subject
29
- * initializes differently for different test implementations.
28
+ * Subjects are cached per (factory, domain, appArgs). A factory may be invoked multiple times if the subject
29
+ * initializes differently for different test implementations (e.g. chip multi-run tests with distinct app-args).
30
30
  */
31
31
  interface Factory {
32
- (domain: string): Subject;
32
+ (domain: string, options?: Subject.Options): Subject;
33
33
  pics?: PicsFile;
34
34
  }
35
+ /**
36
+ * Per-invocation overrides for a {@link Subject.Factory}. Used to forward chip header `app-args:` into the
37
+ * in-process subject without going through process.argv.
38
+ */
39
+ interface Options {
40
+ appArgs?: string[];
41
+ }
35
42
  type CommissioningMethod = "onnetwork";
36
43
  interface WifiNetwork {
37
44
  kind: "wifi";
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../src/device/subject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,yBAAiB,OAAO,CAAC,CAAC;IACtB;;;;;OAKG;IACH,UAAiB,OAAO;QACpB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;KACnB;IAED,KAAY,mBAAmB,GAAG,WAAW,CAAC;IAE9C,UAAiB,WAAW;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,aAAa;QAC1B,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB;IAED;;OAEG;IACH,UAAiB,uBAAuB;QACpC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;QAC/C,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACzC;CACJ"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../src/device/subject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,yBAAiB,OAAO,CAAC,CAAC;IACtB;;;;;OAKG;IACH,UAAiB,OAAO;QACpB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QACrD,IAAI,CAAC,EAAE,QAAQ,CAAC;KACnB;IAED;;;OAGG;IACH,UAAiB,OAAO;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB;IAED,KAAY,mBAAmB,GAAG,WAAW,CAAC;IAE9C,UAAiB,WAAW;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,aAAa;QAC1B,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB;IAED;;OAEG;IACH,UAAiB,uBAAuB;QACpC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;QAC/C,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACzC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"print-report.d.ts","sourceRoot":"","sources":["../../src/print-report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,OAAO,QAEhF;AAqGD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;GAuCzD"}
1
+ {"version":3,"file":"print-report.d.ts","sourceRoot":"","sources":["../../src/print-report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,OAAO,QAEhF;AA0GD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;GAuCzD"}
@@ -61,6 +61,10 @@ function printDescriptor(descriptor, includeDisabled, prefix = "", path) {
61
61
  if (steps) {
62
62
  title = `${title} ${colors.cyan(`(${steps} steps)`)}`;
63
63
  }
64
+ const app = member.app ?? member.config?.["app"];
65
+ if (app) {
66
+ title = `${title} ${colors.magenta(`[${app}]`)}`;
67
+ }
64
68
  if (member.pics) {
65
69
  try {
66
70
  const expr = new PicsExpression(member.pics);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/print-report.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,qBAAqB,qBAAqB,2BAA2B;AACxF,OAAO,YAAY;AACnB,SAAS,YAAY;AACrB,SAAS,4BAA4B,sBAAsB;AAC3D,SAAS,yBAAyB;AAElC,SAAS,sBAAsB;AAKxB,SAAS,YAAY,YAA4B,iBAA2B;AAC/E,kBAAgB,YAAY,eAAe;AAC/C;AAEA,SAAS,gBAAgB,YAA4B,iBAA2B,SAAS,IAAI,MAAe;AACxG,QAAM,EAAE,QAAQ,IAAI;AACpB,MAAI,CAAC,SAAS,QAAQ;AAClB;AAAA,EACJ;AAEA,MAAI,aAAa;AAEjB,aAAW,UAAU,SAAS;AAC1B,QAAI,QAAQ,OAAO;AAEnB,QAAI,aAAa,OAAO,WAAW,CAAC;AAEpC,QAAI;AACJ,QAAI,WAAW,QAAQ;AACnB,UAAI,OAAO,SAAS,QAAQ,OAAO,SAAS,UAAU,OAAO,SAAS,UAAU;AAC5E,gBAAQ,WAAW;AACnB,qBAAa,CAAC;AAAA,MAClB,OAAO;AACH,gBAAQ,OAAO,KAAK,KAAK;AAAA,MAC7B;AAAA,IACJ;AAEA,QAAI,OAAO,YAAY;AACnB,UAAI,CAAC,iBAAiB;AAClB;AAAA,MACJ;AACA,cAAQ,OAAO,IAAI,KAAK;AAAA,IAC5B;AAEA,QAAI,OAAO,SAAS,SAAS;AACzB,UAAI,WAAW,MAAM,YAAY;AAC7B,gBAAQ,IAAI;AAAA,MAChB;AAAA,IACJ,OAAO;AACH,cAAQ,OAAO,QAAQ;AAAA,QACnB,KAAK;AACD,kBAAQ,GAAG,mBAAmB,IAAI,KAAK;AACvC;AAAA,QAEJ,KAAK;AACD,kBAAQ,GAAG,mBAAmB,IAAI,KAAK;AACvC;AAAA,QAEJ;AACI,kBAAQ,GAAG,mBAAmB,IAAI,KAAK;AAAA,MAC/C;AAAA,IACJ;AAEA,QAAI,OAAO,eAAe,QAAW;AACjC,cAAQ,GAAG,KAAK,IAAI,SAAS,eAAe,OAAO,UAAU,CAAC;AAAA,IAClE;AAEA,QAAI,OAAO,SAAS,SAAS;AACzB,cAAQ,GAAG,KAAK,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,IAChD;AAEA,QAAI,OAAO;AACP,cAAQ,GAAG,KAAK,IAAI,OAAO,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,IACvD;AAEA,QAAI,OAAO,MAAM;AACb,UAAI;AACA,cAAM,OAAO,IAAI,eAAe,OAAO,IAAI;AAC3C,YAAI,KAAK,SAAS,OAAO,cAAc,KAAK,WAAW,GAAG;AACtD,kBAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,MAAM,OAAO,IAAI,CAAC;AAAA,QACrD,OAAO;AACH,kBAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,IAAI,OAAO,IAAI,CAAC;AAAA,QACnD;AAAA,MACJ,SAAS,GAAG;AACR,YAAI,aAAa,4BAA4B;AACzC,kBAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,cAAc,IAAI,OAAO,IAAI,CAAC;AAAA,QACjE,OAAO;AACH,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,OAAO,QAAQ,OAAO,SAAS,MAAM;AACrC,UAAI,EAAE,MAAAA,MAAK,IAAI;AACf,UAAI,OAAO,SAAS;AAChB,QAAAA,QAAO,GAAGA,KAAI,IAAI,OAAO,OAAO;AAAA,MACpC;AACA,cAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,WAAWA,KAAI,CAAC;AAAA,IACnD;AAEA,QAAI,OAAO,SAAS,UAAU;AAC1B,cAAQ,OAAO,cAAc,KAAK;AAAA,IACtC;AAEA,YAAQ,IAAI,GAAG,MAAM,GAAG,KAAK,EAAE;AAC/B,iBAAa;AAEb,QAAI,WAAW,QAAQ;AACnB,sBAAgB,QAAQ,iBAAiB,GAAG,MAAM,QAAQ,OAAO,QAAQ,IAAI;AAAA,IACjF;AAAA,EACJ;AACJ;AAQA,eAAsB,kBAAkB,QAAoB;AACxD,QAAM,QAAQ,MAAM,kBAAkB,QAAQ,KAAK;AAEnD,MAAI,aAAa,EAAE,GAAG,MAAM,MAAM,WAAW;AAE7C,MAAI,KAAK,eAAe;AACpB,UAAM,OAAO,oBAAI,IAAoB;AACrC,mBAAe,MAAM,YAAY,CAAAC,gBAAc;AAC3C,WAAK,IAAIA,WAAU;AAAA,IACvB,CAAC;AAED,QAAI,SAAS,eAAe,OAAO,KAAK,MAAM,YAAY;AAAA,MACtD,UAAUA,aAAY;AAClB,eAAQA,YAAW,SAAS,QAAQA,YAAW,SAAS,UAAW,CAAC,KAAK,IAAIA,WAAU;AAAA,MAC3F;AAAA,IACJ,CAAC;AAED,QAAI,QAAQ;AACR,eAAS;AAAA,QACL,GAAG;AAAA,QACH,MAAM;AAAA,MACV;AAEA,qBAAe,MAAM,QAAQ,CAAAA,gBAAc;AACvC,QAAAA,YAAW,aAAa;AAAA,MAC5B,CAAC;AAED,mBAAa;AAAA,QACT,GAAG;AAAA,QACH,SAAS,WAAW,UAAU,CAAC,GAAG,WAAW,SAAS,MAAM,IAAI,CAAC,MAAM;AAAA,MAC3E;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,WAAW,MAAM,eAAe,KAAK,OAAO,IAAI,QAAQ,eAAe,gBAAgB,CAAC;AAE9F,eAAa,eAAe,MAAM,UAAU,UAAU;AAEtD,SAAO;AACX;",
4
+ "mappings": "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",
5
5
  "names": ["path", "descriptor"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/testing",
3
- "version": "0.17.0-alpha.0-20260505-f95da55d0",
3
+ "version": "0.17.0-alpha.0-20260507-059f7763b",
4
4
  "description": "Test harness for running JavaScript and Matter certification tests",
5
5
  "type": "module",
6
6
  "scripts": {
package/src/chip/chip.ts CHANGED
@@ -65,6 +65,14 @@ export interface Chip {
65
65
  */
66
66
  defaultSubject: Subject.Factory;
67
67
 
68
+ /**
69
+ * Register a {@link Subject.Factory} for a chip-test-header app name (e.g. `"all-clusters"`,
70
+ * `"all-devices"`). When a test descriptor has an `app` field set by the descriptor generator,
71
+ * the framework dispatches to the registered factory automatically. Manual `.subject(...)`
72
+ * overrides on a builder still take precedence over the registry.
73
+ */
74
+ subjectFor(app: string, factory: Subject.Factory): void;
75
+
68
76
  /**
69
77
  * Clear the MDNS cache.
70
78
  */
@@ -292,11 +300,36 @@ function createBuilder(initial: {
292
300
 
293
301
  // We do this separately from the test itself because we don't want activation to appear as part of the test if
294
302
  // it fails
295
- beforeOne(mochaTest, async () =>
296
- State.activateSubject(subject ?? State.subject, startCommissioned, test, (subject, test) =>
297
- runBeforeHooks(beforeStartHooks, subject, test),
298
- ),
299
- );
303
+ beforeOne(mochaTest, async function (this: Mocha.Context) {
304
+ // Resolution order: explicit .subject() override on the builder, then descriptor.app
305
+ // (chip-test-header app for multi-run suite members), then chip.defaultSubject. A
306
+ // multi-run member that names an unregistered app is skipped (other runs of the same
307
+ // test continue) — chip CI lists more apps than we mimic, and ignoring those runs is
308
+ // the whitelist behavior we want.
309
+ let factory = subject;
310
+ let appArgs: string[] | undefined;
311
+ if (factory === undefined && descriptor.app !== undefined) {
312
+ factory = State.subjectForApp(descriptor.app);
313
+ if (factory === undefined) {
314
+ this.skip();
315
+ }
316
+ // app-args are scoped to the named app; forwarding them to defaultSubject would
317
+ // pollute the subject cache with per-test variants (e.g. --trace-to paths) and
318
+ // thrash setup on tests that don't need per-run dispatch.
319
+ appArgs = parseAppArgs(descriptor);
320
+ }
321
+ if (factory === undefined) {
322
+ factory = State.subject;
323
+ }
324
+
325
+ await State.activateSubject(
326
+ factory,
327
+ startCommissioned,
328
+ test,
329
+ (subject, test) => runBeforeHooks(beforeStartHooks, subject, test),
330
+ appArgs,
331
+ );
332
+ });
300
333
 
301
334
  mochaTest.descriptor = test.descriptor;
302
335
  implementations.set(descriptor, mochaTest);
@@ -305,6 +338,17 @@ function createBuilder(initial: {
305
338
  }
306
339
  }
307
340
 
341
+ function parseAppArgs(descriptor: TestDescriptor): string[] | undefined {
342
+ const raw = descriptor.config?.["app-args"];
343
+ if (raw === undefined) return undefined;
344
+ if (Array.isArray(raw)) return raw.map(String);
345
+ if (typeof raw === "string") {
346
+ const trimmed = raw.trim();
347
+ return trimmed === "" ? undefined : trimmed.split(/\s+/);
348
+ }
349
+ return undefined;
350
+ }
351
+
308
352
  function chipFn(subjectOrFirstInclusion: Subject.Factory | string | undefined, ...include: string[]): chip.Builder {
309
353
  if (typeof subjectOrFirstInclusion === "function") {
310
354
  return chip()
@@ -326,6 +370,12 @@ Object.defineProperties(chipFn, {
326
370
  },
327
371
  },
328
372
 
373
+ subjectFor: {
374
+ value: (app: string, factory: Subject.Factory) => {
375
+ State.registerSubjectForApp(app, factory);
376
+ },
377
+ },
378
+
329
379
  activeTest: {
330
380
  get: () => State.test,
331
381
  },
package/src/chip/state.ts CHANGED
@@ -45,6 +45,7 @@ const Values = {
45
45
  singleUseSubject: false,
46
46
  closers: Array<() => Promise<void>>(),
47
47
  subjects: new Map<Subject.Factory, Record<string, Subject>>(),
48
+ subjectsByApp: new Map<string, Subject.Factory>(),
48
49
  snapshots: new Map<Subject, {}>(),
49
50
  containerLifecycleInstalled: false,
50
51
  testMap: new Map<TestDescriptor, Test>(),
@@ -82,6 +83,17 @@ export const State = {
82
83
  return subject;
83
84
  },
84
85
 
86
+ registerSubjectForApp(app: string, factory: Subject.Factory) {
87
+ if (Values.subjectsByApp.has(app)) {
88
+ throw new Error(`Subject factory already registered for app "${app}"`);
89
+ }
90
+ Values.subjectsByApp.set(app, factory);
91
+ },
92
+
93
+ subjectForApp(app: string): Subject.Factory | undefined {
94
+ return Values.subjectsByApp.get(app);
95
+ },
96
+
85
97
  get pullBeforeTesting() {
86
98
  return Values.pullBeforeTesting;
87
99
  },
@@ -277,14 +289,15 @@ export const State = {
277
289
  startCommissioned: boolean,
278
290
  test: Test,
279
291
  beforeStart?: chip.BeforeHook,
292
+ appArgs?: string[],
280
293
  ) {
281
294
  let subject;
282
295
  if (startCommissioned) {
283
296
  // We cache commissioned subjects
284
- subject = loadSubject(factory, test.descriptor.kind);
297
+ subject = loadSubject(factory, test.descriptor.kind, appArgs);
285
298
  } else {
286
299
  // No need to cache uncommissioned subjects
287
- subject = factory(test.descriptor.kind ?? "unknown");
300
+ subject = factory(test.descriptor.kind ?? "unknown", { appArgs });
288
301
  }
289
302
 
290
303
  if (Values.activeSubject === subject) {
@@ -572,8 +585,12 @@ async function configureLocalController() {
572
585
 
573
586
  /**
574
587
  * Obtain a subject. Subjects are qualified by factory and test domain.
588
+ *
589
+ * appArgs are forwarded to the factory only on first construct — subsequent restores reuse the cached subject so
590
+ * commissioning/fabric stays stable across runs that share a factory (chip multi-run tests often differ only in
591
+ * script-side flags like --app-pipe / --test-case which the in-process subject does not care about).
575
592
  */
576
- function loadSubject(factory: Subject.Factory, kind: TestDescriptor["kind"]) {
593
+ function loadSubject(factory: Subject.Factory, kind: TestDescriptor["kind"], appArgs?: string[]) {
577
594
  let forFactory = Values.subjects.get(factory);
578
595
  if (forFactory === undefined) {
579
596
  Values.subjects.set(factory, (forFactory = {}));
@@ -581,7 +598,7 @@ function loadSubject(factory: Subject.Factory, kind: TestDescriptor["kind"]) {
581
598
 
582
599
  let subject = forFactory[kind];
583
600
  if (subject === undefined) {
584
- subject = forFactory[kind] = factory(kind);
601
+ subject = forFactory[kind] = factory(kind, { appArgs });
585
602
  }
586
603
 
587
604
  return subject;
@@ -28,14 +28,22 @@ export namespace Subject {
28
28
  /**
29
29
  * Producer for test subjects.
30
30
  *
31
- * We cache subjects based on the subject factory although a factory may be invoked multiple times if the subject
32
- * initializes differently for different test implementations.
31
+ * Subjects are cached per (factory, domain, appArgs). A factory may be invoked multiple times if the subject
32
+ * initializes differently for different test implementations (e.g. chip multi-run tests with distinct app-args).
33
33
  */
34
34
  export interface Factory {
35
- (domain: string): Subject;
35
+ (domain: string, options?: Subject.Options): Subject;
36
36
  pics?: PicsFile;
37
37
  }
38
38
 
39
+ /**
40
+ * Per-invocation overrides for a {@link Subject.Factory}. Used to forward chip header `app-args:` into the
41
+ * in-process subject without going through process.argv.
42
+ */
43
+ export interface Options {
44
+ appArgs?: string[];
45
+ }
46
+
39
47
  export type CommissioningMethod = "onnetwork";
40
48
 
41
49
  export interface WifiNetwork {
@@ -80,6 +80,11 @@ function printDescriptor(descriptor: TestDescriptor, includeDisabled?: boolean,
80
80
  title = `${title} ${colors.cyan(`(${steps} steps)`)}`;
81
81
  }
82
82
 
83
+ const app = member.app ?? (member.config?.["app"] as string | undefined);
84
+ if (app) {
85
+ title = `${title} ${colors.magenta(`[${app}]`)}`;
86
+ }
87
+
83
88
  if (member.pics) {
84
89
  try {
85
90
  const expr = new PicsExpression(member.pics);