Skip to content

Commit f1cbedb

Browse files
committed
fixup! crypto: improve accuracy of SubtleCrypto.supports
Signed-off-by: Filip Skokan <panva.ip@gmail.com>
1 parent 892a5df commit f1cbedb

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

test/wpt/status/WebCryptoAPI.cjs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,27 @@ const { hasOpenSSL } = require('../../common/crypto.js');
66

77
const s390x = os.arch() === 's390x';
88

9-
const conditionalSkips = {};
9+
const conditionalFileSkips = {};
10+
const conditionalSubtestSkips = {};
1011

1112
function skip(...files) {
1213
for (const file of files) {
13-
conditionalSkips[file] = {
14-
'skip': `Unsupported in OpenSSL ${process.versions.openssl}`,
14+
conditionalFileSkips[file] = {
15+
'skip': 'Unsupported in ' + (process.features.openssl_is_boringssl ? 'BoringSSL' : `OpenSSL ${process.versions.openssl}`),
1516
};
1617
}
1718
}
1819

20+
function skipSubtests(...entries) {
21+
for (const [file, regexp] of entries) {
22+
conditionalSubtestSkips[file] ||= {
23+
'skipTests': [],
24+
};
25+
26+
conditionalSubtestSkips[file].skipTests.push(regexp);
27+
}
28+
}
29+
1930
if (!hasOpenSSL(3, 0)) {
2031
skip(
2132
'encrypt_decrypt/aes_ocb.tentative.https.any.js',
@@ -45,10 +56,25 @@ if (!hasOpenSSL(3, 5)) {
4556
'import_export/ML-DSA_importKey.tentative.https.any.js',
4657
'import_export/ML-KEM_importKey.tentative.https.any.js',
4758
'sign_verify/mldsa.tentative.https.any.js');
59+
60+
skipSubtests(
61+
['supports-modern.tentative.https.any.js', /ml-(?:kem|dsa)/i]);
4862
}
4963

64+
function assertNoOverlap(fileSkips, subtestSkips) {
65+
const subtestSkipFiles = new Set(Object.keys(subtestSkips));
66+
const overlap = Object.keys(fileSkips).filter((file) => subtestSkipFiles.has(file));
67+
68+
if (overlap.length !== 0) {
69+
throw new Error(`conditionalFileSkips and conditionalSubtestSkips overlap: ${overlap.join(', ')}`);
70+
}
71+
}
72+
73+
assertNoOverlap(conditionalFileSkips, conditionalSubtestSkips);
74+
5075
module.exports = {
51-
...conditionalSkips,
76+
...conditionalFileSkips,
77+
...conditionalSubtestSkips,
5278
'algorithm-discards-context.https.window.js': {
5379
'skip': 'Not relevant in Node.js context',
5480
},

0 commit comments

Comments
 (0)