Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9d3768e

Browse filesBrowse files
panvatargos
authored andcommitted
Revert "test: run WPT files in parallel again"
This reverts commit c05689e. PR-URL: #47627 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
1 parent c17f268 commit 9d3768e
Copy full SHA for 9d3768e

File tree

Expand file treeCollapse file tree

4 files changed

+31
-87
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

4 files changed

+31
-87
lines changed
Open diff view settings
Collapse file

‎Makefile‎

Copy file name to clipboardExpand all lines: Makefile
-1Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,6 @@ test-wpt-report:
593593
$(RM) -r out/wpt
594594
mkdir -p out/wpt
595595
WPT_REPORT=1 $(PYTHON) tools/test.py --shell $(NODE) $(PARALLEL_ARGS) wpt
596-
$(NODE) "$$PWD/tools/merge-wpt-reports.mjs"
597596

598597
.PHONY: test-internet
599598
test-internet: all
Collapse file

‎test/common/wpt.js‎

Copy file name to clipboardExpand all lines: test/common/wpt.js
+30-53Lines changed: 30 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ const os = require('os');
1010
const { inspect } = require('util');
1111
const { Worker } = require('worker_threads');
1212

13-
const workerPath = path.join(__dirname, 'wpt/worker.js');
14-
1513
function getBrowserProperties() {
1614
const { node: version } = process.versions; // e.g. 18.13.0, 20.0.0-nightly202302078e6e215481
1715
const release = /^\d+\.\d+\.\d+$/.test(version);
@@ -59,8 +57,7 @@ function codeUnitStr(char) {
5957
}
6058

6159
class WPTReport {
62-
constructor(path) {
63-
this.filename = `report-${path.replaceAll('/', '-')}.json`;
60+
constructor() {
6461
this.results = [];
6562
this.time_start = Date.now();
6663
}
@@ -99,18 +96,26 @@ class WPTReport {
9996
return result;
10097
});
10198

102-
/**
103-
* Return required and some optional properties
104-
* https://github.com/web-platform-tests/wpt.fyi/blob/60da175/api/README.md?plain=1#L331-L335
105-
*/
106-
this.run_info = {
107-
product: 'node.js',
108-
...getBrowserProperties(),
109-
revision: process.env.WPT_REVISION || 'unknown',
110-
os: getOs(),
111-
};
99+
if (fs.existsSync('out/wpt/wptreport.json')) {
100+
const prev = JSON.parse(fs.readFileSync('out/wpt/wptreport.json'));
101+
this.results = [...prev.results, ...this.results];
102+
this.time_start = prev.time_start;
103+
this.time_end = Math.max(this.time_end, prev.time_end);
104+
this.run_info = prev.run_info;
105+
} else {
106+
/**
107+
* Return required and some optional properties
108+
* https://github.com/web-platform-tests/wpt.fyi/blob/60da175/api/README.md?plain=1#L331-L335
109+
*/
110+
this.run_info = {
111+
product: 'node.js',
112+
...getBrowserProperties(),
113+
revision: process.env.WPT_REVISION || 'unknown',
114+
os: getOs(),
115+
};
116+
}
112117

113-
fs.writeFileSync(`out/wpt/${this.filename}`, JSON.stringify(this));
118+
fs.writeFileSync('out/wpt/wptreport.json', JSON.stringify(this));
114119
}
115120
}
116121

@@ -397,29 +402,6 @@ const kIncomplete = 'incomplete';
397402
const kUncaught = 'uncaught';
398403
const NODE_UNCAUGHT = 100;
399404

400-
const limit = (concurrency) => {
401-
let running = 0;
402-
const queue = [];
403-
404-
const execute = async (fn) => {
405-
if (running < concurrency) {
406-
running++;
407-
try {
408-
await fn();
409-
} finally {
410-
running--;
411-
if (queue.length > 0) {
412-
execute(queue.shift());
413-
}
414-
}
415-
} else {
416-
queue.push(fn);
417-
}
418-
};
419-
420-
return execute;
421-
};
422-
423405
class WPTRunner {
424406
constructor(path) {
425407
this.path = path;
@@ -443,7 +425,7 @@ class WPTRunner {
443425
this.scriptsModifier = null;
444426

445427
if (process.env.WPT_REPORT != null) {
446-
this.report = new WPTReport(path);
428+
this.report = new WPTReport();
447429
}
448430
}
449431

@@ -561,8 +543,6 @@ class WPTRunner {
561543

562544
this.inProgress = new Set(queue.map((spec) => spec.filename));
563545

564-
const run = limit(os.availableParallelism());
565-
566546
for (const spec of queue) {
567547
const testFileName = spec.filename;
568548
const content = spec.getContent();
@@ -596,7 +576,15 @@ class WPTRunner {
596576
this.scriptsModifier?.(obj);
597577
scriptsToRun.push(obj);
598578

599-
const runWorker = async (variant) => {
579+
/**
580+
* Example test with no META variant
581+
* https://github.com/nodejs/node/blob/03854f6/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.https.any.js#L1-L4
582+
*
583+
* Example test with multiple META variants
584+
* https://github.com/nodejs/node/blob/03854f6/test/fixtures/wpt/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js#L1-L9
585+
*/
586+
for (const variant of meta.variant || ['']) {
587+
const workerPath = path.join(__dirname, 'wpt/worker.js');
600588
const worker = new Worker(workerPath, {
601589
execArgv: this.flags,
602590
workerData: {
@@ -647,17 +635,6 @@ class WPTRunner {
647635
});
648636

649637
await events.once(worker, 'exit').catch(() => {});
650-
};
651-
652-
/**
653-
* Example test with no META variant
654-
* https://github.com/nodejs/node/blob/03854f6/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.https.any.js#L1-L4
655-
*
656-
* Example test with multiple META variants
657-
* https://github.com/nodejs/node/blob/03854f6/test/fixtures/wpt/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js#L1-L9
658-
*/
659-
for (const variant of meta.variant || ['']) {
660-
run(() => runWorker(variant));
661638
}
662639
}
663640

Collapse file

‎test/wpt/testcfg.py‎

Copy file name to clipboardExpand all lines: test/wpt/testcfg.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
import testpy
44

55
def GetConfiguration(context, root):
6-
return testpy.ParallelTestConfiguration(context, root, 'wpt')
6+
return testpy.SimpleTestConfiguration(context, root, 'wpt')
Collapse file

‎tools/merge-wpt-reports.mjs‎

Copy file name to clipboardExpand all lines: tools/merge-wpt-reports.mjs
-32Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.