@matter/testing 0.13.1-alpha.0-20250502-43a54f780 → 0.13.1-alpha.0-20250504-87f265a2e
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.
- package/bin/test.js +1 -2
- package/dist/cjs/chip/chip.d.ts +7 -2
- package/dist/cjs/chip/chip.d.ts.map +1 -1
- package/dist/cjs/chip/chip.js +20 -15
- package/dist/cjs/chip/chip.js.map +1 -1
- package/dist/cjs/chip/command-pipe.d.ts +2 -1
- package/dist/cjs/chip/command-pipe.d.ts.map +1 -1
- package/dist/cjs/chip/command-pipe.js +5 -2
- package/dist/cjs/chip/command-pipe.js.map +1 -1
- package/dist/cjs/chip/config.d.ts +2 -2
- package/dist/cjs/chip/config.d.ts.map +1 -1
- package/dist/cjs/chip/config.js +7 -6
- package/dist/cjs/chip/config.js.map +1 -1
- package/dist/cjs/chip/container-command-pipe.d.ts +2 -1
- package/dist/cjs/chip/container-command-pipe.d.ts.map +1 -1
- package/dist/cjs/chip/container-command-pipe.js +26 -24
- package/dist/cjs/chip/container-command-pipe.js.map +1 -1
- package/dist/cjs/chip/index.d.ts +1 -1
- package/dist/cjs/chip/index.d.ts.map +1 -1
- package/dist/cjs/chip/index.js +1 -1
- package/dist/cjs/chip/index.js.map +1 -1
- package/dist/cjs/chip/{pics-expression.d.ts → pics/expression.d.ts} +2 -2
- package/dist/cjs/chip/pics/expression.d.ts.map +1 -0
- package/dist/cjs/chip/{pics-expression.js → pics/expression.js} +6 -6
- package/dist/cjs/chip/pics/expression.js.map +6 -0
- package/dist/cjs/chip/{pics-file.d.ts → pics/file.d.ts} +10 -5
- package/dist/cjs/chip/pics/file.d.ts.map +1 -0
- package/dist/cjs/chip/{pics-file.js → pics/file.js} +21 -13
- package/dist/cjs/chip/pics/file.js.map +6 -0
- package/dist/cjs/chip/pics/index.d.ts +10 -0
- package/dist/cjs/chip/pics/index.d.ts.map +1 -0
- package/dist/cjs/chip/pics/index.js +27 -0
- package/dist/cjs/chip/pics/index.js.map +6 -0
- package/dist/cjs/chip/pics/source.d.ts +52 -0
- package/dist/cjs/chip/pics/source.d.ts.map +1 -0
- package/dist/cjs/chip/pics/source.js +117 -0
- package/dist/cjs/chip/pics/source.js.map +6 -0
- package/dist/cjs/chip/pics/values.d.ts +9 -0
- package/dist/cjs/chip/pics/values.d.ts.map +1 -0
- package/dist/cjs/chip/pics/values.js +22 -0
- package/dist/cjs/chip/pics/values.js.map +6 -0
- package/dist/cjs/chip/python-test.d.ts.map +1 -1
- package/dist/cjs/chip/python-test.js +14 -7
- package/dist/cjs/chip/python-test.js.map +1 -1
- package/dist/cjs/chip/state.d.ts +3 -2
- package/dist/cjs/chip/state.d.ts.map +1 -1
- package/dist/cjs/chip/state.js +38 -25
- package/dist/cjs/chip/state.js.map +1 -1
- package/dist/cjs/chip/yaml-test.d.ts +1 -1
- package/dist/cjs/chip/yaml-test.d.ts.map +1 -1
- package/dist/cjs/chip/yaml-test.js +5 -1
- package/dist/cjs/chip/yaml-test.js.map +1 -1
- package/dist/cjs/cli.d.ts.map +1 -1
- package/dist/cjs/cli.js +18 -3
- package/dist/cjs/cli.js.map +2 -2
- package/dist/cjs/device/subject.d.ts +4 -0
- package/dist/cjs/device/subject.d.ts.map +1 -1
- package/dist/cjs/failure-reporter.js +4 -6
- package/dist/cjs/failure-reporter.js.map +1 -1
- package/dist/cjs/print-report.d.ts +3 -0
- package/dist/cjs/print-report.d.ts.map +1 -1
- package/dist/cjs/print-report.js +13 -16
- package/dist/cjs/print-report.js.map +2 -2
- package/dist/cjs/test-descriptor.d.ts +18 -13
- package/dist/cjs/test-descriptor.d.ts.map +1 -1
- package/dist/cjs/test-descriptor.js +48 -49
- package/dist/cjs/test-descriptor.js.map +2 -2
- package/dist/esm/chip/chip.d.ts +7 -2
- package/dist/esm/chip/chip.d.ts.map +1 -1
- package/dist/esm/chip/chip.js +20 -15
- package/dist/esm/chip/chip.js.map +1 -1
- package/dist/esm/chip/command-pipe.d.ts +2 -1
- package/dist/esm/chip/command-pipe.d.ts.map +1 -1
- package/dist/esm/chip/command-pipe.js +5 -2
- package/dist/esm/chip/command-pipe.js.map +1 -1
- package/dist/esm/chip/config.d.ts +2 -2
- package/dist/esm/chip/config.d.ts.map +1 -1
- package/dist/esm/chip/config.js +7 -6
- package/dist/esm/chip/config.js.map +1 -1
- package/dist/esm/chip/container-command-pipe.d.ts +2 -1
- package/dist/esm/chip/container-command-pipe.d.ts.map +1 -1
- package/dist/esm/chip/container-command-pipe.js +26 -24
- package/dist/esm/chip/container-command-pipe.js.map +1 -1
- package/dist/esm/chip/index.d.ts +1 -1
- package/dist/esm/chip/index.d.ts.map +1 -1
- package/dist/esm/chip/index.js +1 -1
- package/dist/esm/chip/{pics-expression.d.ts → pics/expression.d.ts} +2 -2
- package/dist/esm/chip/pics/expression.d.ts.map +1 -0
- package/dist/esm/chip/{pics-expression.js → pics/expression.js} +3 -3
- package/dist/esm/chip/pics/expression.js.map +6 -0
- package/dist/esm/chip/{pics-file.d.ts → pics/file.d.ts} +10 -5
- package/dist/esm/chip/pics/file.d.ts.map +1 -0
- package/dist/esm/chip/{pics-file.js → pics/file.js} +18 -10
- package/dist/esm/chip/pics/file.js.map +6 -0
- package/dist/esm/chip/pics/index.d.ts +10 -0
- package/dist/esm/chip/pics/index.d.ts.map +1 -0
- package/dist/esm/chip/pics/index.js +10 -0
- package/dist/esm/chip/pics/index.js.map +6 -0
- package/dist/esm/chip/pics/source.d.ts +52 -0
- package/dist/esm/chip/pics/source.d.ts.map +1 -0
- package/dist/esm/chip/pics/source.js +97 -0
- package/dist/esm/chip/pics/source.js.map +6 -0
- package/dist/esm/chip/pics/values.d.ts +9 -0
- package/dist/esm/chip/pics/values.d.ts.map +1 -0
- package/dist/esm/chip/pics/values.js +6 -0
- package/dist/esm/chip/pics/values.js.map +6 -0
- package/dist/esm/chip/python-test.d.ts.map +1 -1
- package/dist/esm/chip/python-test.js +14 -7
- package/dist/esm/chip/python-test.js.map +1 -1
- package/dist/esm/chip/state.d.ts +3 -2
- package/dist/esm/chip/state.d.ts.map +1 -1
- package/dist/esm/chip/state.js +39 -26
- package/dist/esm/chip/state.js.map +1 -1
- package/dist/esm/chip/yaml-test.d.ts +1 -1
- package/dist/esm/chip/yaml-test.d.ts.map +1 -1
- package/dist/esm/chip/yaml-test.js +5 -1
- package/dist/esm/chip/yaml-test.js.map +1 -1
- package/dist/esm/cli.d.ts.map +1 -1
- package/dist/esm/cli.js +19 -4
- package/dist/esm/cli.js.map +2 -2
- package/dist/esm/device/subject.d.ts +4 -0
- package/dist/esm/device/subject.d.ts.map +1 -1
- package/dist/esm/failure-reporter.js +4 -6
- package/dist/esm/failure-reporter.js.map +1 -1
- package/dist/esm/print-report.d.ts +3 -0
- package/dist/esm/print-report.d.ts.map +1 -1
- package/dist/esm/print-report.js +12 -15
- package/dist/esm/print-report.js.map +2 -2
- package/dist/esm/test-descriptor.d.ts +18 -13
- package/dist/esm/test-descriptor.d.ts.map +1 -1
- package/dist/esm/test-descriptor.js +48 -49
- package/dist/esm/test-descriptor.js.map +2 -2
- package/package.json +2 -2
- package/src/chip/chip.ts +31 -17
- package/src/chip/command-pipe.ts +6 -2
- package/src/chip/config.ts +9 -9
- package/src/chip/container-command-pipe.ts +28 -30
- package/src/chip/index.ts +1 -1
- package/src/chip/matter-js-pics.properties +7 -4
- package/src/chip/{pics-expression.ts → pics/expression.ts} +4 -3
- package/src/chip/{pics-file.ts → pics/file.ts} +30 -13
- package/src/chip/pics/index.ts +10 -0
- package/src/chip/pics/source.ts +163 -0
- package/src/chip/pics/values.ts +9 -0
- package/src/chip/python-test.ts +18 -11
- package/src/chip/state.ts +56 -33
- package/src/chip/yaml-test.ts +6 -1
- package/src/cli.ts +29 -5
- package/src/device/subject.ts +4 -0
- package/src/failure-reporter.ts +4 -4
- package/src/print-report.ts +13 -18
- package/src/test-descriptor.ts +70 -61
- package/src/tsconfig.json +6 -2
- package/dist/cjs/chip/pics-expression.d.ts.map +0 -1
- package/dist/cjs/chip/pics-expression.js.map +0 -6
- package/dist/cjs/chip/pics-file.d.ts.map +0 -1
- package/dist/cjs/chip/pics-file.js.map +0 -6
- package/dist/esm/chip/pics-expression.d.ts.map +0 -1
- package/dist/esm/chip/pics-expression.js.map +0 -6
- package/dist/esm/chip/pics-file.d.ts.map +0 -1
- package/dist/esm/chip/pics-file.js.map +0 -6
package/src/chip/yaml-test.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { Terminal } from "../docker/terminal.js";
|
|
|
11
11
|
import { deansify } from "../util/text.js";
|
|
12
12
|
import { parseStep } from "./chip-test-common.js";
|
|
13
13
|
import { Constants, ContainerPaths } from "./config.js";
|
|
14
|
+
import { PicsSource } from "./pics/source.js";
|
|
14
15
|
|
|
15
16
|
export class YamlTest extends BaseTest {
|
|
16
17
|
async initializeSubject(subject: Subject) {
|
|
@@ -54,7 +55,11 @@ export class YamlTest extends BaseTest {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
async invoke(
|
|
58
|
+
async invoke(subject: Subject, step: (title: string) => void, args: string[]) {
|
|
59
|
+
if (!args.includes("--PICS")) {
|
|
60
|
+
args.push("--PICS", await PicsSource.install(subject.pics));
|
|
61
|
+
}
|
|
62
|
+
|
|
58
63
|
const terminal = await this.container.exec(
|
|
59
64
|
[
|
|
60
65
|
"python3",
|
package/src/cli.ts
CHANGED
|
@@ -9,7 +9,7 @@ import "./util/node-shims.js";
|
|
|
9
9
|
|
|
10
10
|
import "./global-definitions.js";
|
|
11
11
|
|
|
12
|
-
import { Graph, Package, Project, ProjectBuilder } from "#tools";
|
|
12
|
+
import { Graph, JsonNotFoundError, Package, Project, ProjectBuilder } from "#tools";
|
|
13
13
|
import { clear } from "node:console";
|
|
14
14
|
import yargs from "yargs";
|
|
15
15
|
import { hideBin } from "yargs/helpers";
|
|
@@ -28,6 +28,11 @@ enum TestType {
|
|
|
28
28
|
|
|
29
29
|
Error.stackTraceLimit = 50;
|
|
30
30
|
|
|
31
|
+
interface Config {
|
|
32
|
+
allLogs?: boolean;
|
|
33
|
+
pull?: boolean;
|
|
34
|
+
}
|
|
35
|
+
|
|
31
36
|
export async function main(argv = process.argv) {
|
|
32
37
|
const testTypes = new Set<TestType>();
|
|
33
38
|
|
|
@@ -66,7 +71,7 @@ export async function main(argv = process.argv) {
|
|
|
66
71
|
.option("trace-unhandled", { type: "boolean", describe: "Detail unhandled rejections with trace-unhandled" })
|
|
67
72
|
.option("clear", { type: "boolean", describe: "Clear terminal before testing" })
|
|
68
73
|
.option("report", { type: "boolean", describe: "Display test summary after testing" })
|
|
69
|
-
.option("pull", { type: "boolean", describe: "
|
|
74
|
+
.option("pull", { type: "boolean", describe: "Update containers before testing", default: true })
|
|
70
75
|
.command("*", "run all supported test types")
|
|
71
76
|
.command("esm", "run tests on node (ES6 modules)", () => testTypes.add(TestType.esm))
|
|
72
77
|
.command("cjs", "run tests on node (CommonJS modules)", () => testTypes.add(TestType.cjs))
|
|
@@ -85,11 +90,29 @@ export async function main(argv = process.argv) {
|
|
|
85
90
|
packageLocation = firstSpec;
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
chip.pullBeforeTesting = args.pull;
|
|
89
|
-
|
|
90
93
|
const builder = new ProjectBuilder();
|
|
91
94
|
const pkg = new Package({ path: packageLocation });
|
|
92
95
|
|
|
96
|
+
// Load configuration
|
|
97
|
+
try {
|
|
98
|
+
const found = pkg.findJson(".matter-test.json");
|
|
99
|
+
const config = found.json as Config;
|
|
100
|
+
|
|
101
|
+
if ("allLogs" in config && !process.argv.includes("--no-all-logs")) {
|
|
102
|
+
args.allLogs = !!config.allLogs;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if ("pull" in config && !process.argv.includes("--no-pull")) {
|
|
106
|
+
args.pull = !!config.pull;
|
|
107
|
+
}
|
|
108
|
+
} catch (e) {
|
|
109
|
+
if (!(e instanceof JsonNotFoundError)) {
|
|
110
|
+
throw e;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
chip.pullBeforeTesting = args.pull;
|
|
115
|
+
|
|
93
116
|
// If the location is a workspace, test all packages with test
|
|
94
117
|
if (pkg.isWorkspace) {
|
|
95
118
|
const graph = await Graph.load(pkg);
|
|
@@ -133,8 +156,9 @@ export async function main(argv = process.argv) {
|
|
|
133
156
|
if (ls) {
|
|
134
157
|
const progress = pkg.start("Inspecting");
|
|
135
158
|
const runner = new TestRunner(pkg, progress, args);
|
|
159
|
+
const report = await defaultDescriptor(runner);
|
|
136
160
|
progress.close();
|
|
137
|
-
printReport(
|
|
161
|
+
printReport(report, true);
|
|
138
162
|
console.log();
|
|
139
163
|
return;
|
|
140
164
|
}
|
package/src/device/subject.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { PicsFile } from "../chip/pics/file.js";
|
|
7
8
|
import { BackchannelCommand } from "./backchannel.js";
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -11,7 +12,9 @@ import { BackchannelCommand } from "./backchannel.js";
|
|
|
11
12
|
*/
|
|
12
13
|
export interface Subject {
|
|
13
14
|
id: string;
|
|
15
|
+
app: string;
|
|
14
16
|
commissioning: Subject.CommissioningParameters;
|
|
17
|
+
pics: PicsFile;
|
|
15
18
|
initialize(): Promise<void>;
|
|
16
19
|
start(): Promise<void>;
|
|
17
20
|
stop(): Promise<void>;
|
|
@@ -30,6 +33,7 @@ export namespace Subject {
|
|
|
30
33
|
*/
|
|
31
34
|
export interface Factory {
|
|
32
35
|
(domain: string): Subject;
|
|
36
|
+
pics?: PicsFile;
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
export type CommissioningMethod = "onnetwork";
|
package/src/failure-reporter.ts
CHANGED
|
@@ -8,21 +8,21 @@ import { ansi, Printer, STATUS_ICON_FAILURE } from "#tools";
|
|
|
8
8
|
import { FailureDetail } from "./failure-detail.js";
|
|
9
9
|
import { TextDiff } from "./text-diff.js";
|
|
10
10
|
|
|
11
|
-
const BEGIN_ERROR = `${ansi.red}
|
|
11
|
+
const BEGIN_ERROR = `${ansi.red}┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┅${ansi.not.red}`;
|
|
12
12
|
const OUTER_PREFIX = `${ansi.red}┃ ${ansi.not.red}`;
|
|
13
13
|
const INNER_PREFIX = `${ansi.dim}┆ ${ansi.not.dim}`;
|
|
14
|
-
const END_ERROR = `${ansi.red}
|
|
14
|
+
const END_ERROR = `${ansi.red}┗━┅${ansi.not.red}`;
|
|
15
15
|
|
|
16
16
|
export namespace FailureReporter {
|
|
17
17
|
export function report(out: Printer, failure: FailureDetail, title: string) {
|
|
18
|
-
out(BEGIN_ERROR, "\n");
|
|
18
|
+
out(BEGIN_ERROR, "\n", OUTER_PREFIX, "\n");
|
|
19
19
|
|
|
20
20
|
out.state({ linePrefix: OUTER_PREFIX }, () => {
|
|
21
21
|
out(ansi.bold.red(STATUS_ICON_FAILURE), " ", title, "\n");
|
|
22
22
|
dumpDetails(out, failure);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
-
out(END_ERROR, "\n");
|
|
25
|
+
out(OUTER_PREFIX, "\n", END_ERROR, "\n");
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
package/src/print-report.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Progress, STATUS_ICON_FAILURE, STATUS_ICON_SUCCESS } from "@matter/tools";
|
|
7
|
+
import { Progress, STATUS_ICON_FAILURE, STATUS_ICON_SKIPPED, STATUS_ICON_SUCCESS } from "@matter/tools";
|
|
8
8
|
import colors from "ansi-colors";
|
|
9
9
|
import { chip } from "./chip/chip.js";
|
|
10
|
-
import { InvalidPicsExpressionError, PicsExpression } from "./chip/pics
|
|
10
|
+
import { InvalidPicsExpressionError, PicsExpression } from "./chip/pics/expression.js";
|
|
11
11
|
import { createNodejsMocha } from "./nodejs.js";
|
|
12
12
|
import { TestRunner } from "./runner.js";
|
|
13
13
|
import { TestDescriptor } from "./test-descriptor.js";
|
|
@@ -64,7 +64,7 @@ function printDescriptor(descriptor: TestDescriptor, includeDisabled?: boolean,
|
|
|
64
64
|
break;
|
|
65
65
|
|
|
66
66
|
default:
|
|
67
|
-
title =
|
|
67
|
+
title = `${STATUS_ICON_SKIPPED} ${title}`;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -83,7 +83,7 @@ function printDescriptor(descriptor: TestDescriptor, includeDisabled?: boolean,
|
|
|
83
83
|
if (member.pics) {
|
|
84
84
|
try {
|
|
85
85
|
const expr = new PicsExpression(member.pics);
|
|
86
|
-
if (expr.evaluate(chip.
|
|
86
|
+
if (expr.evaluate(member.picsValues ?? chip.defaultPics)) {
|
|
87
87
|
title = `${title} ${colors.dim.green(member.pics)}`;
|
|
88
88
|
} else {
|
|
89
89
|
title = `${title} ${colors.dim.red(member.pics)}`;
|
|
@@ -98,7 +98,11 @@ function printDescriptor(descriptor: TestDescriptor, includeDisabled?: boolean,
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
if (member.path && member.path !== path) {
|
|
101
|
-
|
|
101
|
+
let { path } = member;
|
|
102
|
+
if (member.subpath) {
|
|
103
|
+
path = `${path}#${member.subpath}`;
|
|
104
|
+
}
|
|
105
|
+
title = `${title} ${colors.dim.blueBright(path)}`;
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
if (member.kind === "manual") {
|
|
@@ -131,19 +135,10 @@ export async function defaultDescriptor(runner: TestRunner) {
|
|
|
131
135
|
used.add(descriptor);
|
|
132
136
|
});
|
|
133
137
|
|
|
134
|
-
let unused = TestDescriptor.filter(chip.tests.descriptor,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const result = recurse();
|
|
142
|
-
if (!result || (result.kind === "suite" && !result.members?.length)) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return result;
|
|
138
|
+
let unused = TestDescriptor.filter(chip.tests.descriptor, {
|
|
139
|
+
predicate(descriptor) {
|
|
140
|
+
return (descriptor.kind !== "py" && descriptor.kind !== "yaml") || !used.has(descriptor);
|
|
141
|
+
},
|
|
147
142
|
});
|
|
148
143
|
|
|
149
144
|
if (unused) {
|
package/src/test-descriptor.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import type { FilesystemSync } from "#tools";
|
|
8
8
|
import { readFile, writeFile } from "node:fs/promises";
|
|
9
|
-
import { PicsExpression } from "./chip/pics
|
|
10
|
-
import type { PicsFile } from "./chip/pics
|
|
9
|
+
import { PicsExpression } from "./chip/pics/expression.js";
|
|
10
|
+
import type { PicsFile } from "./chip/pics/file.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Metadata for a single test or group of tests.
|
|
@@ -16,6 +16,8 @@ export interface TestDescriptor {
|
|
|
16
16
|
name: string;
|
|
17
17
|
kind: TestDescriptor.Kind;
|
|
18
18
|
path?: string;
|
|
19
|
+
subpath?: string;
|
|
20
|
+
app?: string;
|
|
19
21
|
members?: TestDescriptor[];
|
|
20
22
|
isDisabled?: boolean;
|
|
21
23
|
timeoutMs?: number;
|
|
@@ -26,6 +28,7 @@ export interface TestDescriptor {
|
|
|
26
28
|
runAt?: Date;
|
|
27
29
|
passed?: boolean;
|
|
28
30
|
durationMs?: number;
|
|
31
|
+
picsValues?: PicsFile;
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
export interface TestFileDescriptor extends TestDescriptor {
|
|
@@ -36,7 +39,16 @@ export interface TestSuiteDescriptor extends TestDescriptor {
|
|
|
36
39
|
members: TestDescriptor[];
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
export interface RootTestDescriptor extends TestDescriptor {
|
|
43
|
+
format?: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
export namespace TestDescriptor {
|
|
47
|
+
/**
|
|
48
|
+
* Used to validate format of test descriptor files.
|
|
49
|
+
*/
|
|
50
|
+
export const CURRENT_FORMAT = 2;
|
|
51
|
+
|
|
40
52
|
export type Kind = "suite" | "js" | "py" | "yaml" | "manual" | "step";
|
|
41
53
|
|
|
42
54
|
export const DEFAULT_FILENAME = "build/test-report.json";
|
|
@@ -49,37 +61,50 @@ export namespace TestDescriptor {
|
|
|
49
61
|
descriptor: TestDescriptor;
|
|
50
62
|
}
|
|
51
63
|
|
|
64
|
+
export type Criteria = {
|
|
65
|
+
includePaths?: string[];
|
|
66
|
+
kinds?: Kind[];
|
|
67
|
+
pics?: PicsFile;
|
|
68
|
+
predicate?: (descriptor: TestDescriptor) => boolean;
|
|
69
|
+
};
|
|
70
|
+
|
|
52
71
|
/**
|
|
53
|
-
* Create a
|
|
72
|
+
* Create a filter function for specified criteria.
|
|
54
73
|
*
|
|
55
|
-
* The
|
|
74
|
+
* The filter treats tests as atomic and ignores empty suites.
|
|
56
75
|
*/
|
|
57
|
-
export function
|
|
58
|
-
const { includePaths, kinds, pics } = criteria;
|
|
76
|
+
export function filter(descriptor: TestDescriptor, criteria: Criteria): TestDescriptor | undefined {
|
|
77
|
+
const { includePaths, kinds, pics, predicate } = criteria;
|
|
59
78
|
|
|
60
79
|
// Index the inclusion paths so we can efficiently short-circuit search
|
|
61
|
-
interface
|
|
62
|
-
let
|
|
80
|
+
interface NameNode extends Record<string, NameNode | undefined> {}
|
|
81
|
+
let memberNames: undefined | NameNode;
|
|
63
82
|
if (includePaths) {
|
|
64
|
-
|
|
83
|
+
memberNames = {};
|
|
65
84
|
for (const path of includePaths) {
|
|
66
|
-
let incl =
|
|
67
|
-
|
|
68
|
-
|
|
85
|
+
let incl = memberNames;
|
|
86
|
+
const segments = path.split("/");
|
|
87
|
+
if (segments[0] === "") {
|
|
88
|
+
segments[0] = descriptor.name;
|
|
89
|
+
}
|
|
90
|
+
for (const segment of segments) {
|
|
91
|
+
incl = (incl[segment] as NameNode) ??= {};
|
|
69
92
|
}
|
|
70
93
|
}
|
|
71
94
|
}
|
|
72
95
|
|
|
73
|
-
|
|
96
|
+
return filter(descriptor, memberNames);
|
|
74
97
|
|
|
75
|
-
|
|
98
|
+
function filter(descriptor: TestDescriptor, names?: NameNode): TestDescriptor | undefined {
|
|
76
99
|
// Short circuit irrelevant paths
|
|
77
|
-
|
|
100
|
+
const memberNames = names?.[descriptor.name];
|
|
101
|
+
if (names && !memberNames) {
|
|
78
102
|
return;
|
|
79
103
|
}
|
|
80
104
|
|
|
81
105
|
// Apply PICS to any descriptor with a PICS expression
|
|
82
106
|
if (pics && descriptor.pics !== undefined) {
|
|
107
|
+
descriptor.picsValues = pics;
|
|
83
108
|
const expr = new PicsExpression(descriptor.pics);
|
|
84
109
|
if (!expr.evaluate(pics)) {
|
|
85
110
|
return;
|
|
@@ -88,23 +113,34 @@ export namespace TestDescriptor {
|
|
|
88
113
|
|
|
89
114
|
// Recurse into suites
|
|
90
115
|
if (descriptor.kind === "suite") {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} else if (inclusion) {
|
|
96
|
-
inclusion = inclusion[descriptor.name];
|
|
97
|
-
}
|
|
116
|
+
const { members } = descriptor;
|
|
117
|
+
if (!members?.length) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
98
120
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
121
|
+
let filteredMembers: undefined | TestDescriptor[];
|
|
122
|
+
for (const member of members) {
|
|
123
|
+
const filteredMember = filter(member, memberNames);
|
|
124
|
+
if (!filteredMember) {
|
|
125
|
+
continue;
|
|
102
126
|
}
|
|
127
|
+
if (predicate && !predicate(filteredMember)) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (filteredMembers) {
|
|
131
|
+
filteredMembers.push(filteredMember);
|
|
132
|
+
} else {
|
|
133
|
+
filteredMembers = [filteredMember];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
103
136
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
137
|
+
// Return filtered member if any children apply
|
|
138
|
+
if (filteredMembers) {
|
|
139
|
+
return { ...descriptor, members: filteredMembers };
|
|
107
140
|
}
|
|
141
|
+
|
|
142
|
+
// All members excluded
|
|
143
|
+
return;
|
|
108
144
|
}
|
|
109
145
|
|
|
110
146
|
// Filter tests based on kind
|
|
@@ -113,37 +149,7 @@ export namespace TestDescriptor {
|
|
|
113
149
|
}
|
|
114
150
|
|
|
115
151
|
return descriptor;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export interface Predicate {
|
|
120
|
-
(descriptor: TestDescriptor, recurse: () => TestDescriptor | undefined): TestDescriptor | undefined;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Filter a {@link TestDescriptor} hierarchy using a predicate.
|
|
125
|
-
*/
|
|
126
|
-
export function filter(descriptor: TestDescriptor, predicate: Predicate): TestDescriptor | undefined {
|
|
127
|
-
return predicate(descriptor, () => {
|
|
128
|
-
let { members } = descriptor;
|
|
129
|
-
|
|
130
|
-
if (members) {
|
|
131
|
-
members = members.map(member => filter(member, predicate)).filter(member => member) as TestDescriptor[];
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (descriptor.members === undefined || members?.length === descriptor.members?.length) {
|
|
135
|
-
return descriptor;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
descriptor = { ...descriptor };
|
|
139
|
-
if (members?.length) {
|
|
140
|
-
descriptor.members = members;
|
|
141
|
-
} else {
|
|
142
|
-
delete descriptor.members;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return descriptor;
|
|
146
|
-
});
|
|
152
|
+
}
|
|
147
153
|
}
|
|
148
154
|
|
|
149
155
|
/**
|
|
@@ -175,7 +181,7 @@ export namespace TestDescriptor {
|
|
|
175
181
|
|
|
176
182
|
try {
|
|
177
183
|
const json = await readFile(path, "utf-8");
|
|
178
|
-
descriptor = JSON.parse(json);
|
|
184
|
+
descriptor = JSON.parse(json, (k, v) => (k === "picsValues" ? undefined : v));
|
|
179
185
|
if (
|
|
180
186
|
typeof descriptor?.name !== "string" ||
|
|
181
187
|
descriptor.kind !== "suite" ||
|
|
@@ -196,7 +202,10 @@ export namespace TestDescriptor {
|
|
|
196
202
|
* Persist a descriptor.
|
|
197
203
|
*/
|
|
198
204
|
export async function save(path: string, descriptor: TestSuiteDescriptor) {
|
|
199
|
-
await writeFile(
|
|
205
|
+
await writeFile(
|
|
206
|
+
path,
|
|
207
|
+
JSON.stringify(descriptor, (k, v) => (k === "picsValues" ? undefined : v), 4),
|
|
208
|
+
);
|
|
200
209
|
}
|
|
201
210
|
|
|
202
211
|
/**
|
package/src/tsconfig.json
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../../tools/tsc/tsconfig.lib.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
+
"allowJs": true,
|
|
4
5
|
"types": [
|
|
5
6
|
"node"
|
|
6
7
|
]
|
|
7
8
|
},
|
|
8
9
|
"include": [
|
|
9
|
-
"**/*.ts"
|
|
10
|
+
"**/*.ts",
|
|
11
|
+
"**/*.mjs",
|
|
12
|
+
"**/*.cjs",
|
|
13
|
+
"**/*.cts"
|
|
10
14
|
],
|
|
11
15
|
"references": [
|
|
12
16
|
{
|
|
13
17
|
"path": "../../tools/src"
|
|
14
18
|
}
|
|
15
19
|
]
|
|
16
|
-
}
|
|
20
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pics-expression.d.ts","sourceRoot":"","sources":["../../../src/chip/pics-expression.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,cAAc;;gBAIX,UAAU,EAAE,MAAM;IAK9B,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAIvB,QAAQ;CAGX;AAED,UAAU,IAAI;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,0BAA2B,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAShD;AAgED,QAAA,MAAM,OAAO,oCAAqC,CAAC;AACnD,KAAK,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/chip/pics-expression.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["tokenizer", "result"]
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pics-file.d.ts","sourceRoot":"","sources":["../../../src/chip/pics-file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;gBAIL,UAAU,EAAE,MAAM,EAAE,MAAM,UAAQ;IAO9C,IAAI,KAAK,aAER;IAED,IAAI,MAAM,2BAST;IAED,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,QAAQ;IA8BrB,IAAI,CAAC,IAAI,EAAE,MAAM;CAGpB"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/chip/pics-file.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pics-expression.d.ts","sourceRoot":"","sources":["../../../src/chip/pics-expression.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,cAAc;;gBAIX,UAAU,EAAE,MAAM;IAK9B,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAIvB,QAAQ;CAGX;AAED,UAAU,IAAI;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,0BAA2B,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAShD;AAgED,QAAA,MAAM,OAAO,oCAAqC,CAAC;AACnD,KAAK,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/chip/pics-expression.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["tokenizer", "result"]
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pics-file.d.ts","sourceRoot":"","sources":["../../../src/chip/pics-file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;gBAIL,UAAU,EAAE,MAAM,EAAE,MAAM,UAAQ;IAO9C,IAAI,KAAK,aAER;IAED,IAAI,MAAM,2BAST;IAED,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,QAAQ;IA8BrB,IAAI,CAAC,IAAI,EAAE,MAAM;CAGpB"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/chip/pics-file.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|